iPhone遊戲開發實踐指南

hzbook2008發表於2011-08-11

《iPhone遊戲開發實踐指南》前言

    編寫遊戲不是一項輕鬆的任務,即使你是個經驗豐富的程式設計師,遊戲的設計模式、術語和思考過程看上去也會有點奇怪和不合常規。由於我的大部分工作時間都投入到了建立商業應用程式上,因此編寫遊戲只能算是一項業餘愛好,這些年來我的孩子們享受著玩我編寫的遊戲的樂趣。隨著iPod touch和iPhone的釋出,我覺得是時候將我的一款遊戲公佈於世了。

    我的首要任務是找一本開發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的技術,以及必要的關鍵遊戲引擎元件,如精靈表、動畫、觸控輸入和聲音等。

   《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下載這些資源。

iPhone遊戲開發實踐指南

作者簡介

    白天,Micheal Daley在為世界上最大的商業軟體公司工作,該公司的主要顧客為大型企業。晚上,Micheal學習如何為iPhone手機構建遊戲。Micheal最開始用BASIC在Sinclair Spectrum 48KB上編寫歷險遊戲,後來進一步發展到在Commodore 64和Amiga A500上寫遊戲。他從未停止對遊戲程式設計的熱愛,自iPhone問世後,Micheal開始學習Objective-C和如何為iPhone建立遊戲。

    許多年來Micheal為自己的孩子編寫了很多遊戲,iPhone的釋出讓他想為更多的人編寫遊戲,而不僅僅是為自己的孩子。對於學習並應用新的技術,Micheal很有熱情。同時他也是個Apple粉絲,在最新的Apple裝置上投入了大量時間和金錢。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16502878/viewspace-704646/,如需轉載,請註明出處,否則將追究法律責任。

相關文章