首頁 | 財經 | 資源 | 理財 | 考研 | 職場 | 論文 | 資格 | 股票學院 |

股票學院: 股票入門 - 股票知識 - 股票術語 - 炒股技巧 - 選股技巧 - 跟莊技巧 - 炒股經驗 - 投資策略 - K線圖 - 均線 - 分時圖 - 成交量 - 波浪理論 - 基本面分析 - 心理分析 - 漲停研究 - 趨勢線 - 江恩理論 - MACD - KDJ - 技術指標 - 財經股票書籍在線閱讀 - 金融類書籍下載 - 銀行學院 - 保險學院 - 外匯學院 - 債券學院 - 股票學院 - 基金學院 - 港股學院 - 黃金學院

當前位置:天下金融網 > 金融云 > 文章正文

游戲服務器架構演進

時間:2019-09-16 17:43:32來源:開源社區作者:佚名

游戲服務器架構演進

一、游戲服務器特征

游戲服務器,是一個會長期運行程序,并且它還要服務于多個不定時,不定點的網絡請求。所以這類服務的特點是要特別關注穩定性和性能。這類程序如果需要多個協作來提高承載能力,則還要關注部署和擴容的便利性;同時,還需要考慮如何實現某種程度容災需求。由于多進程協同工作,也帶來了開發的復雜度,這也是需要關注的問題。

功能約束,是架構設計決定性因素。基于游戲業務的功能特征,對服務器端系統來說,有以下幾個特殊的需求:

  • 游戲和玩家的數據存儲落地
  • 對玩家交互數據進行廣播和同步
  • 重要邏輯要在服務器上運算,做好驗證,防止外掛。

針對以上的需求特征,在服務器端,我們往往會關注對電腦內存和CPU的使用,以求在特定業務代碼下,能盡量滿足高承載低響應延遲的需求。最基本的做法就是“空間換時間”,用各種緩存的方式來以求得CPU和內存空間上的平衡。另外還有一個約束:帶寬。網絡帶寬直接限制了服務器的處理能力,所以游戲服務器架構也必定要考慮這個因素。

二、游戲服務器架構要素

對于游戲服務端架構,最重要的三個部分就是,如何使用CPU、內存、網卡的設計:

內存架構:主要決定服務器如何使用內存,以最大化利用服務器端內存來提高承載量,降低服務延遲。

邏輯架構:設計如何使用進程、線程、協程這些對于CPU調度的方案。選擇同步、異步等不同的編程模型,以提高服務器的穩定性和承載量。可以分區分服,也可以采用世界服的方式,將相同功能模塊劃分到不同的服務器來處理。

通信模式:決定使用何種方式通訊。基于游戲類型不同采用不同的通信模式,比如http,tcp,udp等。

三、服務器演化進程

1、卡牌等休閑游戲弱交互游戲

服務器基于游戲類型不同,所采用的架構也有所不同,我們先講一下簡單的模型,采用http通信模式架構的服務器:

游戲服務器架構演進

這種服務器架構和我們常用的web服務器架構差不多,也是采用nginx負載集群支持服務器的水平擴展,memcache做緩存。唯一不同的地點不同的在于通信層需要對協議再加工和加密,一般每個公司都有自己的一套基于http的協議層框架,很少采用開源框架。

2、長鏈接游戲服務器

長連接游戲和弱聯網游戲不同的地方在于,長連接中,玩家是有狀態的,服務器可以時時和client交互,數據的傳送,不像弱聯網一般每次都需要重新創建一個連接,消息傳送的頻率以及速度上都快于弱聯網游戲。長鏈接網游的架構經過幾代的迭代,類型也變得日益豐富,以下為每一代服務器的特點以及架構模式。

1)、第一代網游服務器(單線程無阻塞)

最早的游戲服務器是1978年,英國著名的財經學校University of Essex的學生 Roy Trubshaw編寫了世界上第一個MUD程序,叫做《MUD1》。

MUD1 是一款純文字的世界,沒有任何圖片,但是不同計算機前的玩家可以在游戲里共同冒險、交流。與以往具有網絡聯機功能的游戲相比, MUD1是第一款真正意義上的實時多人交互的網絡游戲,它最大的特色是能夠保證整個虛擬世界和玩家角色的持續發展——無論是玩家退出后重新登錄還是服務器重啟,游戲中的場景、寶箱、怪物和謎題仍保持不變,玩家的角色也依然是上次的狀態。

游戲服務器架構演進

MUD中文版

MUDOS使用單線程無阻塞套接字來服務所有玩家,所有玩家的請求都發到同一個線程去處理,主線程每隔1秒鐘更新一次所有對象(網絡收發,對象狀態,刷新地圖,刷新NPC)。用戶使用 Telnet之類的客戶端用 Tcp協議連接到 MUDOS上,使用純文字進行游戲,每條指令用回車進行分割。這樣的系統在當時每臺服務器承載個4000人同時游戲。從1991年的 MUDOS發布后,全球各地都在為他改進,擴充,推出新版本。

MUDOS中游戲內容通過 LPC腳本進行定制,邏輯處理采用單線程tick輪詢,這也是第一款服務端架構模型,后來被應用到不同游戲上。后續很多游戲都是跟《UO》一樣,直接在 MUDOS上進行二次開發,直到 如今,一些回合制游戲,以及對運算量小的游戲,依然采用這種服務器架構。

第一代服務器架構圖:

游戲服務器架構演進

線程模型

游戲服務器架構演進

2) 、第二代網游服務器(分區分服)

2000年左右,隨著圖形界面的出現,游戲更多的采用圖形界面與用戶交互。此時隨著在線人數的增加和游戲數據的增加,服務器變得不抗重負。于是就有了分服模型。分服模型結構如下:

游戲服務器架構演進

分服模型是游戲服務器中最典型,也是歷久最悠久的模型。在早期服務器的承載量達到上限的時候,游戲開發者就通過架設更多的服務器來解決。這樣提供了很多個游戲的“平行世界”,讓游戲中的人人之間的比較,產生了更多的空間。其特征是游戲服務器是一個個單獨的世界。每個服務器的帳號是獨立的,每臺服務器用戶的狀態都是不一樣的,一個服就是一個世界,大家各不牽扯。

相關閱讀

焦點圖文

關于我們 | 廣告服務 | 商務合作 | 網站地圖

版權所有 Copyright(C)2018-2020 蘇州騏云躍網絡科技有限公司,未經授權禁止復制或建立鏡像,否則將依法追究法律責任!
聲明:我們不做任何形式的代客理財及投資指導,凡是以天下金融網名義做股票推薦的行為均屬違法!
廣告商的言論與行為均與天下金融網無關!股市有風險,投資需謹慎。
蘇公網安備 32050502000166號
蘇ICP備14018528號
商務合作:聯系我們

天下金融網版權所有
刺激战场ag都有谁