一款成功的全球服游戲該如何進(jìn)行架構(gòu)選型與設(shè)計

全球服游戲如今正在成為出海游戲的主要考慮模式诞丽,跨國對戰(zhàn)鲸拥、全球通服打破國界的限制,將不同地區(qū)不同語言的玩家放在一起合作/競技僧免,成功吸引了大量玩家的關(guān)注刑赶,并逐漸成為主流的游戲玩法。


游戲廠商們也在嘗試采用一地部署多地覆蓋懂衩、全球逐步宣發(fā)的模式進(jìn)行第一款全球服游戲的發(fā)行試點及成本控制撞叨。文章主要針對全球服和出海游戲的特性優(yōu)勢、架構(gòu)布局浊洞、網(wǎng)絡(luò)規(guī)劃牵敷、實用技術(shù)等幾個方面進(jìn)行探討。


本文主要觀點:

(1) 微服務(wù)是主流沛申,模塊化架構(gòu)易于擴(kuò)容以及維護(hù),微服務(wù)+自動化的業(yè)務(wù)架構(gòu)對于全球服游戲來說幾乎是必然的選擇姐军;

(2) 架構(gòu)高度自動化铁材,自動注冊/剔除保證可用性;

(3) 幀同步+UDP特性奕锌,高性能傳輸和帶寬成本控制(對戰(zhàn)類游戲要求較為突出)著觉;

(4) 核心架構(gòu)集中部署為主,全球網(wǎng)絡(luò)優(yōu)化覆蓋玩家惊暴;

(5) 游戲代碼的關(guān)鍵幀及預(yù)判設(shè)計關(guān)系到游戲?qū)W(wǎng)絡(luò)延遲的兼容性饼丘。


為什么要微服務(wù)和自動化?

原因一:全球服游戲多為邏輯服或無區(qū)服概念的通服辽话、對戰(zhàn)類游戲肄鸽。為了保證游戲性和全球化的特點卫病,保證匹配和游戲世界玩家的多元化,傳統(tǒng)意義上的區(qū)服架構(gòu)和跨服對戰(zhàn)模式并不適配典徘,以皇室戰(zhàn)爭蟀苛、列王紛爭等為例的一眾匹配對戰(zhàn)游戲便是其中的代表。


原因二:全球服游戲要求承載全球玩家的涌入逮诲,及時發(fā)現(xiàn)負(fù)載瓶頸并擴(kuò)容是一個必然的要求帜平,模塊化拆分架構(gòu)之后可以靈活的針對不同活動、玩家特性增加對應(yīng)的業(yè)務(wù)服務(wù)器梅鹦,并通過自動注冊機(jī)制實現(xiàn)快速擴(kuò)容裆甩。


整個架構(gòu)采用注冊管理+自動化之后,可以通過研發(fā)腳本或者通行的管理工具齐唆,甚至Docker的K8S來實現(xiàn)業(yè)務(wù)宕機(jī)的自動恢復(fù)和容災(zāi)嗤栓、負(fù)載突發(fā)的自動擴(kuò)容,這可以極大的降低運維成本蝶念,并對于業(yè)務(wù)健壯性進(jìn)行極大的提升抛腕。


對于游戲服務(wù)的自動注冊機(jī)制,在項目早期媒殉,受限于研發(fā)實力或者工期担敌,開發(fā)者一般會選擇ZooKeeper進(jìn)行管理維護(hù),但是在實際運行中由于ZooKeeper自身較重的功能實現(xiàn)廷蓉、二次開發(fā)及bug處理的復(fù)雜度全封,很多用戶會將其替換為自主研發(fā)實現(xiàn)的輕量級RPC自動注冊服務(wù)。實際情況要具體視研發(fā)能力而定桃犬,此外GRPC也有不少的支持者刹悴。


幀同步技術(shù)和UDP傳輸協(xié)議的使用

關(guān)于幀同步主要針對對戰(zhàn)類游戲,對于RPG世界或者卡牌類游戲也有一定參考意義攒暇,用戶使用幀同步主要在于三點:1土匀、全球同步效率;2形用、服務(wù)端壓力緩解就轧;3、全球化大流量的成本控制田度。


以往有過這樣的情況妒御,用戶在全球服游戲逐步宣發(fā)、對應(yīng)國家客戶端上線的過程中镇饺,遇到跨國專線成本問題無法承擔(dān)的問題乎莉,最終無奈選擇降級服務(wù)采用特殊優(yōu)化過的外網(wǎng)出口覆蓋的案例。


而選擇使用UDP傳輸而非TCP傳輸主要考慮到對戰(zhàn)要求的實時性,TCP自身的重傳邏輯已經(jīng)無法滿足全球化(對戰(zhàn))游戲的網(wǎng)絡(luò)保障要求惋啃,通過自主實現(xiàn)UDP重傳哼鬓,甚至是報文同時重復(fù)發(fā)送的邏輯,來保證游戲數(shù)據(jù)包最終的抵達(dá)成功率肥橙。


關(guān)于最核心的全球服模式上魄宏,我的總結(jié)是:先集中再分布。


以當(dāng)前大部分游戲的框架存筏,如卡牌對戰(zhàn)宠互、RPG世界等完全可以通過集中部署+網(wǎng)絡(luò)調(diào)優(yōu)的方式實現(xiàn),當(dāng)前全球雙向延遲一般在300ms以內(nèi)椭坚,而一般人的反應(yīng)時間一般在300ms左右予跌,故網(wǎng)絡(luò)延遲對于玩家的感知非常微小,大部分游戲都可以集中部署并且不犧牲玩家游戲體驗善茎。同時集中部署的另一個優(yōu)勢是對于架構(gòu)復(fù)雜度的降低券册,維護(hù)便捷度的提升,對于成本控制及玩家數(shù)據(jù)統(tǒng)計也會方便很多垂涯。

圖一:集中部署全球服架構(gòu)

什么情況下考慮“再分布”呢烁焙?首先,游戲是房間類的對戰(zhàn)游戲耕赘,其次游戲?qū)τ诰W(wǎng)絡(luò)延遲極敏感(FPS類)骄蝇,最后重要的點是,游戲架構(gòu)采取的是對戰(zhàn)前緩存預(yù)熱數(shù)據(jù)操骡、對戰(zhàn)結(jié)束后寫入的異步模式九火。

圖二:分布式部署全球服架構(gòu)


下圖為對戰(zhàn)游戲的基礎(chǔ)架構(gòu)蒂秘,通過該部署模式要點為:

(1)平臺操作仍然集中化部署玩家統(tǒng)一訪問苔咪,如日常操作、裝備購買等延遲不敏感操作遇八;(2)對戰(zhàn)房間分布于全球各個數(shù)據(jù)中心是掰,而當(dāng)玩家需要對戰(zhàn)虑鼎、進(jìn)行匹配分房時,通過算法調(diào)度到相對大多數(shù)用戶最近的節(jié)點键痛;

(3)節(jié)點提前預(yù)取相關(guān)用戶數(shù)據(jù)炫彩,對戰(zhàn)產(chǎn)生的全部數(shù)據(jù)統(tǒng)計由本地進(jìn)行交互處理,并在對戰(zhàn)結(jié)束后集中上傳至中心數(shù)據(jù)節(jié)點散休。

圖三:對戰(zhàn)游戲基礎(chǔ)架構(gòu)

該方案在對戰(zhàn)網(wǎng)絡(luò)延遲和數(shù)據(jù)一致性上進(jìn)行了保證媒楼,但是相對架構(gòu)會更為復(fù)雜乐尊,實際落地過程中需要較好的配合和較深的維護(hù)經(jīng)驗戚丸。


那么,當(dāng)前的分布式數(shù)據(jù)庫解決方案是否能夠解決全球服數(shù)據(jù)一致性的問題?實際上限府,為了保證數(shù)據(jù)一致性夺颤,這里以TiDB為例,暫不支持超過30ms的集群內(nèi)部延遲胁勺。而且即使強(qiáng)行部署世澜,集群內(nèi)部的高延遲會嚴(yán)重影響QPS性能。在當(dāng)前的技術(shù)環(huán)境下署穗,全球分布式數(shù)據(jù)庫最好的代表者應(yīng)該是區(qū)塊鏈技術(shù)寥裂,不過性能是絕對無法滿足大部分游戲使用的,即使是僅有21個核心節(jié)點的EOS案疲,其極限QPS也遠(yuǎn)遜于普通配置的集中數(shù)據(jù)庫封恰。


游戲設(shè)計和網(wǎng)絡(luò)延遲的關(guān)系

游戲設(shè)計初期必然要對當(dāng)前全球網(wǎng)絡(luò)環(huán)境有一個初步了解,這點之前也有提到褐啡,基本上當(dāng)前物理鏈路的雙向延遲為300ms內(nèi)诺舔,但是考慮到無線信號不穩(wěn)定、傳統(tǒng)3G網(wǎng)絡(luò)性能等原因备畦,極端情況可能達(dá)500-1000ms甚至更高的情況低飒,游戲必須為此進(jìn)行一定取舍,早期幀同步游戲會因為網(wǎng)絡(luò)最差的玩家造成整個戰(zhàn)局的卡頓懂盐,而隨著技術(shù)的發(fā)展褥赊,樂觀鎖已經(jīng)通過舍棄低網(wǎng)絡(luò)質(zhì)量玩家的部分?jǐn)?shù)據(jù)包來保證全球的游戲體驗。

圖四:簡單全球網(wǎng)絡(luò)數(shù)據(jù)


這邊先不說延遲本身允粤,聊下限制網(wǎng)絡(luò)延遲的客觀因素和數(shù)據(jù):地球周長是40076千米 (赤道)崭倘,光速恒定299792458米/秒(真空),而網(wǎng)絡(luò)當(dāng)前主要是光纖傳輸类垫,在物理速度和傳輸介質(zhì)沒有突破性進(jìn)展的情況下繞地球一周需要近150ms司光,而實際網(wǎng)絡(luò)光纜不一定完全直線,中間設(shè)備轉(zhuǎn)發(fā)也會造成延遲開銷悉患,按照實際網(wǎng)絡(luò)質(zhì)量評估的話残家,中國全國覆蓋一般在100ms(包括偏遠(yuǎn)地區(qū))。


我們之前遇到一位用戶售躁,研發(fā)要求全球服在60ms的延遲以內(nèi)坞淮。按照正常情況,60ms一般可以勉強(qiáng)覆蓋北上廣三地?zé)衢T地區(qū)陪捷。但是要全球服的情況下會比較捉襟見肘回窘,這種情況下,建議做成跨國區(qū)域服的模式市袖。


另外關(guān)于國際出口的情況啡直,以中國為例烁涌,從我們的監(jiān)控情況看,常規(guī)出口的可用率并不樂觀酒觅,而我們亞太數(shù)據(jù)中心接入的電信CN2精品網(wǎng)可以做到不錯的穩(wěn)定性保證(也的確有全球服游戲通過此出口傳輸)撮执,但是并不能做到非常完美的SLA,不定期也會發(fā)生擁塞和抖動舷丹。而且這個問題并不是中國特例抒钱,臺灣地區(qū)、俄羅斯颜凯、印尼谋币、印度部分邦都存在有一定的跨國出口問題,需要通過外網(wǎng)接入點選擇或者產(chǎn)品解決方案如UCloud PathX解決方案進(jìn)行網(wǎng)絡(luò)優(yōu)化症概。

圖五:PathX案例視圖

所以在做一個全球服的項目之前瑞信,可以先做調(diào)研、和云廠商或者同行多聊聊穴豫,基于這些信息凡简,在關(guān)鍵幀和樂觀鎖的時間制定、游戲內(nèi)部預(yù)判及同步機(jī)制的設(shè)計上會更有把握精肃。


雜談拓展:區(qū)塊鏈游戲

區(qū)塊鏈游戲是一種新興的游戲模式秤涩,但是本質(zhì)上是依托于以太坊或者其他共識模式的鏈實現(xiàn)的玩法,當(dāng)前市場上的游戲主要分兩類:1司抱、純區(qū)塊鏈游戲筐眷;2、裝備或搜集元素上鏈习柠。


前者主要以以太貓為代表匀谣,核心是收集、養(yǎng)成類游戲资溃,隨著部分市場關(guān)注賦予了部分商業(yè)屬性武翎。后者則是融合了區(qū)塊鏈元素在其內(nèi)部,附加了很多其他玩法溶锭,諸如集換式卡牌等等宝恶。


區(qū)塊鏈行業(yè)還在摸索階段,共識算法趴捅、共同監(jiān)督垫毙、不可否認(rèn)性是其核心特質(zhì),但性能較低拱绑、需要支付GAS等也是其短板综芥,現(xiàn)在作相關(guān)評論還比較早,如果有興趣的話猎拨,可以鉆研下相關(guān)共識技術(shù)膀藐,對于各種鏈征峦、共識技術(shù)有一個認(rèn)知后,再根據(jù)自己的游戲模式選擇一個適合的場景消请。


一般來說區(qū)塊鏈游戲和鏈本身是相互依存的,如果鏈自身出現(xiàn)問題也會影響到游戲类腮,可以說鏈?zhǔn)腔A(chǔ)支撐臊泰,這個在選擇的時候建議慎重考慮。我們也在探索相關(guān)的技術(shù)方向?qū)嵺`蚜枢,并同公有云進(jìn)行結(jié)合缸逃。7月21號UCan下午茶成都站——“游戲出海,那些彎和那些坑”主題沙龍上厂抽,沈皓也會在現(xiàn)場深入分享出海游戲全球服架構(gòu)及解決方案需频,感興趣的讀者可以關(guān)注沙龍后續(xù)技術(shù)內(nèi)容。


作者介紹

沈皓:UCloud PathX產(chǎn)品早期方案設(shè)計者之一筷凤,深耕全球服游戲領(lǐng)域昭殉,曾全面負(fù)責(zé)多個知名游戲出海項目的全球/跨國業(yè)務(wù)對接、部署及落地藐守。對于MOBA挪丢、RTS、FPS等各類游戲的出海全球化的需求卢厂、難點乾蓬、架構(gòu)實現(xiàn)等深入分析并有獨到見解。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末慎恒,一起剝皮案震驚了整個濱河市任内,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌融柬,老刑警劉巖死嗦,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異粒氧,居然都是意外死亡越走,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門靠欢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來廊敌,“玉大人,你說我怎么就攤上這事门怪÷獬海” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵掷空,是天一觀的道長肋殴。 經(jīng)常有香客問我囤锉,道長,這世上最難降的妖魔是什么护锤? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任官地,我火速辦了婚禮,結(jié)果婚禮上烙懦,老公的妹妹穿的比我還像新娘驱入。我一直安慰自己,他們只是感情好氯析,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布亏较。 她就那樣靜靜地躺著,像睡著了一般掩缓。 火紅的嫁衣襯著肌膚如雪雪情。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天你辣,我揣著相機(jī)與錄音巡通,去河邊找鬼。 笑死舍哄,一個胖子當(dāng)著我的面吹牛扁达,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蠢熄,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼跪解,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了签孔?” 一聲冷哼從身側(cè)響起叉讥,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饥追,沒想到半個月后图仓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡但绕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年救崔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捏顺。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡六孵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幅骄,到底是詐尸還是另有隱情劫窒,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布拆座,位于F島的核電站主巍,受9級特大地震影響冠息,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜孕索,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一逛艰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搞旭,春花似錦散怖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脸甘。三九已至恳啥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丹诀,已是汗流浹背钝的。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留铆遭,地道東北人硝桩。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像枚荣,于是被迫代替她去往敵國和親碗脊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 本篇基于國外區(qū)塊鏈游戲Virtue Poker(虛擬撲克)的白皮書翻譯整理而成橄妆。面對國內(nèi)各種魚龍混雜的白皮書衙伶,Vi...
    yuyangray閱讀 4,876評論 0 3
  • 我經(jīng)歷了兩次刻骨銘心的畢業(yè)季矢劲,一次本科,一次研究生慌随。本科畢業(yè)的時候芬沉,非常舍不得我的死黨們,無論男女阁猜。每每想到一別不...
    王天石_職場溝通閱讀 2,022評論 2 0
  • 對話范例:關(guān)于打人 孩子:鮑比打我丸逸。 家長:他什么時候打你的? 孩子:在學(xué)校的時候剃袍。 家長:明天我會跟老師說椭员。 這...
    常春藤繪本館閱讀 248評論 0 0
  • 夜晚凌晨2點,一切都已經(jīng)進(jìn)入了夢鄉(xiāng)笛园,四周都很安靜隘击,沒有了白日的喧囂侍芝,也沒有了擁擠的人群,格外寂靜的夜埋同,反而讓人更孤...
    可樂冰激淋閱讀 339評論 4 1
  • 每天象陀螺一樣轉(zhuǎn)著州叠,一眨眼就轉(zhuǎn)到2017的第一個周末了。想到有兩天不用上班不用擔(dān)心完不成作業(yè)凶赁,頓時心頭飄出一個“爽...
    三年不蜚閱讀 143評論 0 0