基本信息
- 原书名:Tap,Move,Shake: Turning Your Game Ideas into iPhone & iPad Apps
- 原出版社: O'Reilly Media
内容简介
作译者
目录
第1章 Xcode简介 1
1.1 开发者注册 1
1.2 安装 1
1.3 Xcode 3
1.3.1 项目类型 3
1.3.2 Xcode界面 5
1.3.3 构建和运行 10
1.3.4 代码结构 12
1.3.5 应用程序状态 13
1.4 Interface Builder 16
1.5 连接 20
1.6 游戏逻辑 22
第2章 Hello Pong 26
2.1 项目创建 26
2.1.1 目标设置 27
2.1.2 App Info 28
2.2 设计游戏组件 29
2.2.1 Interface Builder 29
2.2.2 连接 31
译者序
但是iOS开发有着较高的门槛,游戏开发更是如此。往往很多有从事iOS游戏开发意向的人,不知道要怎样入门。对iOS开发一无所知,也没有游戏开发经验,要如何开始?没关系,本书正是为此存在的。跟着作者的思路,开始学习iOS游戏开发吧。
全书共有7章,每一章都是一个独立的主题,但彼此之间又是密不可分的。第1章:Xcode简介,先让读者对Xcode有个初步的认识,并从一个简单的数学游戏开始。第2章:Hello Pong,在快速了解了Xcode的基础之后,作者向我们展示了一个充分利用了iOS平台特性的小游戏。第3章:图像,在Pong游戏的基础上,作者介绍了图像的处理,使原有游戏在画面上有了质的提升。第4章:物理学,对原有的游戏增加了一些物理特性,使游戏看起来更真实。第5章:声音,作者介绍了声音处理的相关知识,包括录制和编辑。第6章:电脑AI,在原先双人游戏的基础上增加了电脑玩家,通过一定的策略使电脑能够模拟人的行为。第7章:App Store,在最终完成整个游戏的开发之后,作者介绍了将游戏发布到App Store上的整个流程,并分享了推广应用的经验。
本书涉及的内容非常丰富,有iOS开发者需要掌握的开发基础知识、应用发布和推广技巧、物理学、人工智能,甚至还包括图像和声音的处理,可谓是面面俱到,但又不是泛泛而谈,每一部分都充满了作者的经验和智慧。从基础知识到代码实践,本书是一本真正的DIY自学手册,让完全没有相关经验的开发者可以快速入门。
在读完这本书之后,你会充分体会到作者的编程美学——既简单又复杂。简单:(1) 从简单的问题入手,(2) 经常重用已有的东西,(3) 将复杂问题分为几个简单问题逐步解决,(4) 思路清晰,代码简洁;复杂:(1) 深入问题本质,(2) 思考问题全面,(3) 能从简单问题中引出新的特性。
如果你想要开始iOS(游戏)开发,我相信,阅读本书绝对会让你受益匪浅!
杨晓琪
前言
我从未见过如此众多的人对于创建应用和游戏有现在这样浓厚的兴趣。无论是全职员工还是玩iPod touch的孩子,几乎每个人都会停下来问我同样的问题:“你在App Store上有发布过游戏?”、“创建一款游戏要多久?”,而我被问到最多的是“我能做到吗?”。似乎每个人都跃跃欲试,想在这一新的平台上创建游戏,但大部分人还是不知道要怎样才能入门。
我于2008年的8月进入应用开发领域,当时我准备开发一款名叫BubblePop的游戏,你必须快速打爆移动中的气泡,每个气泡中都有一个随机数,必须按正确的顺序弄爆气泡。我希望我的第一款游戏足够简单,以让我快速熟悉这一平台,但同时又希望游戏充满了挑战,让那些帮我测试的朋友乐在其中。
当我开始开发游戏时,我对Mac、Xcode以及Objective-C都还一无所知,而且我只能利用晚上和周末的时间来开发游戏。当时,还没有任何相关的书籍,而在网上找到的内容大多都是关于为“越狱”的iPhone创建应用,以及非官方的SDK。虽然有很多东西要学,而且白天也要工作,但我仍然能够在一星期内完成游戏开发。
经过反复尝试,我终于将我的游戏投放到App Store了。现在需要一段时间的等待,我的账号和游戏都需要让苹果审核。审核过程感觉相当漫长,这真是一种折磨。但所有合约都审核通过的那天终于到来了,苹果为我的游戏亮了绿灯,当时我就好像是过圣诞节的孩子那样兴奋。当我看到游戏在iTunes上发布,全世界都可以来购买它时,这种感觉真是太不可思议了。
我创建第一款游戏的目的并不是成为百万富翁,我只是想学习这一平台,为我的iPhone创建一款有趣的游戏,以及赚足够的钱来支付之前买的24英寸iMac。但最终我赚的比我想要的多得多,尤其是其中的两款应用——《催眠白噪音》和《21点算牌器》,让我赚得盆满钵满。在2009年2月,这两款应用同时进入了付费下载应用的Top 20。当销售报告出来时,我感觉就像中了大奖一样,报告显示我赚到了相当于我当前工资10倍的钱。当时,我就决定把这个有趣的小爱好变成全职工作,从此我一直都在创建应用和游戏。我希望你也能这样。
——Todd Moore
本书读者对象
我遇到过许多有着游戏创意但不知道如何着手开始的人。如果你有资金,那么你可以雇一队开发人员和美工来创建游戏。我发现雇用有经验的智能手机开发人员和美工,费用并不便宜。作为独立的开发者,有一点很关键,你需要学习所有必要的技能以便自己动手完成,只在迫不得已时才雇别人来做。
本书是为那些有一点点编程经验,但从没有在iOS平台上做过开发的人编写的。你是否在PC或Mac平台上创建过应用程序?你是否使用过ASP.NET、PHP或Perl做过服务端网络开发,而现在想要尝试创建原生的应用?你是否已经熟悉C或C++,但对Objective-C还知之甚少?或者你只是想尽可能快地创建一款iPhone游戏?如果你正好就是以上这些人,那么请继续阅读本书。我写这本书是作为一份指导手册(我很希望当时在我创建自己第一款游戏时也能有这么一份参考手册)。
本书主要内容
我想要教会你创建一款有着iPhone硬件特色的、与其他平台相比独一无二的游戏。大部分游戏通常在操作上都会用到方向键、模拟操纵杆以及各种按钮。iPhone和iPad给予我们一种全新的输入方式——多点触控。iPhone和iPod touch屏幕上可同时追踪5个独立的触控点,而在iPad上的触控点可达11个之多。这就开启了一种之前从未有过的、全新的游戏类型。所以,你要从头开始学习怎样处理屏幕上的多个触控点。
本书会教你快速创建一个运用多点触控的双人游戏,而更激动人心的是,所有的这些只编写了20行左右的代码!但是,它看上去已经很像1972出现的Pong游戏了。这可能不会令你激动万分,除非你从小玩着雅达利公司的家用Pong游戏机成长的,就像我这样。值得注意的是,就游戏元素而言,过去的技术也可以拿到现在来用。
我们来思考一下。Pong这款老游戏和3D第一人称射击游戏如《使命召唤:现代战争》有什么共通之处呢?诚然,Pong的图像表现不会太好,但这两款游戏都有着同样的元素——控制一个玩家,这个玩家位于特定的世界中,需要达成一定的目标,并且通过计分来描绘游戏过程。无论你是通过球拍击球还是在高度仿真的世界中击杀敌人,以此来获得经验,整个游戏的元素都别无二致。所以,我将以一个非常简单的概念开始,然后向你展示如何一步步扩展成更时髦的游戏。
游戏开发的下一阶段是创造华丽的图像和真实的音效。我将向你展示一些通常只有美工和音响师才会知道的秘诀。作为独立开发者,学习这些技巧是非常重要的,这可以帮助你节省不少时间和成本。本书中设有专门关于创建图像和声音的章节。我将向你展示如何使游戏在视觉和听觉上都和真实的桌上冰球游戏没什么两样。
在开发并测试这款新游戏的过程中,你可能会注意到,游戏的外观与真实的桌上冰球游戏很相近,而游戏体验却天差地别。感觉不到冰球是在冰面上移动,桌面也没有一点摩擦力,球拍击打冰球后会造成错误的角度和速度。因此,你需要关心这些潜在的游戏物理学,并将它们添加到你的游戏中。我将向你展示如何将你在学校中所学的,认为再也用不到的数学知识应用到游戏中,以让我们的桌上冰球游戏有更真实的体验。
最后,游戏另外创建了一个与电脑对战的单人模式。在任何单人游戏中,电脑AI应该是最复杂、最重要的部分了,本书尽可能简化整个过程。第一步,创建一种算法使电脑的行为接近完美并无法战胜。如果你无法获胜,那么游戏将会毫无乐趣可言,因此,我们引进了失误因素,这让电脑玩家的表现更像人一些,偶尔也会犯错。利用某种机制可以降低电脑的智能程度,并提供多个难度等级的选择,从简单到困难。
游戏完成之后,你将了解一些向App Store发布应用的准备工作。你需要写一份产品描述,创建引人注目的截图以及向苹果提交审核。
让我们开始开发之旅吧!
本书中的约定
序言
我总是在用最少的芯片进行设计,这应该算是我的一个心得。在开始苹果开发之前,我曾看到在保龄球馆里有一项Pong游戏 ,心想如果我能自己实现出来那一定会很有趣。我创建的Pong游戏和雅达利的那款没有任何关系,在它们推出该游戏的电视家用版的前1年,我就已经完成了这款游戏。
总之,我总共用了28块芯片就完成了Pong游戏的设计。这很令人震惊,感觉就像是回到了还没有微处理器的时代。这款游戏的每一个位都是用电线和小的门电路实现的。这不是一款加载进内存然后执行的软件程序,而是完全靠硬件电路搭出来的。
我找了年轻时的朋友史蒂夫·乔布斯(他当时在雅达利工作),并向一组工程师展示了我的游戏,他们都爱不释手!之后,史蒂夫打电话给我说,雅达利想开发另一款类似Pong的游戏。雅达利的创始人Nolan Bushnell想让我来做这款游戏,因为他知道我在这方面做得很出色。Nolan抱怨雅达利的游戏用的芯片越来越多,开发一款很简单的游戏就要用上200块。他希望他们的游戏能更小巧些,于是他看中了我的才能。
他们想开发一个单人版本的Pong游戏,结合一些砖块,球撞上砖块后会反弹回球拍。它被称为“打砖块”,或许你还记得?就这样,我毫不犹豫就答应了。雅达利希望尽可能使用最少的芯片,我接受了这项挑战。
整个游戏花了4天时间完成,最后只用了45块芯片。
我喜欢这本书,也同意来写这篇序,因为这本书传达了和我人生观很相近的一种思想,那就是用简单的方式实现复杂的内容,用更少的花费做更多的事情。这点对于当今的移动设备(比如苹果的iPhone)尤为重要。
工程师需要努力把事情做得比他们预想的更完美。代码的每一个细节或者每一行都必须有意义,而且设计方案必须直接、简短和高效。我们建立小规模的软硬件部分,然后再将它们组合成更大的部分。我们用少量的代码来控制事物的开关。如果没有工程师的努力思考(思考如何以最少的组件或者最少的代码得到最好的结果),那么就不可能创建出优雅出色的产品。
我们创建、创建、再创建,就像画家运用色彩作画,作曲家使用音符编曲那样,最终尽善尽美——尽一切努力把所有东西结合起来,完美整合,这是一种颠覆——让每位工程师或每个人都成为一名真正的艺术家。
——史蒂夫·沃兹尼亚克(Steve Wozniak)