遊戲伺服器框架
遊戲伺服器框架
遊戲伺服器特徵:
長期運行,要求有一定的穩定性和性能。如果需要動態擴容來提高承載能力還要考慮到維護部署的方便性。如果是手游伺服器還要考慮到弱聯網,保證通信交互的順暢。
對於服務端需求主要有以下幾點:
1:玩家交互數據的廣播,同步
2:玩家數據存儲
3:做好驗證,防止外掛
4:交互的流暢性
為了滿足以上需求,我們得考慮伺服器的內存,cpu,帶寬等因素,來制定最優的伺服器開發和部署方案。
伺服器演化進程
1:早期伺服器架構圖
優點:
簡單,快速開發
缺點:
1.所有業務放在一起,系統負擔大大增加.一個bug可能導致整個伺服器崩潰,造成所有玩家掉線甚至丟失等嚴重後果。
2.開服一剎那,所有玩家全部堆積在同一個新手村.->>>>卡,客戶端卡(同屏人數過多渲染/廣播風暴) 伺服器卡(處理大量同場景消息/廣播風暴)
2: 第二代網遊伺服器(分區分服)
分服模型是遊戲伺服器中最典型,也是歷久最悠久的模型。在早期伺服器的承載量達到上限的時候,遊戲開發者就通過架設更多的伺服器來解決。這樣提供了很多個遊戲的「平行世界」,讓遊戲中的人人之間的比較,產生了更多的空間。 其特徵是遊戲伺服器是一個個單獨的世界。每個伺服器的帳號是獨立的,每台伺服器用戶的狀態都是不一樣的,一個服就是一個世界,大家各部牽扯。 後來遊戲玩家呼籲要跨服打架,於是出現了跨服戰,再加上隨著遊戲的運行,單個伺服器的遊戲活躍玩家越來越少,所以後期就有了伺服器的合併以及遷移,慢慢的以伺服器的開放、合併形成了一套成熟的運營手段。目前多數遊戲還採用分服的結構來架設伺服器,多數頁游還是採用這種模式。
3第三代網遊伺服器
網關部分分離成單端的gate伺服器,DB部分分離為DB伺服器,把網路功能單獨提取出來,讓用戶統一去連接一個網關伺服器,再有網關伺服器轉發數據到後端遊戲伺服器。而遊戲伺服器之間數據交換也統一連接到網管進行交換。所有有DB交互的,都連接到DB伺服器來代理處理。
上面版本的進化版
每個相同的模塊分布到一台伺服器處理,多組伺服器集群共同組成一個遊戲服務端。一般地,我們可以將一個組內的伺服器簡單地分成兩類:場景相關的(如:行走、戰鬥等)以及場景不相關的(如:公會聊天、不受區域限制的貿易等)。經常可以見到的一種方案是:gate伺服器、場景伺服器、非場景伺服器、聊天管理器、AI伺服器以及資料庫代理伺服器。
最後小結:
現在mmo伺服器框架基本延續了最後第三版本的演化版,但每個遊戲的具體需求會有不同,會做一些相應的調整,但大致思路是不會差別很大。
推薦閱讀:
※GMS2官方教程系列4/8——瓷片&鏡頭
※如何製作並發行你夢想的遊戲,避免在過程中狗帶!
※遊戲資源傳送門
※Dice (EA) 工作室遊戲開發技術概覽