四虎影视库国产精品一区-四虎影视库-四虎影视久久久免费-四虎影视久久久-四虎影视久久-四虎影视精品永久免费网站

幫助中心
香港服務器租用幫助
香港游戲服務器架構通識
2022-11-22 14:50:18
ModelId=2&Id=3706">

前言

這里,我們將從香港游戲服務器發展的簡單歷程出發,鳥瞰一下目前大多數的香港游戲服務器架構。

這里盡可能的避免陷入細節的技術問題,而是從技術進化的結果狀態,反推原始問題是什么。希望能通過這個過程,解釋清楚香港游戲服務器是在解決什么問題,痛點到底在哪里。

一、早期網游服務器。

蠻荒時期的游戲服務器框架我們一筆帶過,那時的游戲服務器和一個小Web服務沒有區別。

蠻荒時代的服務器只負責存儲玩家賬號、數據、轉發場景內其他玩家的行為。很多移動、使用技能等關鍵邏輯在服務器上根本沒有。隨意就能用變速齒輪改變游戲速度。

從《傳奇》的時代開始,游戲服務器就不再是簡單的上傳存檔、下載存檔、訪問頁面而已。游戲服務器內部出現了游戲邏輯,既能用于同步每個玩家看到的世界,又能讓邏輯與客戶端分離,避免早期的網絡游戲那種毫無防范的邏輯體系(對外掛防御能力為0)。


香港游戲服務器架構

如圖,客戶端通過某種形式驗證登陸以后,就和服務器通過TCP直接相連了。這種服務器的承載能力不高,但那時在游戲邏輯上也務求簡化,把負載減少到極致。

· 例如:1、玩家看不到怪物的血量,或者只能看到正在打的怪物的血量。2、地圖有格子的概念,每個格子只能有一個單位,極大限制了同屏人數。

由于邏輯盡量簡化,雖然這時的服務器邏輯服務都是單進程單線程的,但是也足夠表現交互的感受。

這種架構奇怪的地方是處理網絡連接數據傳輸的壓力和邏輯處理的壓力在同一個服務器上(存儲模塊可能也在同一個進程),就算邏輯處理壓力為0,承載人數也高不到哪去。

雖然這時的游戲服務器設計很簡陋,但是網游第一次給了玩家真實世界的感受。單服人數不足的問題可以靠開多組服務器實現,所以曾經出現了幾百上千組服務器的輝煌時代。

二、早期游戲服務器的改進版本

當開發者們有了初步經驗以后,新作品的開發,自然而然的過渡到了如下的形式:

游戲邏輯服務依然是在一臺服務器上,單進程(邏輯處理本身肯定是在一個線程中,可以有子線程負責內網通信)。但是我們自然的想到,存儲負載和網絡連接負載可以從邏輯服上拆出來。

連接服務器負責把客戶端和服務器之間的消息轉化為服務器之間的消息,可以順便做一些加解密的工作。

這一點小改動極大提高了單服連接人數的上限。但是玩家要求提高了,空出來的性能很快被豐富的游戲系統吃掉了。

由于連接服務器本身沒有時序性,很容易做分布式的(其實大部分游戲還是只用一個連接服),存儲服務不要求高實時性,高峰期存盤間隔可以稍長一些,不會對游戲服造成影響。

三、成熟形態的服務器框架

邏輯服務器的負載均攤方法一:按照功能劃分多個服務器進程



邏輯服務器的負載均攤方法二:按照場景劃分多個服務器進程

對游戲服務器歷史有了基本了解后,成熟形態的游戲服務器很容易理解。簡單來說,就是把邏輯服務器單個進程的壓力分攤到多個服務器。

難點在邏輯的設計上,要像做手術一樣把本來是一體的功能切開,并抽象出若干個API來保持聯系(服務器之間是TCP連接)。

在分解時,要找聯系相對最薄弱的環節入手,比如場景和場景之間分開、單獨抽出聊天服務、組隊服務、好友服務。

無論如何分解,最終結果只能是有限個服務。而且分解的越細,開發難度就越大。因為跨服務器邏輯是把簡單的同步邏輯變成了異步Callback邏輯,而且容易出現時序問題等不易測試的問題。

單個場景服務幾乎是無法分解的。分解單個場景難度巨大以至于出現了BigWorld引擎來專門的解決場景分割問題,后面會談到。


這種成熟形態的游戲服務器已經能滿足現實中99%的頻繁交互類網游需求,是大型MMO端游、頁游的主流形式。

當然有實力的公司在這個基礎上會做很多改動,實現動態開辟副本、相位技術等等,但是萬變不離其宗,其本質和上圖沒有什么區別。


USA-IDC為您提供免備案服務器 0元試用
立即聯系在線客服,即可申請免費產品試用服務
立即申請