《iPhone游戏开发实践指南》前言

编写游戏不是一项轻松的任务,即使你是个经验丰富的程序员,游戏的设计模式、术语和思考过程看上去也会有点奇怪和不合常规。由于我的大部分工作时间都投入到了创建商业应用程序上,因此编写游戏只能算是一项业余爱好,这些年来我的孩子们享受着玩我编写的游戏的乐趣。随着iPod touch和iPhone的发布,我觉得是时候将我的一款游戏公布于世了。

我的首要任务是找一本开发iPhone游戏方面的优秀书籍。经过大量搜寻,我认为我想找的书并不存在。由于从我写的大量在线教程上获得了很多反馈,我决定自己写一本书。对于我来说,这是一个绝佳的机会,去编写一本我一直想要的游戏编程方面的书。

这些年来,我阅读了许多游戏开发方面的书籍,但还是觉得不够。尽管它们提供了许多创建游戏需要的各个部分的知识,也包含了许多小例子,但是从未包括编写出一个足够发布的完整的程序的全过程。我一直认为,一本好书应该告诉读者创建游戏需要什么,同时也应该展示在一个完整的游戏项目中应该如何实现每个组件。

所以,《iPhone游戏开发实践指南》不只是介绍在iPhone上编写游戏需要的组件和技术,也会介绍创建一个完整的游戏Sir Lamorak's Quest: The Spell of Release的全过程。从App Store上可以免费下载此游戏,你可以通过它来学习如何编写游戏。

下载游戏

可以通过如下网址从AppStore中下载游戏Sir Lamorak's Quest:http://itunes.apple.com/us/app/sir-lamoraks-quest-the-spell/id368507448?mt=8。此游戏是免费的,下载后就可以开始玩了,试着帮助Sir Lamorak逃出城堡!

本书介绍了创建二维游戏的必要组件,涵盖了诸如OpenGL ES和OpenAL的技术,以及必要的关键游戏引擎组件,如精灵表、动画、触摸输入和声音等。

《iPhone游戏开发实践指南》的每一章都详细介绍该游戏中的一个特定组件,以及支持该组件的技术,例如贴图地图编辑器,或者尝试用OpenGL ES创建的一些特效。介绍完功能和技术后,紧接着会介绍在游戏Sir Lamorak抯 Quest中实现这些组件的细节。这种理论和实现相结合的方式,有助于填补其他开发书籍留下的空白。

关于游戏Sir Lamorak's Quest

1982年我得到了48KB的Sinclair Spectrum游戏电脑作为圣诞礼物,由此开始了玩游戏的经历。从那刻开始我沉迷于计算机,并从此与之结缘。

一想到要为此书开发的游戏,我就想到了20世纪80年代玩的那些游戏。这些游戏当初给我留下深刻的印象,尽管它们在视觉上并不是很炫目,但是玩起来还是很有意思的。

我在游戏设计上花了很多时间,不仅包括游戏中人物的设计,还包括如何在iPhone上实现游戏设计。游戏的一个关键方面在于它应该玩起来自然随意—即其观念应该简单并易于学习,而且玩家可以在不丢失进度的前提下随意开始和停止游戏。

同时我希望游戏的控件能很轻易地被玩家识别出来,因此我决定实现一个屏幕上的手柄来控制主要角色。然而让玩家能移动手柄位置也很重要,那样的话惯用左手和右手的玩家都能觉得舒适。

对于游戏情景本身,我决定采取我在20世纪80年代玩的那些游戏中的设计观念,即玩家被困在一个废弃的城堡中,他需要找到一个魔咒帮助他逃离城堡。

本书的组织结构

《iPhone游戏开发实践指南》总共分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应用,但想将注意力从实用应用转到游戏上,那么本书就是为你准备的。本书建立在读者已有的开发知识之上,通过描述需要的术语、技术和工具以及提供实际的实现例子,带领读者进入游戏开发的领域。

不适合本书的读者

《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框架的理解。

下载源代码

除了《iPhone游戏开发实践指南》之外你还可以了解很多信息。游戏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设备上投入了大量时间和金钱。

iPhone游戏开发实践指南相关推荐

  1. Android游戏开发实践指南(华章程序员书库)

    <Android游戏开发实践指南(华章程序员书库)> 基本信息 原书名:Learning Android Game Programming:A Hands-On Guide to Buil ...

  2. AndEngine 《Android游戏开发实践指南》之“吸血鬼游戏”实例学习(一)

    购买的<Android游戏开发实践指南>一书用的AndEngine库已经更新过,书上很多代码不适应于AndEngine GLES 2. 根据书上的步骤通过学习<少女大战吸血鬼> ...

  3. lua游戏开发实践指南光盘_Godot游戏开发实践之三:容易被忽视的Resource

    一.前言 首先,特大喜讯,奔走相告, Godot 爱好者们又有新的窝了--我们国人自建的 Godot 论坛:Godot中文社区已经正式开放,这里有一手的开发资源,最新的科技动向,开发上有啥问题可以随时 ...

  4. lua游戏开发实践指南光盘_Godot游戏开发实践之一:用High Level Multiplayer API制作多人游戏(上)

    一.前言 距离上一次发文已经稳稳超过一年了,去年一直在做 #¥@#*!%--%#&-%&^# 然后待在家里了!偶尔写写 BUG ,一直默默关注着 Godot ,这不已经 3.2.2 版 ...

  5. 《Lua游戏开发实践指南》一3.2游戏项目中的Lua

    3.2游戏项目中的Lua 把脚本语言集成到游戏项目中可以提升团队的开发效率,并且可以很好地扩展原生编译语言的能力.Lua在游戏开发的许多基础领域中都表现得很出色. 在游戏开发团队中,可能有许多成员都使 ...

  6. 《LUA游戏开发实践指南》学习笔记1

    本文只做个人学习笔记! Lua脚本语言的优点:免费.小巧.快速和易移植. 游戏项目中的Lua,可以完成以下工作 编辑游戏用户界面(玩家和你的游戏进行交互的媒介) 定义.存储和管理游戏数据(Lua本人并 ...

  7. Activity-的-36-大难点,你会几个?,android游戏开发实践指南

    1.8 Activity 的四种状态 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UFcrVAzd-1636340687545)(//upload-images.ji ...

  8. 《Lua游戏开发实践指南》学习笔记3

    深入学习Lua table数据结构 在这里,小编给各位说个小伤感的笑话,我的一个好×××啊去一家公司面试,该企业面试的全是有关lua的题,其中有一道题是这样的,问"Lua中有数组吗?&quo ...

  9. iPad应用开发实践指南:菜鸟如何用ios 5开发ipad上的复杂应用程序

    <iPad应用开发实践指南>前言 2011年10月,苹果公司首席执行官Tim Cook公布了有关iPad的一些有趣数据,包括: 财富500强公司有92%在测试或部署iPad: 美国本土80 ...

最新文章

  1. 判断元素是否在ndarray_暨南大学药学院考研~手性的判断与相关介绍
  2. BrowserSync前端同步测试工具
  3. Python实现行转列?!超简单,赶快get起来
  4. C语言写个贪吃蛇游戏
  5. 关于Android studio run 按钮灰色无法运行的总结
  6. 2个vector如何合成一个_面试中如何做到不卑不亢,牢记2个要点
  7. flask-limiter限制单个IP访问的频率和次数
  8. 再复杂的报表,用这3种方式,都能解决!
  9. 农民工兄弟学C#(4)
  10. 华为s5500t服务器硬盘,HuaweiOceanStor1T SAS 7.2K3.5寸WD1003FBYXS5500T存储硬盘
  11. MySQL-存储过程-高效清理数据
  12. docsify操作和Docker部署流程文档
  13. 一文入门 Spring Cloud Tencent
  14. 二叉平衡树的基本操作(完整代码)
  15. 再见c罗再见梅西_再见眼镜你好smartglasses
  16. shiro:principal为空问题
  17. 微信小程序返回上一级页面时刷新页面
  18. 微型计算机赛睿寒冰5评测,为什么说寒冰5才是赛睿性价比最高的游戏耳机?
  19. 淘宝天猫开放平台店铺商品发布(新)-淘宝店铺发布API接口流程代码对接说明
  20. charts漏斗图表_漏斗图 | ECharts 数据可视化实验室

热门文章

  1. Meipai–Capture the wonders美好瞬间用美拍补捉
  2. 分治算法求解汉诺塔问题
  3. Python正则匹配
  4. nyoj--61 传字条(一)(多线程dp)
  5. Ubuntu更换软件源
  6. C# json解析字符串总是多出双引号_【c#资料】爬虫 Jumony-html 解析
  7. HearthBuddy的狂野和休闲模式来回切换
  8. 为自定义编辑器属性增加对象拖动到属性和选择对应对象信息功能
  9. Java多线程工具包java.util.concurrent---Lock
  10. 学习python(二)——input函数与print函数