Google Doodle万圣节幽灵小游戏5分钟内吸引逾50万名玩家的幕后功臣:Open Match搭配GKE打造低延迟的全球玩家配对系统

每日动态2021-02-26 14:01:58
最佳答案

图片来源:

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个活跃服务区域中,以提供低延迟的游戏体验。

免责声明:本文由用户上传,如有侵权请联系删除!