热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iPhone游戏开发实践指南

《iPhone游戏开发实践指南》前言   编写游戏不是一项轻松的任务,即使你是个经验丰富的程序员,游戏的设计模式、术语和思考过

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

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's 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设备上投入了大量时间和金钱。


推荐阅读
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 1.webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用(1) ... [详细]
  • 2015年iOS测试现状
    本文由伯乐在线-nathanw翻译,dopcn校稿。未经许可,禁止转载!英文出处:www.mokacoding.com。欢迎加入翻译小组。几周前,我决定将将我在mokacoding ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • jsappsugar,基于,js,语法,定义 ... [详细]
author-avatar
卖砖头的小男孩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有