原文地址: http://job.17173.com/content/2008-12-15/20081215172107441,1.shtml
游戲開發流程和部分分工
流程:調研 -- 開發 -- 測試 -- 運營(我們公司的情況分析)
公司類型介紹:游戲開發公司、游戲運營公司、游戲開發運營公司
開發部門構成:
策劃(靈魂)8-10人
主策劃、執行策劃、腳本策劃、文案策劃、關卡策劃、數值策劃、界面策劃
程序(骨肉)8-10人
主程、客戶端引擎、服務器端引擎、邏輯程序員、3D程序、AI程序、物理程序、腳本程序、數據庫程序、編輯器|工具程序員
美術(皮膚)20-30人
人物原畫、人物建模美術、材質貼圖美術、人物動作美術、場景原畫、場景建模美術、UI界面,圖標平面美術、動畫CG術、特效美術、音樂音效
其他管理部門
1.開發組長(部門協調);2.項目經理(項目整體把控)
通常開發流程是:
項目經理(產品經理):立項。(前期預估項目成本,風險,市場情況。中期重新評估)
主策劃:游戲原型策劃。(消費群體,能力,產品定位,游戲風格。)
執行策劃:寫初部策劃案。(將主策的想法具體的細節實現,提前3-4月)
美術,程序:實現(基本是同時動工)
1.主要構架,測試主邏輯,測試引擎。
2.主功能,(圖形,腳本,AI,數據庫,網絡的測試)
3.主邏輯模塊,(戰斗,聊天,換線,任務)
4. 附邏輯模塊,(好友,隊伍,小地圖等等)
5.游戲整和調試,(關卡串聯,置入音效,策劃數值調整)
宣傳。(游戲官網以及周邊的游戲功略說明書,游戲截圖宣傳等)
技術測試:白盒內部測試。代碼效率,可擴展性,DEBUG功能移除,封包,加密測試。
a測試:黑盒測試部測試。游戲內部測試(功能性測試)
b測試:黑盒BEBUG測試。主要進行各種不合常理的行為操作的測試,和GM功能測試。
內測:重點測試服務器壓力。
公測:獲取用戶群的信息表,已確定游戲的一些商業運營方式
當代游戲的特點以及技術概述
整體行業近況:
1、運營成本增加,盈利模式趨同。
由于國內游戲開發環境已經逐步完善,游戲與游戲之間,游戲公司與游戲公司之間的競爭加劇,游戲的商業化運營更加正式,做為游戲的重要的宣傳手段,運營的投入也大幅增加,于是便分化出了游戲運營商和開發商。根據Ireasch的2007年報告來說,中國67%游戲已經是PayToPlay轉化為FreeToPlay,典型的有盛大的招牌《傳奇》,都轉為免費游戲+收費道具。
2、產品老化嚴重,用戶忠誠度很低。
用戶:蝗蟲族。2/3以上玩家兼玩2種或2種以上的不同類型游戲。平均蜜月期不足1年半,國外玩家平均蜜月期為3年3月。新的網游很多,但是能夠沖破 WOW,傳奇,西游 三大霸主的地位難度還是很大。很多游戲是熱門抄作期一過,就完了。
3、游戲產品類型五分天下,玩家群分化嚴重。
回合制MMORPG:大話,夢幻,問道,水滸Q傳
2D ARPG:傳奇,征途
3D ARPG:魔獸。熱血江湖,RF,天堂2,天龍八部
休閑游戲:跑跑卡丁車,勁舞團,街頭籃球
棋牌類:QQ游戲,聯眾
4、跨行業合作性強。
可口可樂,康師傅,百事可樂均進入游戲合作推廣,游戲作為一種宣傳媒體,這種宣傳模式越來越被認可)
5、整體來說:中國網絡游戲行業,面臨機會和挑戰并存。
一部分廠商憑借穩固高質量的游戲產品和務實的運營開始嶄露頭角,一部分則因為產品運營原因,關門大吉。網游市場多極化發展,用戶擁有了廣泛的選擇,對產品質量和用戶氛圍也越加注重,游戲公司必須和市場一起成熟起來,才能適應今后的發展。
游戲程序發展方向:
1.代碼重用性。出現引擎。
2.OO思想和效率的兼顧。C++語言的流行。
3.游戲可擴展性,靈活性。腳本語言的流行。
4.硬件的發展。3D將成為主流,虛擬現實VR,Web3D也大肆發展。
5.網絡的發展。網絡游戲的適用范圍越來越大。分布式服務器的流行。(EVE)
6.AI,物理在游戲中占的比例越來越大。
1:引擎的作用。
將不同游戲的共同功能抽象出來,做為核心底層的封裝的代碼就是引擎。
最底層大致包括:計時器,內存管理,錯誤處理,輸入設備處理,網絡通訊,IO輸入,基本的數據結構,取隨機數大小值等基本數學方法函數,不同格式的文件數據類型讀取。
稍高一層大致包括:音效管理,網絡通訊管理,UI管理,對象管理,尋路,場景管理,渲染器管理,腳本管理,物理模擬庫,AI狀態機,數據庫管理,圖形管線,角色對象管理系統等。
若是3D游戲的話,在圖形圖象部分還要多出一些部分:Shader,粒子系統,渲染對象管理,2D精靈系統,地形,BSP樹揀選,八叉樹揀選,包圍盒,攝象機,動態模糊,動態光照,碰撞檢測,鼠標揀選,HDR等。
2:C++語言的發展。
相對C來說,OO思想更符合現在大型項目的開發思路,在效率上C++較之JAVA,C#等語言效率很高,可方便的嵌入匯編優化。
匯編:快,超快又小巧。要是天才匯編程序員,比其他語言程序員做出的程序強大的多的多。可以學習起來極難,編寫一個程序,需要極多的代碼。完全沒有任何移植性可言。我們不可能用它來做一個游戲,但是,局部可以匯編優化。MMX指令集。
VB:容易上手和學習,但是沒有由于照抄BASIC,絲毫沒有結構感,OO表現難度過大。即時編輯和良好的插件還是很不錯。但是應用系統太大,運行時間過長,運行時還需要一個1.4M左右的運行庫,另外,支持且僅支持Windows,他是完全基于WindowsAPI開發。
JAVA:強大。J2EE的企業級開發庫支持的細節是非常強大的。但是做中小型項目又實在沒有必要,J2SE的功能又凌雜的有些可憐。純粹且完全的OO語言,使得非面向對象的思想完全活不下去。正因為JAVA的強大細節把握性,導致JAVA代碼通常很冗長,沒有做到輕便化。而且!最重要的是,不支持操作符重載,實在非常煩人。所謂的平臺無關性也是一種說法而已,它本身就需要一個JVM運行環境,環境本身就是一個平臺。JAVA的設計目的是安全性,可移植性,于是對內存地址訪問被CUT了,所以在性能上容易有一些損失。總之一句話,它很象一個對C++的封裝。
C#類似JAVA不重復多說。
3:腳本語言。
工作流程:腳本 -- 行處理器(詞法分析,語法分析) -- 字節碼流 – 解釋器
特點:容易學習,代碼可維護性強。
Lua,Pyth,Ruby,Perl各有優勢,但Lua以輕量化,與C結合緊密出眾,獲得親睞。
Ruby:慢, Debug難度較大,沒有成熟的作品(RM特殊),在日本流行度較高。
Lua:輕量化,與C結合緊密。但教程極少,接口設計不夠巧妙,也沒有對大型應用設計出良好的支持。但游戲開發已經足夠了。WOW,大話夢幻等。
Python: 老的腳本語言了。強大,有極高的閱讀性,很好的擴展性,開發人員可以用C++等語言對Python本身進行擴展。當我們進行比較大型項目,將其拆分為大量單元,交由多數人進行開發時,閱讀性,高效性,可維護性是腳本語言比較重視的部分,Python在這里做的很好,所以,Google,微軟,Nokia都用Python.
4:3D成為主流。
3D的畫面表現力比2D強,仿真性強,給人帶來的代入感好,隨著硬件的更新,3D是一種不可抗拒的趨勢。
5:分布式服務器結構。
單服務器結構,開發效率快,邏輯簡單,但是容量小,隨著網絡的發展,已經被拋棄。1500-2000
多服務器結構,可分為按地圖劃分服務器和按功能劃分服務器。
按地圖劃分為服務器,大致會分為 世界服務器,地圖服務器,網關服務器。當負責分配的世界服務器出現鼓掌,將使所有的地圖服務器失效,因為數據是依照地圖獨立存儲的,當某一地圖服務器掛掉,將可能失去大量的數據。
按功能劃分服務器是符合OO思想的一種設計,將一些密集型的功能分離開來,單獨由一個服務器進行控制,這樣的話,當一個服務器出現問題時,不會影響其他模塊的運行,而且擴充性也比較優秀簡單。
分布式服務器構架:支持遠程對象調用,動態的分布節點吞吐,保證服務器受壓平衡。但是在開發難度上較大。
6:AI,物理模擬在國內網絡游戲開發中并沒有過多的使用該功能。帶過。
補充:該系列文檔為某志為公司新人準備的培訓底稿,因為是計劃自己查看,以便口頭講述,所以寫的并不充分,僅做為提綱提示自己使用,若有不清或錯誤,歡迎指出。
新人程序員應當熟悉的資料
我們來談一下,需要大致了解的東西。
【3D Graphics API 】
DirectX 9.0 SDK - Direct3D
OpenGL 2.0
【2D API】
DirectX 9.0 SDK - DirectMedia
Win32 GDI
【Input Device】
DirectX 9.0 SDK - DirectInput
【Audio】
DirectX 9.0 SDK - DirectSound / Direct3DSound / DirectMedia
OpenAL
【OS API】
Win32 SDK
MFC
【Network】
DirectX 9.0 SDK - DirectPlay
Socket library
注意,Lib庫和引擎和API庫是不同的。
Lib重點是拿來用它的接口的,大部分內部結構和命名比較糟糕,不推薦學習,有興趣的話可以學習其中的算法。
API庫重點是拿來用它的接口函數,對于內部結構,相當多的都被封裝了,結構性和命名更加糟糕,例如,”_”是底層庫專用,”__”是編譯器專用。建議熟悉API的大致功能即可,對于其中的參數和API名稱,沒必要死記。
引擎是最值得研究的,它的重點是設計思想,對于項目開發來說,需要把作者的設計思路,和接口設計完全弄清楚才算合格。