分类: 嵌入式
2011-08-11 10:03:10
编写游戏不是一项轻松的任务,即使你是个经验丰富的程序员,游戏的设计模式、术语和思考过程看上去也会有点奇怪和不合常规。由于我的大部分工作时间都投入到了创建商业应用程序上,因此编写游戏只能算是一项业余爱好,这些年来我的孩子们享受着玩我编写的游戏的乐趣。随着iPod touch和iPhone的发布,我觉得是时候将我的一款游戏公布于世了。
我的首要任务是找一本开发iPhone游戏方面的优秀书籍。经过大量搜寻,我认为我想找的书并不存在。由于从我写的大量在线教程上获得了很多反馈,我决定自己写一本书。对于我来说,这是一个绝佳的机会,去编写一本我一直想要的游戏编程方面的书。
这些年来,我阅读了许多游戏开发方面的书籍,但还是觉得不够。尽管它们提供了许多创建游戏需要的各个部分的知识,也包含了许多小例子,但是从未包括编写出一个足够发布的完整的程序的全过程。我一直认为,一本好书应该告诉读者创建游戏需要什么,同时也应该展示在一个完整的游戏项目中应该如何实现每个组件。
所以,不只是介绍在iPhone上编写游戏需要的组件和技术,也会介绍创建一个完整的游戏Sir Lamorak's Quest: The Spell of Release的全过程。从App Store上可以免费下载此游戏,你可以通过它来学习如何编写游戏。
下载游戏可以通过如下网址从AppStore中下载游戏Sir Lamorak's Quest: /id368507448?mt=8。此游戏是免费的,下载后就可以开始玩了,试着帮助Sir Lamorak逃出城堡!
本书介绍了创建二维游戏的必要组件,涵盖了诸如OpenGL ES和OpenAL的技术,以及必要的关键游戏引擎组件,如精灵表、动画、触摸输入和声音等。
的每一章都详细介绍该游戏中的一个特定组件,以及支持该组件的技术,例如贴图地图编辑器,或者尝试用OpenGL ES创建的一些特效。介绍完功能和技术后,紧接着会介绍在游戏Sir Lamorak's Quest中实现这些组件的细节。这种理论和实现相结合的方式,有助于填补其他开发书籍留下的空白。
关于游戏Sir Lamorak's Quest1982年我得到了48KB的Sinclair Spectrum游戏电脑作为圣诞礼物,由此开始了玩游戏的经历。从那刻开始我沉迷于计算机,并从此与之结缘。
一想到要为此书开发的游戏,我就想到了20世纪80年代玩的那些游戏。这些游戏当初给我留下深刻的印象,尽管它们在视觉上并不是很炫目,但是玩起来还是很有意思的。
我在游戏设计上花了很多时间,不仅包括游戏中人物的设计,还包括如何在iPhone上实现游戏设计。游戏的一个关键方面在于它应该玩起来自然随意—即其观念应该简单并易于学习,而且玩家可以在不丢失进度的前提下随意开始和停止游戏。
同时我希望游戏的控件能很轻易地被玩家识别出来,因此我决定实现一个屏幕上的手柄来控制主要角色。然而让玩家能移动手柄位置也很重要,那样的话惯用左手和右手的玩家都能觉得舒适。
对于游戏情景本身,我决定采取我在20世纪80年代玩的那些游戏中的设计观念,即玩家被困在一个废弃的城堡中,他需要找到一个魔咒帮助他逃离城堡。
本书的组织结构总共分16章,每章具体讲解创建游戏Sir Lamorak's Quest的一个特定领域,各章简介如下:
第1章“游戏设计”—本章描述设计游戏Sir Lamorak's Quest时的设计因素。本章会深入讲解开始创建游戏时的想法。虽然本章并不涵盖每个类别的游戏需要的所有可能的游戏设计决定,但确实会讲解最重要的设计决定。
第2章“术语、技术和工具”—即使资深程序员也会被这3个单词搞混。本章介绍创建游戏Sir Lamorak's Quest和其他游戏时使用的基本技术、术语和工具。本章将帮助读者了解贯穿本书的术语和技术。
第3章“开始探索旅程”—从本章开始我们将正式关注代码并往iPhone屏幕上渲染点东西。本章涉及用Xcode中的OpenGL ES样例项目创建第一个项目的过程,详细讲解该样例并为下一章设置好场景。
第4章“游戏循环”—任何游戏的核心都是游戏循环。循环负责确保所有的游戏元素(诸如AI和渲染)在正确的时间按正确的步骤执行。这听起来很简单,但是由于有很多种涉及游戏循环的方法,所以也不是那么简单。本章将介绍这些方法,并详细介绍游戏Sir Lamorak's Quest使用的方法。
第5章“图像渲染”—将图像绘制到屏幕上是任何游戏的基本要求。本章简单介绍OpenGL ES,运行一些已经创建好的类来简化图像的创建和渲染过程。
第6章“精灵表”—精灵表是包含很多小图像的大图像。精灵表用于减少内存中存储的独立图像的数目,并减少OpenGL ES需要绑定以改善性能的纹理数目。创建动画精灵时也会用到精灵表。本章介绍创建精灵表(其中包括游戏中要使用的图像)的过程,无论其维度是固定或可变的。
第7章“动画”—用精灵表存储了动画中需要的不同帧后,本章描述如何将单独的图像组合成动画,如玩家角色跑动的动画。
第8章“点阵字”—与游戏玩家进行交互比较常见的方法是使用文本信息。能将操作指南和信息(例如玩家的分数或如何使用游戏的指导)渲染到屏幕上十分重要。本章描述如何用开源工具将任何字型转换成点阵字。创建好点阵字后,本章会介绍如何创建精灵表,用来存储渲染字型的字符时用到的图像。同时本章详细介绍游戏 Sir Lamorak's Quest中用到的Bitmap字型类,它提供了一个简单的API用于渲染文本信息到屏幕上。
第9章“贴图地图”—使用贴图地图可以用一系列小图像创建出大型游戏世界。开发人员经常在内存有限时使用这种方法来创建大型游戏世界(想想任天堂的超级马里奥兄弟吧),在早期的家庭游戏系统中尤为如此。 直到现在,贴图地图技术还是很受欢迎的,本章将描述使用开源贴图编辑工具来创建贴图地图,同时也会介绍将这些地图渲染到屏幕上的类。
第10章“粒子发射器”—许多游戏都有令人难以忘怀的特效,如火、爆炸、烟雾和火花等。这些特效通常是用粒子系统创建出来的。粒子系统负责创建和控制很多粒子;每个粒子都有自己的诸如大小、形状、方向、颜色和生命周期等属性。在其生命周期中,粒子的位置、速度、颜色和大小都会基于其设置发生变化。本章将详细介绍如何创建粒子系统,并用此来产生许多基本特效。
第11章“声音”—即使在现在的现代游戏中,将声音反馈给玩家依然是十分重要的。本章将介绍iPhone的媒体播放器功能和OpenAL,以及介绍如何用这些技术在游戏中播放酷酷的音迹和3D音效。
第12章“用户输入”—本章将介绍如何用iPhone的独特触控技术和加速器功能来控制游戏。本章详细描述如何同时获取和处理多点触控,以及如何在游戏中获取和使用加速器的数据。
第13章“游戏界面”—本章着眼于游戏Sir Lamorak's Quest中游戏界面的实现,包括如何处理旋转事件以确保正确显示用户界面,以及如何混合使用OpenGL ES和UIKit界面控件等。
第14章“游戏对象和实体”—当玩家在游戏Sir Lamorak's Quest的城堡中走动时,我们希望他能找到和捡起对象并能和坏人进行战斗。本章描述如何实现游戏Sir Lamorak's Quest中的对象和实体。
第15章“碰撞检测”—如果玩家和坏人能穿过墙壁和门,游戏就看起来很糟糕,所以有必要检测玩家和对象间,或者玩家与游戏中的对象和实体间的碰撞。本章描述不同类型的碰撞检测,并介绍如何在游戏Sir Lamorak's Quest中实现它们。
第16章“组装起来”—到此时为止,本书已经介绍了很多基础内容。然而,读者还可以为自己的游戏锦上添花。本章介绍在手机来电导致玩家退出游戏时如何保存游戏状态。同时介绍使用仪表进行的单元检测以及如何对游戏进行β测试等内容。
本书的目标读者《iPhone游戏开发实践指南》是为那些有程序开发经验但没有开发过计算机游戏的开发人员准备的。尽管本书假设读者已经有利用Objective-C编程的经验,但每章都会提供Objective-C和其他技术的相关知识,以供读者了解其概念和实现。
读者阅读完本书后,能掌握如下知识:对于游戏Sir Lamorak's Quest的游戏引擎的深度认识,以及创建2D游戏引擎需要的关键能力和需要考虑的事项。本书将使你具备使用本书中的游戏引擎进行自己的游戏开发的能力,或者简单利用创建游戏的知识来使用其他可用的iPhone游戏引擎(例如Cocos2D)的能力。
如果你已经开发过iPhone应用,但想将注意力从实用应用转到游戏上,那么本书就是为你准备的。本书建立在读者已有的开发知识之上,通过描述需要的术语、技术和工具以及提供实际的实现例子,带领读者进入游戏开发的领域。
不适合本书的读者讲的是二维平面游戏,如果你的兴趣不在这里,比如说你感兴趣的是用OpenGL ES来应用三维图形,那么本书并不适合你。
在阅读本书之前,希望你已经对Objective-C、C、Xcode和Interface Builder有了一定的了解。尽管本书中描述的实现已经尽量简化,并且限制在C语言下进行开发,对于其他语言的坚实基础也是很有必要的。
如下书籍会提供一些基础:
Cocoa Programming for Mac OS X,Third Edition byAaron Hillegass (Addison-Wesley, 2008).
Learning Objective-C 2.0,by Robert Clair (Addison-Wesley,2011).
Programming in Objective-C 2.0,by Stephen G. Kochan(Addison-Wesley,2009).
Cocoa Design Patterns,by Erik M. Buck and Donald A.Yacktman (Addison-Wesley,2009).
The iPhone Developer's Cookbook,Second Edition,by Erica Sadun (Addison-Wesley,2010).
Core Animation: Simplified Animation Techniques for Mac and iPhoneDevelopment, by Marcus Zarra and Matt Long (Addison-Wesley,2010).
iPhone Programming:The Big Nerd Ranch Guide,by AaronHillegass and Joe Conway (Big Nerd Ranch,Inc.,2010).
这些图书和其他一些网上的资源可以帮助你了解更多如何为Mac和iPhone编程的信息,并加深对Objective-C和Cocoa框架的理解。
下载源代码除了之外你还可以了解很多信息。游戏Sir Lamorak's Quest的完整的带有注释的源代码可以从InformIT.com下载。
本书通篇穿插了大量的代码,并为读者准备了很多练习,但是读者仍然很有必要阅读苹果为开发者准备的工具,诸如Xcode和iPhone SDK等。可以从Apple iPhone Dev Center下载这些资源。
作者简介白天,Micheal Daley在为世界上最大的商业软件公司工作,该公司的主要顾客为大型企业。晚上,Micheal学习如何为iPhone手机构建游戏。Micheal最开始用BASIC在Sinclair Spectrum 48KB上编写历险游戏,后来进一步发展到在Commodore 64和Amiga A500上写游戏。他从未停止对游戏编程的热爱,自iPhone问世后,Micheal开始学习Objective-C和如何为iPhone创建游戏。
许多年来Micheal为自己的孩子编写了很多游戏,iPhone的发布让他想为更多的人编写游戏,而不仅仅是为自己的孩子。对于学习并应用新的技术,Micheal很有热情。同时他也是个Apple粉丝,在最新的Apple设备上投入了大量时间和金钱。