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