游戲作為娛樂生活的一個方面,參與其中的人越來越多,而大部分參與其中的人都是以玩家的身份。他們熱愛一款游戲,或是被游戲的故事情節、炫麗的場景、動聽的音樂所艷羡,亦或是被游戲中角色扮演、炫酷的技能、有趣的任務所吸引,然而他們中的大多數可能並不了解如此一款好玩的游戲是如何打造出來的。下面就跟大家分享如何開發一款游戲?游戲開發流程及所需工具!
對於想來這個行業嘗試的新人們,先對游戲開發制作有個整體的了解也是非常必要的。接下來我將從幾個方面來分別進行闡述。
基礎知識
游戲,說白了就是一個程序,這個程序或在 PC 上或在移動設備上運行,玩家通過與這個程序交互來達到娛樂性的目的。我們先了解一下游戲中用到的各種引擎以及游戲相關術語。
游戲引擎
游戲引擎是游戲研發的主程序接口,它為開發者提供了各種開發游戲的的工具,即可編輯游戲系統和實時圖像系統的核心組件,其目的就在於讓開發者可以快速的做出游戲而不必從零開始。
游戲引擎包含渲染引擎、物理引擎、碰撞檢測系統、網絡引擎、音效引擎、腳本引擎、動畫及場景管理等。
渲染引擎:是對游戲中的對象和場景起到渲染的效果,游戲中的角色都是通過渲染引擎將它的模型、動畫、光影、特效等所有效果實時計算出來並展示到屏幕;
物理引擎:讓對象運動遵循特定的規律,比如當角色跳起的時候,系統內定的重力值將決定它彈跳的高度及下落的速率;
碰撞檢測系統:可以探測各物體的邊緣,當兩個 3D 物體在一起的時候,系統可以防止它們相互穿過;
網絡引擎:是負責玩家與設備間的通信,處理來自鍵盤、鼠標及其它外設信號。若游戲聯網,它也用來管理客戶端與服務器間的通信;
Lua 引擎:是 Lua 的服務器引擎,lua 是一種輕量級的嵌入式腳本語言,在網游開發中應用廣泛。
總的來說,一個游戲是引擎和資源組成的,資源包括圖象、聲音、動畫等,游戲引擎就像一個發動機,控制着游戲的運行,它按游戲設計規則依次調用游戲資源。
游戲名詞
CD-key:游戲的序列號或防盜密碼;
BugFree:測試管理平台,是一款基於 Web 的開源錯誤追蹤工具;
Ping:從客戶端發送數據到服務器到接收到服務器反饋數據的時間,以 ms 計,若 Ping 值高會感覺延遲;
Proxy Server:代理服務器,代理網絡用戶去取得網絡信息;
PU:付費用戶;
RU:注冊用戶;
AU:活躍用戶;
DAU:平均每日活躍用戶;
CCU:同時在線人數;
PCU:最高同時在線人數;
ACU:平均同時在線人數;
ARPPU:付費玩家平均收入;
封測:限定用戶數量的游戲測試,用來對技術和游戲產品進行初步的驗證,用戶規模較小;
內測:面向一定數量用戶進行的內部游戲測試,多用於檢測游戲壓力和功能有無漏洞;
公測:對所有用戶公開的開放性的網絡游戲測試。
游戲的種類
游戲的分類方法很多,可以按終端、內容、攝像類型、玩家格斗對象、玩家人數等來分,其中按內容來分最直觀,它可以根據游戲的元素迅速錨定游戲范圍。
按終端分:主機游戲 (電視機游戲)、客戶端游戲、網頁游戲、手機游戲;
按攝影類型分:2D 游戲、2.5 游戲、3D 游戲;
按格斗對象分:PVE:PlayerVsEnvironment、PVP:PlayerVsPlayer;
按玩家人數分:單機游戲(Singe-Player Game)、多人游戲(Muti-Player Game)、大型多人在線(Massive Multiplayer Online Game)。
我們可以看一下 AppStore 中游戲的分類,非常鮮明,如下圖所示。
游戲的開發流程
游戲開發從狹義上講就是程序部門進行相關游戲程序的編寫,從廣義上講,是整個游戲制作過程,這其中包括多個部門的人員配備。下圖是一個一般性的游戲開發團隊。
整個團隊包含四個部門,即策划、美術、程序、制作人,各個部門負責不同的工作,協調完成整個游戲的開發。
策划是團隊的靈魂,也分執行策划、數據策划、表現策划、資源策划等,他們主要對游戲劇情、背景進行分析設計,對游戲中的各種規則進行描述及公式確定,對各種資料表格進行維護,對游戲中的特效、動作等進行收集並提出需求,進行 UI 設計及模型相關配置等。
程序是團隊的骨肉,也可細分為主程序、客戶端引擎、服務器引擎、3D 程序、AI 程序、腳本程序、數據庫程序等,他們主要負責確定程序的數據結構,確定策划方案的完成方法,將策划提出的各種需求用程序來實現,並為游戲開發過程提供良好的編輯工具。
美術是團隊的皮膚,可細分為人物原畫、人物建模、材質貼圖、人物動作、場景動畫等,他們主要負責整個游戲的視覺風格,以及人物模型動作等的設計等。
制作人主要進行游戲的外部統籌,市場調研、游戲開發進度、游戲版權、游戲宣傳、游戲發布及音樂音效素材的管理都是制作人工作的范疇。
下圖是某國外游戲研發團隊的組織架構圖,可以參考了解一下。
游戲開發的各個時期
對於游戲制作人來說,每個游戲從產生要消亡要經歷各個階段,下面是普遍適用的典型范例,但並不是每個游戲都要經歷所有的時期。
概念時期:就是整個游戲概念的確定,要做什么樣的游戲,主題線索是什么;
原型開發時期:這個時期要制作游戲的原型,用來體驗游戲的設計概念,從而糾正和改善不足的地方;
推廣時期:此時是游戲開發方向出版方推廣產品,向投資方展示游戲的設計概念、主要賣點、產品如何適應市場的需求、產品開發的可行性及具體的實現方案;
准備時期:這個時期主要處理游戲項目所涉及的商務及法律方面的事務,比如游戲專利、劇本版權、品牌商標等,從而組織開發團隊制作大致的方案,確定游戲開發所需要的工具及其它細節問題;
制作時期: 這個時期是游戲制作的主體時期,完成 3D 模型的制作,場景制作,過場動畫、畫面渲染及音效錄制等,游戲引擎和資源在此時期將被完全整合到一起。
質量保證時期:這個時期是游戲的 QA 或測試時期,主要用來保證游戲的各項功能是否完好,從而發現和修復各種 Bug 和錯誤;
母盤生成時期:這個時期是將游戲存盤交由平台廠商測試檢測的時期,每個平台廠商的測試標准不盡相同,這個時期中也需要不斷地測試改進游戲,修復 Bug,准備市場投放。
運營維護時期:這個時期是游戲發布后持續運營,在運營過程中發現問題,修復並更新升級的過程,這是一個長期的過程。
項目流程
一部游戲完整的開發過程,歸納起來可分為五步,如下圖所示。
市場調研可以分為三個小部分,
1)調研前進行 “頭腦風暴”,讓盡量多的人想出盡量多的創意點子並做好記錄,從而在市場調研過程中一一確認,不符合的排除;
2)撰寫策划草案,從而讓項目小組中的每一個成員對開發的項目有一個大體的認識,並且對目標明確;
3)對每一個草案都進行市場調研和分析,決定是否要開發這個游戲。市場調研主要從兩個方面入手,即目標客戶(玩家)和開發成本。
需求分析主要是撰寫需求分析書,這主要包括三個方面:
1)策划需求
策划的分工:包括劇本、數值、界面、執行等方面;
進度控制:要時刻注意時間和開發進度的控制,需要寫一個專門的項目進度匯總表。
2)美術需求
場景:包括游戲地圖、小場景等方面;
人物:包括玩家角色、重要 NPC(玩家隊友、提供任務的 NPC、主線劇情 NPC 等)、次要 NPC(路人、村民等)、怪物、BOSS 等;
動畫:動畫方面估計每個公司的需求都不盡相同。如果公司能力有限,動畫的制作可以考慮外包的方式;
道具:主要需要考慮是否采取紙娃娃系統;
全身像:人物的全身像方面;
靜畫 &CG:游戲中可能出現的靜畫和 CG 的需求,沒有則不需要寫;
人物頭像:人物的頭像制作需求,其中包括人物的表情方面,包括喜、怒、哀、樂和悲等多種表情;
界面:界面的需求,包括主界面、各項子界面、屏幕界面、開頭界面、END 界面、保存和載入界面等方面;
動態物件:包括游戲中可能出現的火把、光影等方面;
卷軸:又稱為滾動條。根據游戲的情況來定具體的需求;
招式圖:根據游戲開發的具體情況決定是否有此需求;
編輯器圖素:各種編輯器的圖素需求,例如關卡編輯器、地圖編輯器等方面;
粒子特效:3D 粒子特效的需求;
宣傳畫:包括游戲的宣傳畫、海報等方面的制作需求;
游戲包裝:游戲客戶端的封面包裝的制作;
說明書插圖:游戲說明書內附插圖的制作需求;
盤片圖鑒:游戲客戶端盤片上的圖鑒的制作需求;
官方網站:游戲官方網站的制作需求。
3)程序需求
地圖編輯器:包括編輯器的功能需求、各種數據的需求等;
粒子編輯器:關於粒子編輯器的需求;
內鑲小游戲:包括游戲內部各種小游戲的需求;
功能函數:包括游戲中可能會出現的各種程序功能、技術參數、數據、碰撞檢測、AI 等方面的需求;
系統需求:包括升級系統、道具系統、招式系統等系統導入器的需求。
項目開發步驟就是將整個游戲項目的資源通過引擎組織起來,對游戲的架構、功能及各邏輯模塊進行充分的整合。
這就要明確游戲開發的日程和進度安排,這也是充分利用各種開發工具讓開發效率大大提升的根本所在。
測試發布流程主要包括兩次大型正規的測試,即 Alpha 測試和 Beta 測試,其中前者意味着游戲的功能和流程完整,QA 會為游戲定制測試計划,測試人員將發現的 Bug 提交到數據庫,開發和設計人員對相應的錯誤進行修復。
后者意味着游戲中的各種資源已完成,產品已定型,后期只是修復 Bug。在這兩次測試修復后,得到待發布的 Release 版。
Gold Release 流程主要是開發游戲的各種補丁包、游戲的升級版本,以及官方的各種禮包和插件等。
游戲開發所用的工具
選擇正確的工具,可以為游戲項目節省開支,提高工作質量,降低項目風險,讓整個項目團隊成員集中注意力,從而把游戲做得好玩。
程序工具軟件
OpenGL ES——OpenGL 長期以來都是行業內 2D/3D 圖形高質表現的標准,它適用於各種設備。OpenGL ES 提供了在軟件應用程序和軟件圖像引擎間的底層 API 接口;
IncrediBuild——這個開發工具極大的提升了 VS/VC 的編譯和版本生成速度,有效降低增量構建所需要花費的時間,它主要是采用分布式編譯技術,在公司內網可以調用其它計算機的資源進行快速編譯。這是開發人員不可多得的一款好工具;
VS2013——微軟的 VS 集成開發環境多年來都是游戲制作的基本軟件,界面友好,功能齊全,可以極大的提升編碼速度和工作流;
Visual Assist X——這是一個插件,引入了強大的編輯功能,完全整合在 C++IDE 環境中,可以極大的提升開發人員的工作進程,不過有的 IDE 環境已經整合了這款插件,自己不用手動安裝了;
Direct X——它是微軟在過去建立的眾多行業標准之一,它是一種視窗技術,可以讓你在玩游戲或觀看視頻過程中圖像和音效有更高的品質,它包含多個配套組件,如 Direct3D、DirectSound、DirectPlay、DirectInput 等。
美術制作工具
美術制作工具要遠多於程序軟件,因此在游戲開發過程中,選擇美術軟件時要慎重考慮,以方便項目的順利進展。
Maya——它是行業內首選的 3D 動畫制作軟件之一,它功能十分強大,可用於高端電腦構圖,可以處理幾乎所有的 3D 制作工作。
比如模型構建、動畫制作、描繪渲染、電影特效等。但其缺點也在於其多邊形建模工具不太理想;
3D Studio Max——它是游戲開發中 3D 程序開發的主流引導者,其多邊形建模工具是所有 3D 程序中最棒的工具,用它進行開發效率也特別高;
PhotoShop CS——該軟件在游戲制作中被廣泛應用,是游戲制作的必備軟件,它在游戲開發的各個時期都會用到,包括前期制作到最終完成並市場推廣。美術人員用它來做出游戲環境和角色的設定,策划也用它來畫關卡規划和界面示意圖;
FaceGen Modeller——這是一款 3D 頭臉創作工具,它可以為游戲制作多個角色,從而快速做出人物臉部及頭部模型,形態非常逼真;
Zbrush——這款工具的特點在於使藝術模型呈現傳統藝術創作的過程,它可以輔助制作人員做出逼真的環境多邊模型,是地圖場景的絕佳工具;
Granny——可以作為游戲的一個批量輸出工具,它能夠完成所有藝術素材,包括模型、渲染和過場動畫的植入。它可以生成法線和紋理貼圖,更是一款引擎解釋工具。
游戲組件工具
游戲組件是指游戲的基本環境架構,比如描繪、場景和幾何構型的構建,也稱為中間件。
Havok——這是目前比較先進的物理引擎,它能讓游戲模擬現實,可以將游戲做出非常逼真的效果;
Gamebryo——這是一款能夠幫助開發人員快速制作原型版的工具,功能強大,運行穩定,是比較好的 3D 實時圖形引擎,其強大的渲染引擎和動作處理系統使其在商業上獲得巨大的成功;
Quazal——它屬於網絡建築中間件,主要用於制作大型多人在線游戲,其它類似的中間件有 Big World。
音效工具
音效作為游戲里的重要組成部分,選擇合適的工具也非常重要。作為游戲開發人員,關鍵要了解各種工具的使用限制,有很多的專業音效制作工具,包括 Nuendo、Vegas、Logic、ProTools、Peak、GameCODA、SoundForge 等。
場景構建工具:
Unreal Engine——這是一款比較完型的游戲開發引擎,它提供了比較全能的關卡編輯器、過場動畫系統、3D 圖形及 AI;
Source——這款引擎為人物角色動畫提供了新技術,先進的 AI、光影渲染、實景圖象都非常棒,引擎也包含了先進的物理引擎。
日常管理工具
游戲開發過程中所涉及的事務比較多,內容也比較繁雜,用好日常管理工具可以有效提升工作效率。下面是幾個用得比較多的工具:
MicroSoft Excel——利用它進行開發進度管理,開發人員可以非常輕松地跟蹤管理多個游戲開發部門的進度,開發人員必須要對其十分熟悉,才能用的得心應手;
日常工作增量進程報告 (daily delta reports)——一個項目成功的關鍵就是運用日常工作進程報告,在這個過程中,每一名團隊成員每天上交一份個人當日工作完成情況清單。這種進程報告的方式可以簡明扼要、方便有效地跟蹤項目進程;
源碼控制報告和版本控制報告——目前大部分項目研發用的版本控件工具是 SVN、Perforce、Git 等,在使用版本控制軟件前,一定要花一定的時間來熟悉軟件的功能和使用方法,這對於游戲研發人員非常關鍵,否則就會犯些不必要的錯誤,從而導致工作效率下降;
運用 WiKi——它是協作性文檔,是自由討論和創造性工具,是最佳管理設計性文檔的方法,當團隊無法建立一個內部局域網來管理各種記錄和設計進程或建立局域網工作量過大時,WiKi 就是你最佳的選擇。
好了,關於游戲開發的相關知識,我就介紹到這里。游戲開發涉及的知識太多太多,我在這里只是概括性的做了一個引入,希望對您有些許的幫助,文章內容不免有很多不足之處,還請各位大俠多多指教。