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