溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2020-06-27 13:51:02 來(lái)源:網(wǎng)絡(luò) 閱讀:755 作者:UCloud_TShare 欄目:游戲開(kāi)發(fā)

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

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

本文主要觀點(diǎn):

(1) 微服務(wù)是主流,模塊化架構(gòu)易于擴(kuò)容以及維護(hù),微服務(wù)+自動(dòng)化的業(yè)務(wù)架構(gòu)對(duì)于全球服游戲來(lái)說(shuō)幾乎是必然的選擇;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

圖五:PathX案例視圖

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

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

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

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

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

一般來(lái)說(shuō)區(qū)塊鏈游戲和鏈本身是相互依存的,如果鏈自身出現(xiàn)問(wèn)題也會(huì)影響到游戲,可以說(shuō)鏈?zhǔn)腔A(chǔ)支撐,這個(gè)在選擇的時(shí)候建議慎重考慮。我們也在探索相關(guān)的技術(shù)方向?qū)嵺`,并同公有云進(jìn)行結(jié)合。

作者介紹

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

更多內(nèi)容,歡迎微信關(guān)注“UCloud技術(shù)公告牌”查看。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI