简 介(4)

  

1.5  本书内容

在本书中,我会分享一些我的游戏开发经验,从中大家可以看到交互游戏都是怎么如何做出来的。我认为,学习编程不等同于去记住很多API方法。但是我在过去20年里读到了太多游戏开发书籍,它们都只是在遵循着“参考手册”的模式,而那根本就是API文档该做的事。从我20年前开始编程的时候,我就觉得我以后不可能只是看着一大堆编译器的说明书和参考手册去学习怎么如何编程。那时候,这些书和手册都还是纸质版的,显然还没有在线版本(当时的互联网发展还不够成熟)。所以我桌上堆了差不多15英寸高的资料,着实令人望而生畏。

直到今天,有很多方法和API我还是记不住,而且以前背过的一些也常常忘记,所以我会一再去查阅它们。经过20年的编程生涯,我体会出了真正值得学习的东西——思想。好的编程思想和最佳实践经验是经得起时间考验的,而且对使用任何语言的编程都是有帮助的。而学习编程思想的最好方法就是去理解设计、架构和编码过程中采用的各种方法的基本原理。这就是我要着重关注的地方。

1.5.1  iOS游戏开发新手将学会什么

别担心,我会让你尽可能容易地学会cocos2d里最重要的概念。我会强调一些你应该牢记的类、方法和概念,因为它们对于使用cocos2d进行编程实在是太基础、太常用了。

你也可以学到一些能够支持cocos2d或者能被它支持的工具。没有这些工具,你只能算是半个cocos2d程序员。你会用到像Zwoptex和Particle Designer这样的工具来制作越来越复杂、越来越具有挑战性的游戏。由于篇幅,本书的示例游戏还不够完整,可能还有些粗糙,而且我们也无法把每一行代码都解释清楚。但我会尽量在源代码中加入注释以便大家理解。

可以在这些游戏框架的基础上进行改进,进而完成你的游戏,我很期待看到你的成果!我认为给你一些可以继续开发的游戏框架会比用一整本书教你如何制作最典型的战机类太空游戏有用得多。

我主要是根据App Store上的关注度来选择示例游戏的。另外,因为有些开发者经常问一些在游戏开发中碰到的问题,所以我把这类具有代表性的游戏也加到了示例中。举例来说,画线类游戏(line-drawing game)是cocos2d游戏开发者们非常热衷的一游戏,但是在这种游戏的开发过程种你会遇到很多看似极其复杂的问题。

我看过很多其他程序员写的cocos2d代码,也参与过他们对于代码设计、结构和风格的讨论。在本书中,我采用了“继承+组合”的模式来作为示例代码的框架,在后面的章节中我会解释这样做的好处。另一个经常被问到的代码设计问题是:不同对象间应该如何沟通。不同的代码设计和代码结构都有各自的优缺点,我将介绍这些概念以帮助大家在今后写出一些更稳定、性能更高的代码。

1.5.2  iPhone应用程序开发者将学会什么

作为iPhone应用程序开发者,你一定接触过iPhone SDK了?非常好!你最感兴趣的问题一定是如何在没有Interface Builder的情况下制作游戏吧?其实,除了Interface Builder以外,还有很多其他工具可供使用。它们可能不像苹果公司官方提供的工具那么,但也是很有用的。

另外,编程思路也需要进行些改变。在游戏编程中,你通常不会接收或发送事件,而是让更多的对象决定如何响应事件。考虑到性能问题,也为了减少用户输入的等待时间,游戏引擎的各个系统往往是密切相关的。在这里,大量的工作会在循环和更新方法(会在每帧被调用一次,或以用户指定的频率被调用)中完成。相比较而言,一个基于用户交互的应用会花大部分时间来等待用户输入,而游戏则会在后台不断地对数据和像素进行处理,即便玩家没有进行任何操作。所以,在游戏中,每时每刻都有很多事情在发生。而且,出于对性能的考虑,游戏代码也变得更加优化、更加高效。

读书导航