中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一款成功的全球服游戲該如何進行架構選型與設計?

發布時間:2020-06-27 13:51:02 來源:網絡 閱讀:760 作者:UCloud_TShare 欄目:游戲開發

全球服游戲如今正在成為出海游戲的主要考慮模式,跨國對戰、全球通服打破國界的限制,將不同地區不同語言的玩家放在一起合作/競技,成功吸引了大量玩家的關注,并逐漸成為主流的游戲玩法。

游戲廠商們也在嘗試采用一地部署多地覆蓋、全球逐步宣發的模式進行第一款全球服游戲的發行試點及成本控制。文章主要針對全球服和出海游戲的特性優勢、架構布局、網絡規劃、實用技術等幾個方面進行探討。

本文主要觀點:

(1) 微服務是主流,模塊化架構易于擴容以及維護,微服務+自動化的業務架構對于全球服游戲來說幾乎是必然的選擇;

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

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

(4) 核心架構集中部署為主,全球網絡優化覆蓋玩家;

(5) 游戲代碼的關鍵幀及預判設計關系到游戲對網絡延遲的兼容性。

為什么要微服務和自動化?

原因一:全球服游戲多為邏輯服或無區服概念的通服、對戰類游戲。為了保證游戲性和全球化的特點,保證匹配和游戲世界玩家的多元化,傳統意義上的區服架構和跨服對戰模式并不適配,以皇室戰爭、列王紛爭等為例的一眾匹配對戰游戲便是其中的代表。

原因二:全球服游戲要求承載全球玩家的涌入,及時發現負載瓶頸并擴容是一個必然的要求,模塊化拆分架構之后可以靈活的針對不同活動、玩家特性增加對應的業務服務器,并通過自動注冊機制實現快速擴容。

整個架構采用注冊管理+自動化之后,可以通過研發腳本或者通行的管理工具,甚至Docker的K8S來實現業務宕機的自動恢復和容災、負載突發的自動擴容,這可以極大的降低運維成本,并對于業務健壯性進行極大的提升。

對于游戲服務的自動注冊機制,在項目早期,受限于研發實力或者工期,開發者一般會選擇ZooKeeper進行管理維護,但是在實際運行中由于ZooKeeper自身較重的功能實現、二次開發及bug處理的復雜度,很多用戶會將其替換為自主研發實現的輕量級RPC自動注冊服務。實際情況要具體視研發能力而定,此外GRPC也有不少的支持者。

幀同步技術和UDP傳輸協議的使用

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

以往有過這樣的情況,用戶在全球服游戲逐步宣發、對應國家客戶端上線的過程中,遇到跨國專線成本問題無法承擔的問題,最終無奈選擇降級服務采用特殊優化過的外網出口覆蓋的案例。

而選擇使用UDP傳輸而非TCP傳輸主要考慮到對戰要求的實時性,TCP自身的重傳邏輯已經無法滿足全球化(對戰)游戲的網絡保障要求,通過自主實現UDP重傳,甚至是報文同時重復發送的邏輯,來保證游戲數據包最終的抵達成功率。

關于最核心的全球服模式上,我的總結是:先集中再分布。

以當前大部分游戲的框架,如卡牌對戰、RPG世界等完全可以通過集中部署+網絡調優的方式實現,當前全球雙向延遲一般在300ms以內,而一般人的反應時間一般在300ms左右,故網絡延遲對于玩家的感知非常微小,大部分游戲都可以集中部署并且不犧牲玩家游戲體驗。同時集中部署的另一個優勢是對于架構復雜度的降低,維護便捷度的提升,對于成本控制及玩家數據統計也會方便很多。

一款成功的全球服游戲該如何進行架構選型與設計?

圖一:集中部署全球服架構

什么情況下考慮“再分布”呢?首先,游戲是房間類的對戰游戲,其次游戲對于網絡延遲極敏感(FPS類),最后重要的點是,游戲架構采取的是對戰前緩存預熱數據、對戰結束后寫入的異步模式。


一款成功的全球服游戲該如何進行架構選型與設計?

圖二:分布式部署全球服架構

下圖為對戰游戲的基礎架構,通過該部署模式要點為:

(1)平臺操作仍然集中化部署玩家統一訪問,如日常操作、裝備購買等延遲不敏感操作;(2)對戰房間分布于全球各個數據中心,而當玩家需要對戰、進行匹配分房時,通過算法調度到相對大多數用戶最近的節點;

(3)節點提前預取相關用戶數據,對戰產生的全部數據統計由本地進行交互處理,并在對戰結束后集中上傳至中心數據節點。

一款成功的全球服游戲該如何進行架構選型與設計?

圖三:對戰游戲基礎架構

該方案在對戰網絡延遲和數據一致性上進行了保證,但是相對架構會更為復雜,實際落地過程中需要較好的配合和較深的維護經驗。

那么,當前的分布式數據庫解決方案是否能夠解決全球服數據一致性的問題?實際上,為了保證數據一致性,這里以TiDB為例,暫不支持超過30ms的集群內部延遲。而且即使強行部署,集群內部的高延遲會嚴重影響QPS性能。在當前的技術環境下,全球分布式數據庫最好的代表者應該是區塊鏈技術,不過性能是絕對無法滿足大部分游戲使用的,即使是僅有21個核心節點的EOS,其極限QPS也遠遜于普通配置的集中數據庫。

游戲設計和網絡延遲的關系

游戲設計初期必然要對當前全球網絡環境有一個初步了解,這點之前也有提到,基本上當前物理鏈路的雙向延遲為300ms內,但是考慮到無線信號不穩定、傳統3G網絡性能等原因,極端情況可能達500-1000ms甚至更高的情況,游戲必須為此進行一定取舍,早期幀同步游戲會因為網絡最差的玩家造成整個戰局的卡頓,而隨著技術的發展,樂觀鎖已經通過舍棄低網絡質量玩家的部分數據包來保證全球的游戲體驗。

一款成功的全球服游戲該如何進行架構選型與設計?

圖四:簡單全球網絡數據

這邊先不說延遲本身,聊下限制網絡延遲的客觀因素和數據:地球周長是40076千米 (赤道),光速恒定299792458米/秒(真空),而網絡當前主要是光纖傳輸,在物理速度和傳輸介質沒有突破性進展的情況下繞地球一周需要近150ms,而實際網絡光纜不一定完全直線,中間設備轉發也會造成延遲開銷,按照實際網絡質量評估的話,中國全國覆蓋一般在100ms(包括偏遠地區)。

我們之前遇到一位用戶,研發要求全球服在60ms的延遲以內。按照正常情況,60ms一般可以勉強覆蓋北上廣三地熱門地區。但是要全球服的情況下會比較捉襟見肘,這種情況下,建議做成跨國區域服的模式。

另外關于國際出口的情況,以中國為例,從我們的監控情況看,常規出口的可用率并不樂觀,而我們亞太數據中心接入的電信CN2精品網可以做到不錯的穩定性保證(也的確有全球服游戲通過此出口傳輸),但是并不能做到非常完美的SLA,不定期也會發生擁塞和抖動。而且這個問題并不是中國特例,臺灣地區、俄羅斯、印尼、印度部分邦都存在有一定的跨國出口問題,需要通過外網接入點選擇或者產品解決方案如UCloud PathX解決方案進行網絡優化。

一款成功的全球服游戲該如何進行架構選型與設計?

圖五:PathX案例視圖

所以在做一個全球服的項目之前,可以先做調研、和云廠商或者同行多聊聊,基于這些信息,在關鍵幀和樂觀鎖的時間制定、游戲內部預判及同步機制的設計上會更有把握。

雜談拓展:區塊鏈游戲

區塊鏈游戲是一種新興的游戲模式,但是本質上是依托于以太坊或者其他共識模式的鏈實現的玩法,當前市場上的游戲主要分兩類:1、純區塊鏈游戲;2、裝備或搜集元素上鏈。

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

區塊鏈行業還在摸索階段,共識算法、共同監督、不可否認性是其核心特質,但性能較低、需要支付GAS等也是其短板,現在作相關評論還比較早,如果有興趣的話,可以鉆研下相關共識技術,對于各種鏈、共識技術有一個認知后,再根據自己的游戲模式選擇一個適合的場景。

一般來說區塊鏈游戲和鏈本身是相互依存的,如果鏈自身出現問題也會影響到游戲,可以說鏈是基礎支撐,這個在選擇的時候建議慎重考慮。我們也在探索相關的技術方向實踐,并同公有云進行結合。

作者介紹

沈皓:UCloud PathX產品早期方案設計者之一,深耕全球服游戲領域,曾全面負責多個知名游戲出海項目的全球/跨國業務對接、部署及落地。對于MOBA、RTS、FPS等各類游戲的出海全球化的需求、難點、架構實現等深入分析并有獨到見解。

更多內容,歡迎微信關注“UCloud技術公告牌”查看。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

遵化市| 灵寿县| 抚远县| 东港市| 济南市| 军事| 黔西| 南郑县| 松江区| 阿坝| 闸北区| 三门峡市| 青铜峡市| 漠河县| 信丰县| 嵩明县| 柳林县| 项城市| 新田县| 平舆县| 光泽县| 左云县| 河北区| 尉犁县| 甘肃省| 密云县| 凯里市| 荆州市| 曲周县| 盐源县| 虹口区| 加查县| 博爱县| 富平县| 石狮市| 城固县| 抚远县| 田林县| 商南县| 海城市| 东阳市|