此文并不是聚潤(rùn)堂所在公司當(dāng)前運(yùn)營(yíng)的網(wǎng)游游戲服務(wù)器架構(gòu),而是在看過(guò)了近十個(gè)商業(yè)網(wǎng)游的架構(gòu),在現(xiàn)階段心目中規(guī)劃的簡(jiǎn)單實(shí)用的網(wǎng)游服務(wù)器架構(gòu)。
網(wǎng)游的本質(zhì)是人和人之間關(guān)系,人越多,關(guān)系越多,越能把人留住。開服頭三天,人數(shù)是最多,為了保證一個(gè)月后,玩家等級(jí)達(dá)到一定的等級(jí),策劃的玩法都可以完全展開,單組服務(wù)器容納人數(shù)越多越好,如果是PVE結(jié)構(gòu)的游戲,最好能容納1萬(wàn)人左右。這樣在一個(gè)月后流失率50%的情況下,還有5000人左右在一組服務(wù)器內(nèi),已經(jīng)產(chǎn)生比較強(qiáng)大的社會(huì)結(jié)構(gòu),各種高級(jí)玩法才有進(jìn)行的基礎(chǔ)。如果是PVP洗用戶的游戲,容納人數(shù)越高越好。兩款較好的國(guó)戰(zhàn)游戲,《征途》達(dá)到了每組4萬(wàn)人,《成吉思汗》,推測(cè)至少也達(dá)到了兩萬(wàn)人。
采用完美常用的分線結(jié)構(gòu),運(yùn)營(yíng)到后期,就會(huì)出現(xiàn)每線人數(shù)較少,線內(nèi),線和線之間都互動(dòng)不起來(lái)。但如果不分線,在開服一剎那,用戶全部堆積在同一個(gè)新手村,基本玩不動(dòng)。《天龍八部》提出了較好的解決方案,建立多個(gè)平行的新手村地圖,一主多副,開服時(shí)盡可能多的同時(shí)容納新用戶的涌入,高等[來(lái)源:GameRes.com]級(jí)玩家從其它地圖回新手村只能到達(dá)主新手村。
下圖中每個(gè)方框表示一個(gè)獨(dú)立的進(jìn)程APP組件,每個(gè)服務(wù)進(jìn)程如果發(fā)生宕機(jī)會(huì)影響部分用戶,整體服務(wù)但不會(huì)全部中斷。在宕機(jī)進(jìn)程重啟后,又可以并入整體,全部服務(wù)得以繼續(xù)。
圖片附件
單實(shí)用的網(wǎng)游服務(wù)器架構(gòu).mht!http://upload.gameres.com/20108/sf_17193234_2297.png)
gls:game login server,游戲登錄服務(wù)器,某種程序上,其不是核心組件,gls調(diào)用外部的接口,進(jìn)行基本的用戶名密碼認(rèn)證。此外需要實(shí)現(xiàn)很多附屬的功能:登錄排隊(duì)(對(duì)開服非常有幫助),GM超級(jí)登錄通道(GM可以不排隊(duì)進(jìn)入游戲),封測(cè)期間激活用戶控制,限制用戶登錄,控制客戶端版本等。
db:實(shí)質(zhì)上是后臺(tái)sql的大內(nèi)存緩沖,隔離了數(shù)據(jù)庫(kù)操作,比較內(nèi)存中的數(shù)據(jù),只把改變的數(shù)據(jù)定時(shí)批量寫入sql。系統(tǒng)的算法,開發(fā)穩(wěn)定性都要求非常高。
center:所有組件都要在這里注冊(cè),在線玩家的session狀態(tài)都在這里集中存放,和各組件有心跳連接。所有對(duì)外的接口也全部通過(guò)這里。
角色入口:玩家登錄游戲后的選擇角色
gs:game server,最核心組件,同一地圖,所有游戲邏輯相關(guān)的功能,都在這里完成。
gate:建立和用戶的常鏈接,主要作sockt轉(zhuǎn)發(fā),屏蔽惡意包,對(duì)gs進(jìn)行保護(hù)。協(xié)議加密解密功能,一個(gè)gate共享多個(gè)gs,降低跳轉(zhuǎn)地圖連接不上的風(fēng)險(xiǎn)。
IM,關(guān)系,寄售:表示其它組件,負(fù)責(zé)對(duì)應(yīng)的跨地圖發(fā)生全局的游戲邏輯。
細(xì)節(jié)是魔鬼。此架構(gòu)簡(jiǎn)單、清晰、明了,和其它網(wǎng)游架構(gòu)相比其實(shí)沒有什么本質(zhì)的區(qū)別。團(tuán)隊(duì)的代碼開發(fā)能力,項(xiàng)目管理能力才是關(guān)鍵。一個(gè)gs承擔(dān)能力有限,在現(xiàn)在硬件環(huán)境下,一個(gè)有經(jīng)驗(yàn)的開發(fā)人員,一個(gè)gs應(yīng)該能達(dá)到1500人的上限。整個(gè)架構(gòu)的上限,瓶頸在center調(diào)度壓力,db的讀寫壓力。
引用一段深以為然的話做結(jié)束:
==========
http://blog.csdn.net/lfhfut/archive/2010/04/14/5483266.aspx
4。游戲開發(fā)并沒有什么高深的技術(shù)
首先需要明確的一點(diǎn),游戲項(xiàng)目是工程項(xiàng)目,不是科研項(xiàng)目。
工程項(xiàng)目的目的是在有限的人力跟財(cái)力之下實(shí)現(xiàn)出既定的需求,而這個(gè)需求從前面的分析可以知道,要求并不高,所以,需求的實(shí)現(xiàn)過(guò)程也就并沒有多么高深。
至少在我經(jīng)歷過(guò)的項(xiàng)目里,沒有什么驚天地泣鬼神似的英雄人物,沒有創(chuàng)造出多么偉大的算法,我們所做的,只是使用現(xiàn)在的技術(shù),現(xiàn)有的方法,拼合成一個(gè)軟件產(chǎn)品,一個(gè)融合了程序、美術(shù)、策劃勞動(dòng)力的軟件產(chǎn)品。
游戲開發(fā)的過(guò)程里,沒有,也不需要多厲害的技術(shù)高手,需要的僅僅只是有耐心,有責(zé)任心的普通技術(shù)人員。
===========
最后贊一句:Dia真是跨平臺(tái)畫流程圖的好軟件,聚潤(rùn)堂的日常使用中已經(jīng)完全替代了Visio。
參考:
白云哥的blog
http://blog.csdn.net/lfhfut/archive/2007/09.aspx
一種經(jīng)典的網(wǎng)絡(luò)游戲服務(wù)器架構(gòu)
http://www.shnenglu.com/johndragon/archive/2008/04/10/46768.html
傳奇3的架構(gòu)圖
http://bbs.gameres.com/showthread.asp?threadid=47752&page=10
185樓,187樓,分了兩部分。聚潤(rùn)堂把其合在一起方便查看
posted on 2011-01-20 11:25
李陽(yáng) 閱讀(1346)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
游戲開發(fā)