近年來,隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)和全球社交化的發(fā)展,全球同服的玩法越來越受到游戲玩家的喜愛,最火爆的如《皇室戰(zhàn)爭(zhēng)》自2016年3月份發(fā)布來便長(zhǎng)期霸榜,支持全球同服的游戲架構(gòu)在知乎上一度引起熱議,面對(duì)國(guó)內(nèi)各游戲廠家出海和全球運(yùn)營(yíng)需求,騰訊云利用分布在全球的云基礎(chǔ)設(shè)施和互聯(lián)的VPC網(wǎng)絡(luò)為游戲服務(wù)的全球部署提供了一套完整解決方案。
通常而言,全球同服的游戲架構(gòu)都具有以下幾個(gè)特點(diǎn):
核心數(shù)據(jù)集中部署:
用戶賬號(hào)數(shù)據(jù)、游戲核心數(shù)據(jù)、排行榜等全局類數(shù)據(jù)一般集中部署在某個(gè)中心節(jié)點(diǎn),確保各地區(qū)玩家基礎(chǔ)數(shù)據(jù)能正常交互。
游戲玩家分地域就近接入:
接入服、游戲邏輯服、緩存服可在用戶所在地就近接入,不僅提升接入層訪問速度,而且非全局類數(shù)據(jù)可本地存儲(chǔ),減少數(shù)據(jù)跨地域交互。
各地域之間數(shù)據(jù)互聯(lián):
各地域接入服或游戲邏輯服有時(shí)需與全球中心服進(jìn)行數(shù)據(jù)交互,如進(jìn)行跨服戰(zhàn)等全球同服玩法,其中這類與中心服交互的數(shù)據(jù)就可以通過專線來傳輸,可大大降低網(wǎng)絡(luò)延遲和丟包率。
部署框架圖如下圖所示:
騰訊云全球同服解決方案說明:
服務(wù)節(jié)點(diǎn)遍布全球,數(shù)據(jù)庫(kù)集中部署
騰訊云現(xiàn)已在全球范圍內(nèi)開通18個(gè)全球服務(wù)服務(wù)節(jié)點(diǎn),覆蓋5大洲,游戲數(shù)據(jù)庫(kù)中心服可根據(jù)業(yè)務(wù)需要選擇部署在騰訊云幾大核心機(jī)房之一。選擇中心服部署的機(jī)房一般可從兩個(gè)方面入手,一是跟產(chǎn)品運(yùn)營(yíng)同學(xué)確認(rèn)游戲希望重點(diǎn)覆蓋哪個(gè)區(qū)域的玩家,如歐美還是東南亞地區(qū)等,二是對(duì)比海外各大IDC的網(wǎng)絡(luò)質(zhì)量和覆蓋面,選其最優(yōu)節(jié)點(diǎn)進(jìn)行部署。
下圖是全球100多個(gè)國(guó)家到騰訊云海外IDC的網(wǎng)絡(luò)質(zhì)量圖(僅供參考)
?。ㄒ唬v訊云北美IDC
?。ǘv訊云香港IDC
基于上述數(shù)據(jù),如游戲需重點(diǎn)覆蓋歐美玩家,游戲中心服可選擇部署在騰訊云北美IDC,如重點(diǎn)覆蓋韓日臺(tái)和部分東南亞用戶,則可選擇騰訊云香港IDC,如主要覆蓋東南亞用戶,則可直接選擇騰訊云新加坡IDC。
全球分區(qū)域接入玩家
因全球100多個(gè)國(guó)家到游戲中心服網(wǎng)絡(luò)時(shí)延不一,就需要考慮在全球分多個(gè)區(qū)域就近接入玩家,這可依托騰訊云分布世界各地的IDC就近部署一套接入服務(wù),借助DNSPod云解析智能調(diào)度功能實(shí)現(xiàn)玩家的就近訪問。另外考慮到大部分時(shí)間里玩家主要是跟本地域玩家一起游戲,所以玩家數(shù)據(jù)也可以做分區(qū)域緩存,定期回寫中心數(shù)據(jù)庫(kù),避免因?qū)崟r(shí)跨地域讀取數(shù)據(jù)導(dǎo)致游戲體驗(yàn)下降。騰訊云在國(guó)內(nèi)提供北京、上海、廣州、深圳等數(shù)據(jù)中心,在海外還有北美、歐洲、亞太、南美等接入點(diǎn)供業(yè)務(wù)做分布部署和接入,如業(yè)務(wù)有使用緩存服務(wù)器則可直接選用騰訊云提供的Redis或MongoDB等存儲(chǔ)產(chǎn)品,降低業(yè)務(wù)部署和運(yùn)維門檻。
這里以廣州大區(qū)做接入部署為例:
國(guó)內(nèi)玩家通過廣州這個(gè)接入點(diǎn)就近接入,部署除全局服外一些基礎(chǔ)模塊,如接入服、游戲邏輯服和緩存類DB等,然后通過專線將廣州大區(qū)與北美大區(qū)的全局服進(jìn)行互聯(lián)互通。另外需要注意的是,考慮到運(yùn)營(yíng)成本,并不需要每個(gè)接入點(diǎn)都部署一套就近接入游戲服,有些地區(qū)只需要做搭建一個(gè)代理做轉(zhuǎn)發(fā)提升接入訪問速度即可。
全球網(wǎng)絡(luò)高速互聯(lián)
全球同服最大的難點(diǎn)在于如何解決玩家跨服PVP等同服玩法網(wǎng)絡(luò)延遲高問題,全球有數(shù)千家運(yùn)營(yíng)商,各運(yùn)營(yíng)商網(wǎng)絡(luò)質(zhì)量參差不齊,總有用戶是跨運(yùn)營(yíng)商訪問游戲業(yè)務(wù),網(wǎng)絡(luò)質(zhì)量難以保證,另外一方面是管理原因,導(dǎo)致各運(yùn)營(yíng)商之間出口限制較多,從技術(shù)角度看,每增加一跳轉(zhuǎn)發(fā),通常網(wǎng)絡(luò)延遲會(huì)多增加幾毫秒。為了解決上述網(wǎng)絡(luò)問題,騰訊云提供以下幾種網(wǎng)絡(luò)優(yōu)化方案。
?。ㄒ唬┐髤^(qū)間VPC互聯(lián)
為了減少游戲接入服到全局中心服之間的時(shí)延,騰訊云可通過VPC網(wǎng)絡(luò)實(shí)現(xiàn)各大區(qū)之間的專線高速互聯(lián),與公網(wǎng)相比大大降低跨區(qū)間數(shù)據(jù)訪問的網(wǎng)絡(luò)時(shí)延,而且建立VPC互聯(lián)的操作非常簡(jiǎn)單,控制臺(tái)上僅需兩步:
第一步:在騰訊云控制臺(tái)上創(chuàng)建對(duì)等連接;
第二步:在兩端設(shè)置路由表;
創(chuàng)建成功后可直接在【對(duì)等連接】中查看狀態(tài)
像香港大區(qū)與北美大區(qū)如果通過VPC網(wǎng)絡(luò)實(shí)現(xiàn)專線互聯(lián)后,從香港到北美的延遲可控制在200ms左右,基本滿足COK、COC類游戲全球同服玩法的需求。
?。ǘ┖M釶OP點(diǎn)加速
騰訊云除了提供IDC間專線互聯(lián)能力外,歐洲、南美、非洲等地還能提供POP點(diǎn)加速方案,減少國(guó)際間跨運(yùn)營(yíng)商路由轉(zhuǎn)發(fā)的次數(shù)和規(guī)避運(yùn)營(yíng)商之間出口限制等問題。如業(yè)務(wù)集中部署在北美IDC的話,歐洲用戶就可以通過騰訊云在歐洲的POP點(diǎn)做最近接入,然后騰訊云會(huì)直接將流量通過專線回傳至北美IDC,達(dá)到網(wǎng)絡(luò)質(zhì)量?jī)?yōu)化的目的。
騰訊云除了提供IDC間專線互聯(lián)能力外,歐洲、南美、非洲等地還能提供POP點(diǎn)加速方案,減少國(guó)際間跨運(yùn)營(yíng)商路由轉(zhuǎn)發(fā)的次數(shù)和規(guī)避運(yùn)營(yíng)商之間出口限制等問題。如業(yè)務(wù)集中部署在北美IDC的話,歐洲用戶就可以通過騰訊云在歐洲的POP點(diǎn)做最近接入,然后騰訊云會(huì)直接將流量通過專線回傳至北美IDC,達(dá)到網(wǎng)絡(luò)質(zhì)量?jī)?yōu)化的目的。
從歐洲到北美通過pop點(diǎn)加速后,延遲基本控制在100ms以內(nèi),如下圖所示
總結(jié)
綜上所述,部署一款全球同服后臺(tái)架構(gòu)的游戲,我們可能需要考慮如下幾點(diǎn):
1、 全局類數(shù)據(jù)集中部署:游戲賬號(hào)數(shù)據(jù)、排行榜等全局類數(shù)據(jù)可以集中在某個(gè)IDC進(jìn)行存儲(chǔ),如騰訊云北美IDC,基本可覆蓋歐美用戶。
2、 全球分區(qū)域接入:除中心服外,在全球各主要地區(qū)部署一套接入服務(wù),如在騰訊云廣州IDC、新加坡IDC和北美IDC分別部署一套接入服,以實(shí)現(xiàn)玩家就近訪問。其中通過DNSPod智能解析實(shí)現(xiàn)玩家就近接入,采用騰訊云LB實(shí)現(xiàn)接入層的負(fù)載均衡。
3、 減少跨地域間數(shù)據(jù)交互:游戲邏輯上盡量控制玩家在同區(qū)域內(nèi)游戲,減少數(shù)據(jù)的跨區(qū)域交互,因此可在每個(gè)區(qū)域部署一套游戲邏輯服和緩存數(shù)據(jù)庫(kù),緩存服務(wù)器或數(shù)據(jù)庫(kù)可直接采用騰訊云存儲(chǔ)Redis和CDB,降低開發(fā)和運(yùn)維成本。
4、 網(wǎng)絡(luò)質(zhì)量?jī)?yōu)化:國(guó)家與國(guó)家之間可通過騰訊云VPC專線或POP點(diǎn)加速方案實(shí)現(xiàn)網(wǎng)絡(luò)的高速互聯(lián),降低各游戲接入服與中心服之間數(shù)據(jù)交互時(shí)延,確保全球同服玩法的最終落地。