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設備上投入了大量時間和金錢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章