零、简介

大家好,欢迎来到 Android 游戏开发的世界。你来这里是为了学习 Android 上的游戏开发,我们希望成为让你实现自己想法的人。

我们将一起涵盖相当广泛的材质和主题:Android 基础知识,音频和图形编程,一点数学和物理,OpenGL ES,Android 原生开发工具包(NDK)介绍,最后,出版,营销,从你的游戏中赚钱。基于所有这些知识,我们将开发三个不同的游戏,其中一个甚至是 3D 的。

如果你知道自己在做什么,游戏编程会很容易。因此,我们试图以这样一种方式呈现这些材质,不仅给你有用的代码片段供你重用,而且实际上向你展示游戏开发的全貌。理解潜在的原则是解决越来越复杂的游戏想法的关键。你不仅能够编写与本书中开发的游戏相似的游戏,而且你还将具备足够的知识去上网或逛书店,自己开发新的游戏领域。

这本书是给谁的

这本书首先面向游戏编程的完全初学者。你不需要任何关于主题的先验知识;我们会教你所有的基本知识。然而,我们需要假设你对 Java 有一点了解。如果你对这个问题感到生疏,我们建议你读一读布鲁斯·埃凯尔(Prentice Hall,2006 年)的《用 Java 思考》(Thinking in Java )来刷新你的记忆,这是一本优秀的编程语言入门书籍。除此之外,没有其他要求。没有必要事先接触 Android 或 Eclipse!

这本书也是针对那些想接触 Android 的中级游戏程序员的。虽然有些材质对你来说可能已经是旧闻了,但仍然有许多技巧和提示值得一读。Android 有时是一只奇怪的野兽,这本书应该被视为你的战斗指南。

这本书的结构

这本书采用了一种迭代的方法,我们将缓慢但肯定地从绝对的基础工作到硬件加速游戏编程的深奥高度。在本章的过程中,我们将建立一个可重用的代码库,你可以用它作为大多数类型游戏的基础。

如果你阅读这本书纯粹是作为一个学习练习,我们建议从第 1 章开始按顺序阅读这几章。每一章都建立在前一章的基础上,这是一次很好的学习经历。

如果你读这本书的目的是想在最后发布一款新游戏,我们强烈建议你跳到第 14 章,学习如何设计你的游戏,使其适销对路并赚钱,然后回到起点开始开发。

当然,更有经验的读者可以跳过他们认为有把握的部分。请务必通读您浏览过的部分的代码清单,这样您就会理解在后续更高级的部分中如何使用这些类和接口。

下载代码

这本书是完全独立的;包含了运行示例和游戏所需的所有代码。然而,将书中的清单复制到 Eclipse 很容易出错,而且游戏不仅仅由代码组成,还包含一些您不能轻易从书中复制出来的素材。我们非常小心地确保本书中的所有列表都没有错误,但是小精灵们总是在努力工作。

为了使这一过程顺利进行,我们创建了一个谷歌代码项目,为您提供以下内容:

  • 从项目的 Subversion 存储库中可以获得完整的源代码和素材。该代码根据 Apache License 2.0 获得许可,因此可以在商业和非商业项目中免费使用。这些素材由-SA 3.0 根据知识共享协议授予许可。您可以为您的商业项目使用和修改它们,但是您必须将您的素材置于相同的许可之下!
  • 一个快速入门指南,向您展示如何以文本形式将项目导入到 Eclipse 中,以及同样的视频演示。
  • 一个问题跟踪器,允许您报告您发现的任何错误,无论是在书本身还是在书附带的代码中。一旦您在问题跟踪器中提交了一个问题,我们就可以在 Subversion 存储库中合并任何修复。这样,您将始终拥有本书代码的最新(希望)无错误版本,其他读者也可以从中受益。
  • 一个讨论组,每个人都可以自由加入并讨论书的内容。当然,我们也会在那里。

对于包含代码的每一章,Subversion 存储库中都有一个等价的 Eclipse 项目。这些项目并不相互依赖,因为我们将在本书的过程中反复改进一些框架类。因此,每个项目都是独立的。第五章和第六章的代码都包含在ch06-mrnom项目中。

谷歌代码项目可以在http://code.google.com/p/beginnginandroidgames2.找到

联系作者

如果您有任何问题或意见——或者甚至发现您认为我们应该知道的错误——您可以通过注册帐户并在http://badlogicgames.com/forum/viewforum.php?f=21发帖联系 Mario Zechner,或者通过访问www.rbgrn.net/contact.联系 Robert Green

我们更喜欢通过论坛联系。这样其他读者也会受益,因为他们可以查找已经回答的问题或参与讨论!