<li draggable='u7d0cd'><code lang='ok9bv6'></code></li>

    1. <td draggable='x0vrxil2'><ins dir='4xg1olvo'></ins></td>

          <th draggable='2cc5x89r'><dt id='go665jxp'></dt></th>
            <select dropzone='jmwo2b'><fieldset dropzone='ihrann'></fieldset></select>

              文章熱詞:網絡遊戲

              日期:2020-07-16 19:46 by Mr. Yang 1068 0 收藏
              我要分享

              摘要:網絡遊戲服務器開發框架淺談

              在遊戲開發中一般不會将所有的服務放到一個服務器上,都會采取針對項目的各個部分分布在各自獨立的服務器中。

              例如手遊服務框架:

              以上其實表達的是很是簡陋的,所以最近看了一份比較詳細的服務器架構文章,分享一下希望對大家有些用處。

              總共将分爲10個模塊:

              LoginGate:登陸網關服務器,将所有的LoginServer服務器地址暴露給最終用戶,每個LoginGate服務可以挂接n個LoginServer,将最終用戶的所有請求轉發給目标LoginServer。當最終用戶通過此服務完成登陸後,會與該服務斷開連接,斷開連接前,服務器會将數據上報給GameGate服務。

              LoginServer:登陸服務器,僅作于内部服務與LoginGate進行連接,所有的最終用戶請求由LoginGate過濾後,轉發過來進行處理。與LoginGate的所有通信都是明文,即未加密數據。

              GameGate:遊戲網關服務器,與LoginGate協作完成最終用戶的登陸過程,每一個服務會連接到唯一一個LoginGate服務上進行注冊,LoginGate會将以完成驗證登陸的用戶信息同步到所有已注冊成功的GameGate上,根據注冊不同的GameGate類型信息,LoginGate會發生不同的通過認證的最終用戶信息。GameGate挂接n個GameServer服務到自身,此服務将所有注冊到自身的GameServer信息發送給最終用戶,提供用戶選擇具體的區或線路進行遊戲(區和線路在不同的遊戲設定中有不同的定義),在這裏區的定義對應的是GameGate,每一個GameGate可以表示物理或邏輯上的多個遊戲分區,每個分區由至少一個GameServer組成;線路定義爲GameServer,每一個GameServer代表一條線路,線路之間互相不可見,但是可以通過IMServer進行一些擴展通信,例如公會、好友、聊天等服務可以設置透明通信或隐藏通信。透明通信由IMServer向目标GameServer轉發請求,并進行處理;隐藏通信僅在當前GameServer進行處理,不會做跨越性操作。

              GameServer:遊戲服務器,作爲内部服務與GameGate協作處理最終用戶的請求,這個服務主要處理遊戲邏輯,例如戰鬥。此服務啓動後,會根據配置文件的配置信息進行相應的服務注冊,該服務啓動成功後,會注冊注冊到GameGate和IMServer、AIServer服務器,它們分别提供最終用戶遊戲、交友、公會、聊天和智能體的移動、創建、銷毀等服務。作爲整個遊戲的核心處理服務器,會處理掉大部分的用戶交互服務請求,隻有在不能處理的情況下,才會請求其它服務協同處理。

              IMServer:IM通信服務器,全稱InstantMessaging(譯爲即時通訊),ICQ、MSN、QQ等聊天工具都屬于此範疇。此服務的作用是提供物理或邏輯不同位置的GameServer上的最終用戶通訊的一個媒介,用戶成功登陸GameServer時,會将自己的好友、公會信息注冊到此服務上,當需要跨GameServer服務時,共IMServer使用。此服務主要提供聊天、交友、交易、公會等社交類行爲服務,該服務可以直接或間接的與最終用戶進行通信,但最終用戶無法直接與該服務進行通信,比如請求操作,所有的用戶操作都由GameServer轉發,IMServer可以選擇性的直接反饋最終用戶或通過GameServer反饋。

              AIServer:人工智能服務器,全稱Artificial Intelligence(譯爲人工智能),例如現代服務性機器人(自動吸塵器、智能探測儀、智能防爆裝置等)都屬于人工智能範疇。這裏的人工智能主要體現在遊戲中的NPC、MONSTER等有行爲表現物體。GameServer啓動後會連接到此服務進行注冊,并獲取所需智能體的信息,以反饋給最終用戶,并最終顯示在用戶應用程序中。該服務主要控制智能體的移動、攻擊、創建、銷毀等行爲,另外包括在戰鬥中或非戰鬥狀态下的行爲,比如遊走在街道上的商品小販;在搜索到攻擊目标時,主動或召集附近的戰鬥單位一起攻擊用戶,都屬于該服務的工作内容。

              CenterServer:中心服務器,用于監控、更新已注冊到此服務的狀态,比如電信1區(傲視天地)服務器的運行狀态等。此服務主要是管理除自身以外的所有服務程序的運行狀态,以及時反饋給技術活運維人員。

              BillingServer:計費服務器,用于計算用戶在遊戲中的消耗、增值;比如XX在遊戲中購買了一個雙倍經驗卡,消耗10金币,或者用戶通過網站形式進行充值,都會通過該服務反饋給用戶最終結果。

              WebServices:網站服務,主要用于網站與遊戲之間的交互。比如XX用戶通過網站進行充值服務,充值成功後,通知計費服務以響應用戶操作;或通過網站進行遊戲激活、禮品領取等,都需要此服務與遊戲應用程序進行交互,以體現實時的變化。

              DBServer:用于全局數據維護,例如更新、查詢、插入、删除操作;這些數據包含用戶賬号、充值、代金卷、點卡、月卡以及遊戲中需要用到的角色數據。

              一般地,會把遊戲服務器的架構劃分如下三層:網絡接入層、遊戲邏輯層、數據存儲層,這樣劃分的主要目的是:

              将底層通信與業務邏輯處理解耦合;
              将業務邏輯處理與數據存儲解耦合;
              有利于運營部署與擴展;


              上一篇:陌生人社交賽道最大的秘密,就是它根本不存在

              下一篇:Java代碼混淆技術


              評論

              -->