网游云上网络优化方案
1. 游戲行業背景
1.1 行業概況
2019全球數字游戲營收1094億美元,其中中國市場328億美元。國內游戲?戶數6.5億;移動端
(60%)>PC端>主機。移動游戲占?逐年增?已成為絕對的主流。國內公司近3萬+,近200上市,Top10:騰訊53%,網易15%,三七,中手游,世紀華通,完美,搜狐暢游、游族、多益,紫龍互娛。
趨勢:業務上融合電競賽事/直播往社交化、多元化發展;技術上通過AR/VR/云游戲等來提升體驗。
政策管控:18年開始趨嚴,文化部管運營備案;廣電總局管版號,19年只有數百個版號。
1.2 業務類型
- 分類維度:終端、題材、美術風格、玩法、架構
- 終端:端游、?游、頁游、主機
- 玩法:MMORPG、ACG、MOBA、RTS、FPS、SLG
- 風格:武俠、魔幻、寫實、?次元
- 架構:分區分服、全區全服、全球同服
2. 游戲技術特征
2.1 核心技術邏輯
對于任何網絡游戲而?,同步是?定要解決的核心問題,甚至比游戲玩法邏輯本身還重要,什么是同步?同步是網絡游戲的基礎,通過網絡通訊來確保同屏玩家看到的游戲世界中每個游戲單位的位置、世界場景、狀態屬性都要保持?致。即:客戶端的表現要?致,同時客戶端與服務端的數據要?致。業界主要有兩種同步方式。
狀態同步
圖1
狀態同步玩法邏輯(比如戰?邏輯)寫在服務端,服務端作為邏輯控制層,客戶作為?個表現層,玩家對象數據在服務端生成并維護,客戶端中玩家對象的所有動作都會通知到服務端,服務端進?邏輯計算并將結果同步給所有客戶端,客戶端執行表現(播放動畫、特效并修改玩家對象的屬性顯示),這種方式下,客戶端的數據只能由服務端的指令來修改。
優點:安全性極高,防外掛能力強;斷線重連?較好實現,無非就是把整個場景和?物全部重新?成?遍發給中途掉線重連上來的客戶端去表現即可。
缺點:服務端壓力較大(所有動作的計算邏輯需要在服務端上做),網絡交互流量大,實現難度大,開發效率低。(通過分區風服來平行擴展);對于格?競技競速類,玩家動作、位移、?度的切換?常頻繁且快,也需要比較強的同步校驗,這時狀態同步無法解決。
典型游戲:狀態同步對網絡延遲的要求并不高(玩家表現層是不是?致沒有太大關系,只要結果?致就行),
?般RPG游戲在200-300ms的延遲也能玩下去,如MMORPG,魔獸世界、天龍八部等。
幀同步
圖2
幀同步也叫指令同步,玩法邏輯寫在客戶端了(比如戰斗邏輯),客戶端所有動作生成?條指令發給服務端(比如攻擊對象B),服務端收到指令后什么也不做,直接轉發給所有客戶端,客戶端收到指令后執?邏輯計算并執行表現層(播放動畫、特效并修改玩家對象的屬性數據)。
優點:服務端壓力小(僅僅起到?個轉發的作?),網絡流量小,能做到更好的及時反饋及細節反饋的?戶體
驗。
缺點:容易外掛,斷線重連會?較繁瑣,需要在客戶端重放每?條指令。
典型游戲:RTS、moba等即時對戰類游戲,對同步性的要求很高,?場戰斗的人數是確定的。王者榮耀、魔獸爭霸3、所有格斗類游戲等。實時性要求非常高,要求RTT小于50ms才能有流暢的體驗。
2.2 典型技術架構
分區分服:典型MMORPG
MMORPG 大型多人在線角色扮演,如魔獸世界,劍靈,天龍八部
圖3
特點:玩家之間強交互、實時性要求?、全?的游戲世界系統。
全區全服:典型MOBA
分少量幾個大區、分服對用戶不可見;或者全局對客戶不可見,應?層按?定算法進行分配。
ACG/SNS:休閑競技類
MOBA(Multiplayer online battle arena)匹配開房間類,大逃殺吃雞類(MOBA+FPS)王者榮耀、絕地求生;堡壘之夜。
特點:休閑競技類,匹配玩法,需要大量的可匹配玩家,匹配后生成戰斗服。
圖4
全球同服:典型SLG
為什么要做全球同服,是?個運營需求還是?個技術需求?不是所有的游戲類型都適合全球同服。
特點:游戲對象之間弱交互,實時性要求并不高,300ms內的同步延遲可接受;卡牌,SLG等,如COC:往往有3種架構:
數據?致性問題:?個玩家斷線,緩存數據還未落地,玩家重新登錄被判定到另?個區域登錄了,可能獲取不?致的角色數據;需要gamesvr判定上一次登錄在哪個區域,通過?個全局服務去通知對方gamesvr下線玩家并回寫數據,然后再預取數據。
圖5
2.3 技術痛點及訴求
游戲業務最主要就是要求服務端邏輯處理的實時性和高并發支撐能力,玩法邏輯和數據都在?個進程是最理想的方式,但往往因為性能容量的限制,?前主流都是邏輯模塊拆分、分布式部署,同時又要控制分布式調?的鏈路和次數來控制延遲的目的;對于運行時數據基本都是在內存進行處理(如共享內存),玩家角色的結算/存檔數據以固定周期持久化。
圖6
基于以上游戲技術特征分析,總體來說對游戲對技術層?的訴求優先級是:網絡>計算>安全>數據庫。
在網絡方面核心痛點其實就是如何解決網絡延遲、丟包、抖動對玩家卡頓、掉線等體驗的破壞,隨著服務端技術更新和同屏玩家數量的增加,對游戲服務層的并發訪問、穩定性、?絡延遲也有了越來越高的要求。
3. 游戲網絡優化
游戲體驗的優化是?個系統工程,需要多種優化手段聯合作用,業界很多的精力是放在邏輯層的處理上,純網絡層面的優化只能說是一方面,以下基于云環境的網絡優化方案進行闡述。
3.1 游戲單服網絡能力
對于狀態同步的MMORPG類游戲,每?次網絡同步的數據是整個游戲世界場景的所有單位的屬性、狀態、行為判定等數據,同步量大,網絡吞吐要求高,以?個單服設計容量1萬在線的MMORPG游戲來說,通常?次網絡同步的包大小在512byte左右,單?戶評估帶寬30kbps,則出網卡吞吐、包量能力需要的值:
以上是出公網的網卡的流量,GameServer還存在內網通信的需求,因此在這種場景?般建議是選擇能?持百萬級別pps的實例,如:
ecs.c6.4xlarge 依托神?架構,將網絡虛擬化功能卸載到專用硬件,提供了更?的網絡io承載能力和穩定性。
同時建議將網絡中斷分散給不同的vCPU處理,提升網絡PPS和帶寬性能。即開啟網卡多隊列功能:
圖7
圖8
3.2 玩家接?網絡加速
這塊主要是玩家到游戲服的公網鏈路上進行加速。
基于加速器優化玩家接入
加速器與游戲是天然關聯的兩個行業,主要解決玩家與游戲服因物理距離遙遠而出現的延遲、丟包等情況對游戲流暢度的影響,這在國內玩家訪問海外游戲服的場景中很常見(比如某些游戲國內禁止發行而國內玩家只能登陸海外服來體驗),玩家可以購買各類加速器產品,或者使?游戲客戶端?集成的加速產品來實現鏈路優化,在云上要構建這?層加速其實已經?常簡單,甚?直接利?云的架構輕松實現?個加速器產品。
圖9
具體流量路徑
- 在上海VPC和?本VPC建?高速通道實現兩地ECS內網互通。
- 在兩端地域ECS之間建立隧道協議,GRE或VXLAN,分別綁定本地地域EIP。
- 國內玩家通過公?VPN連接到上海上車點ECS,經過隧道接?路由到日本下車點ECS。
- ?本ECS接收到去往游戲服的數據包從日本本地EIP出去,同時回程路由到隧道接口發給上海ECS。
基于DCDN動態加速頁游
對于頁游、H5小游戲等產品由于其?http協議,輕客戶端模式動態邏輯中也包含有?量靜態資源,這類游戲往往是全區全服單地域覆蓋全國,網絡上的主要痛點是:玩家跨運營商跨地域訪問游戲服,網絡傳輸擁塞的時延、丟包等情況嚴重影響用戶體驗,同時客戶自行去做動靜分離、動態加速等方案需要大量的時間、成本投入。
圖10
全站加速(DCDN)通過動靜分離、邊緣緩存、智能路由、壓縮傳輸等技術,解決跨運營商、網絡不穩
定、單線源站、突發流量、網絡擁塞等諸多因素導致的響應慢、丟包、服務不穩定的問題,提升動靜態混合、純動態站點或App的加速性能和訪問體驗;這種比較適合如三七頁游、抖?小游戲等,其實對于?些重度游戲的全局?戰斗模塊、周邊系統等也能接入DCDN來進行全局加速。
基于CEN加速特定地區玩家
國內地域?闊,游戲服雖是盡量做本地覆蓋,但出于成本因素對于有些偏遠地區還是覆蓋不全,這部分玩家涉及跨運營商跨地域的遠程訪問游戲服,游戲掉線、卡頓時有發?,?如對于新疆、?藏、寧夏、?海等地域,游戲服在部署上基本不會做本地覆蓋,如果拉近游戲服與玩家的距離??前基于阿?云有種可行的方案是:SLB+CEN+游戲服(跨地域)。
圖11
該?案對于沒有POP點、anycast?持的地域比較合適,相當于SLB掛載跨地域的ECS(白名單開放),拉近游戲服到用戶側距離。
3.3 全球同服?絡構建
這塊主要是基于專線的加速方案,在全球同服游戲類似中,數據傳輸需要跨運營商、跨多國通信,這對?絡質量提出更高的要求,當然?前能實現真正意義上的全球同服游戲其實沒有,主要還是對即時性體驗要求不高的SLG、卡牌等類型,游戲對象之間弱交互,實時性要求并不高。
基于GA全球加速
GA利?阿?云全球傳輸網絡,實現全球用戶就近接入和跨地域部署,減少延遲、抖動、丟包等網絡問題的影響,按區域覆蓋玩家。
圖12
GA為每個接?加速區域的地域分配?個加速IP,客戶端流量通過加速IP就近從接?點進?阿?云加速網絡。進?阿?云加速網絡后,全球加速可以智能選擇路由并?動完成網絡調度,然后把客戶端的網絡訪問請求送達至最佳終端節點,避開公網的擁堵,達到減少時延的效果。
基于Anycast EIP 加速
同樣全球同服的場景,Anycast 主要解決多國多地域的跨網通信鏈路的質量問題,通過單個ip覆蓋全球的加速能力,這大大簡化了游戲全局模塊的部署問題。
圖13
阿?云?前在全球各地域部署anycast pop點,覆蓋地域/國家通過這些點來就近接?,部署在HK的游戲
服只需要?個ip,通過Anycast路由協議在多個Anycast POP點發布該ip,pop點通過專線連接部署在阿?云VPC的游戲服務。
我們是阿里云智能全球技術服務-SRE團隊,我們致力成為一個以技術為基礎、面向服務、保障業務系統高可用的工程師團隊;提供專業、體系化的SRE服務,幫助廣大客戶更好地使用云、基于云構建更加穩定可靠的業務系統,提升業務穩定性。我們期望能夠分享更多幫助企業客戶上云、用好云,讓客戶云上業務運行更加穩定可靠的技術,您可用釘釘掃描下方二維碼,加入阿里云SRE技術學院釘釘圈子,和更多云上人交流關于云平臺的那些事。
原文鏈接:https://developer.aliyun.com/article/783629?
版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的网游云上网络优化方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云数据库RDS PG联合电商SaaS
- 下一篇: Service Mesh 为什么从“趋势