圖片來源: 

Google

前些時日,Google在搜尋頁面上的Google Doodle,提供了萬聖節幽靈多人連線遊戲,在65小時中,吸引了62個國家共1億名玩家遊玩,在最高峰時段甚至同時有50萬名玩家在線上, 而Google今天在自家部落格格,公開了以雲端服務,設計全球規模低延遲連線遊戲的方法。

這個萬聖節Google Doodle遊戲,是Google雲端團隊與Doodle團隊合作,使用了Google和Unity共同開發,在9月釋出的開源配對框架Open Match,完成萬聖節Google Doodle多人連線的玩家配對工作。Google提到,要以全球玩家作為遊戲群體,設計出低延遲、高可靠和高可用的配對服務並不簡單,搭傳統配對器更是難以兼顧品質。

Doodle團隊將Open Match的分散式微服務和Google Kubernetes Engine(GKE)相結合,可以透過簡單的增加額外的前端容器,來應付突然增加的玩家所帶來額外的工作負載,Google提到,雖然在他們的使用情境,是用GKE來執行Open Match,但事實上,Open Match也可以在任何地方搭配Kubernetes運作,因為該專案是一個開源框架。

架構設計:(來源Google)

配對玩家需要的資料都儲放在Cloud Memorystore中,Cloud Memorystore是Google以記憶體資料庫Redis,所提供的完全託管的記憶體資料儲存服務。在Open Match使用Cloud Memorystore中的資料,完成玩家配對後,這些結果會被傳送到全球Cloud Pub/Sub主題中等待,直到有閒置伺服器可以使用。

系統需要決定經過配對後的玩家,其遊戲應該在哪一個GCP區域中運行,過去的解決方法都是對所有IP進行地理DNS查詢,或是使用複雜的客戶端路由規則,而這次Google Doodle使用GCP的全球負載平衡器,將所有GKE叢集連接到單一負載平衡器上,由負載平衡器統一負責後端路由規則,如此便只需要一個配對器DNS入口,進而簡化了客戶端邏輯和路由規則。

Doodle團隊將GKE作為遊戲伺服器,並為每個遊戲伺服器建置生成容器映像檔,這些映像檔被存放在Google容器註冊表gcr.io服務中,方便GKE叢集存取。遊戲伺服器會在啟動時連接配對器,並回報位置以及連接埠,接著等候預期玩家列表,而玩家會從Open Match收到遊戲伺服器的位置和連接埠,並直接連線到遊戲伺服器,與其他玩家進行遊戲。

這個2018年萬聖節Google Doodle在澳洲時間的半夜於第一個區域上線,18小時過後在全球62個國家運作,總共為1億玩家提供了遊戲服務,總計超過200萬計算小時。Doodle團隊將遊戲伺服器設置在GCP的12個活躍服務區域中,以提供低延遲的遊戲體驗。

熱門新聞

Advertisement