每秒百万次访问,每天10TB数据,AR游戏精灵宝可梦Go的背后
据Statista统计数据,截止今年1月,风靡全球的LBS AR游戏《精灵宝可梦Go》仅在iPhone端,日活用户就有大约82.7万人。而在一些活动期间,该作的同时在线人数甚至可达数百万级,自上线以来持续吸引了大批忠实玩家。
与吃鸡等MMORPG游戏不同,《精灵宝可梦Go》不仅需要解决同时多人在线的问题,还需要确保基于线下场景的实时AR内容能在多台设备上同步。考虑到该作在全球的大规模覆盖率,大量的LBS AR数据为游戏背后的技术带来很大挑战。那么,《精灵宝可梦Go》的服务器是如何同时承载数百万用户的呢?
据青亭网了解,《精灵宝可梦Go》基于谷歌云服务,因此数据的处理、传输、渲染等流程在云端平台完成,保证稳定性的同时,也允许LBS AR应用场景足够灵活。
近期,为了了解这款游戏背后的技术,谷歌采访到Niantic高级工程经理James Prompanya,在采访中James为我们详细讲述了游戏后台是如何使用Google Cloud工具来支持大量用户流量,包括管理和维护大规模用户端所采用的系统架构,以及其背后发生的故事等等。
Pormpanya表示:在"社区日"和"精灵宝可梦Go Fest 2021"等活动期间,游戏的流量从40万人/秒上升至近100万人/秒。为了承载不断增加的同时在线玩家,Niantic采用了GKE(谷歌容器引擎)、谷歌全球分布式资料托管服务/资料库Cloud Spanner等技术,而且在线上获得了谷歌工程师的技术支持。
注:GKE是谷歌旗下的一个Kubernetes管理平台,主要在谷歌云平台上运行。而Kubernetes最初由谷歌工程师开发,后来在2014年开源,它是一种容器编排平台,用于调度、自动部署、管理和扩展容器化应用。谷歌Spanner是一个分布式数据库,专为游戏状态储存而设计,可支撑全球规模的多人游戏。
谷歌:请介绍一下《精灵宝可梦Go》?
James: 这是一款鼓励玩家去户外活动的LBS AR游戏,与传统的手游有很大区别,除了在游戏中互动外,玩家还可以通过线下的社区活动来社交。在相同的地理位置,多名玩家可以一起抓同一个宝可梦,体验共享的AR场景。
Niantic会定期举办社区日、GO Fest、限时突袭等活动。通常,活动上线的区域会同时涌入大量玩家,访问量从每秒40万次上升至每秒100万次。
谷歌:在GO Fest期间,游戏开发团队如何扩展后端规模,以处理流量高峰?
James: 我们采用多种托管服务来处理增加的计算流量,主要包括GKE和谷歌Cloud Spanner。《精灵宝可梦Go》的前端服务托管在GKE上,GKE基于谷歌云服务(Google Cloud),管理/扩展节点足够简单。
此外,谷歌工程团队还会在线上为Niantic提供帮助,共同监控和解决《精灵宝可梦Go》在大规模活动期间可能产生的问题。
实际上,在任何时间《精灵宝可梦Go》都有可能涌入大量用户,甚至需要约5000个Spanner节点来处理。除此之外,我们还采用了数千个专门运行《精灵宝可梦Go》的Kubernetes节点。同时,还使用额外的GKE节点来支持游戏的微服务,提升体验感。
这些节点同时运行,可支持全球数百万在线玩家,让他们实时共享同样的LBS AR游戏内容。
谷歌:《精灵宝可梦Go》从一开始就在使用Spanner服务吗?还是在广受用户欢迎后,才开始在游戏架构中加入Spanner服务?
James: 最初,《精灵宝可梦Go》的数据托管在Google Cloud Datastore(谷歌云数据仓库)中,这项云服务的优势在于简单易入门,不需要开发者去管理额外的架构。
随着玩家规模逐渐增长,我们希望进一步控制游戏数据库的大小和规模,于是便采用谷歌Cloud Spanner服务。同时,我们也很喜欢Spanner提供的连贯索引功能,它让运行更加复杂的数据库模式变得足够方便。
谷歌:加入我是一名游戏玩家,正在玩《精灵宝可梦Go》。当我打开该应用,开始捕捉宝可梦,这一过程中背后都发生了什么?
James: 当玩家捕捉到一只宝可梦,游戏服务器会通过Cloud Load Balancing(全分布式负载平衡解决方案,用于避免拥塞、降低延迟、提升安全性、降低成本)收到相关请求。
此外,《精灵宝可梦Go》首次启动后,储存在Cloud Storage中的全部静态媒体都会载入到玩家手机中。而且,Cloud Load Balancing方案还启动了云内容分发网络(CDN),用于缓存和运行游戏内容。
当玩家手机的访问流量到达Global Load Balancer后,系统会向NGINX(高性能HTTP和反向代理web服务器)反向代理发送请求。接着,反向代理将流量发送到游戏服务器的前端。
Kubernetes还有一个重要部分是空间查询后端(Spatial Query Backend),这项服务会保存基于共享空间的缓存,并用这些缓存来计算地图上显示哪些宝可梦、道馆和补给站(PokeStops)、玩家的时区等任何基于地理位置的内容。
简单来讲,大概是前端负责管理玩家,以及玩家和游戏之间的交互,而空间查询后端则负责地图。同时,前端从空间查询后端获取信息,并发送给用户。
谷歌:那在抓宝可梦时又发生了什么?
James: 玩家抓住宝可梦后,系统会通过API从GKE前端向Spanner发送事件。当你更新道馆和补给站地图时,系统请求会发送更新的缓存,并转发至空间查询后端。
Spanner中储存的数据是连贯的,因此在收到缓存更新后,内存中的空间数据也会更新,用于处理之后前端发送的请求。然后,前端再次从空间查询后端获取信息,发送回用户。
谷歌:那么,如何确保统一地理位置的玩家,能够看到相同的宝可梦数据,并保持相对同步呢?尤其是在活动期间。
James: 《精灵宝可梦Go》服务器中的一切数据都是确定的,因此,多个客户端在同一个物理位置可以查看到相同的数据,即使这些玩家使用不同型号的手机。而在在线人数多的活动期间,游戏将处理大量缓存和时间同步,所以全部服务器需要同步更新设置变化和事件发生时间,为多名玩家提供共享AR的体验。
谷歌:玩家在玩《精灵宝可梦Go》时,服务器一定产生了大量数据,那么Niantic的数据分析流程是怎样的,都分析哪些数据?
James: 是的,这款游戏每天可生成5-10TB数据,我们会将这些数据储存在BigQuery和BigTable中。
团队中的数据科学团队会关注游戏中的事件数据,用于分析玩家行为,以及验证宝可梦地图布局的效果符合预期,或用于市场报告等等。
除了BigQuery外,我们还会使用Dataflow作为数据处理引擎,批量处理储存在Bigtable中的玩家日志。
同时,还会处理一些串流数据,包括检测作弊、寻找和相应不正常玩家信号。
为了获取全球地理位置和生态信息(用于在地图上设置补给站和道馆),我们从OpenStreetMap、美国地质调查局、Niantic Wayfarer地理数据众包平台等数据库中获取信息,未来还将构建一个实时动态更新的全球地图。
谷歌:未来,《精灵宝可梦Go》的活动规模可能会继续扩大,如果流量高达数百万用户/秒,那么系统服务器将如何扩展?
James: 随着活动规模扩大,系统中数据管道(pub sub、BigQuery Streaming等等)的负载也将增加,我们需要做的就是确保留出预期的配额。参考:Google
今晚六点国风电竞嘉年华总决赛即将开战精彩对决不容错过2021英魂之刃国风电竞嘉年华总决赛将在今晚正式开战!SCTM和Nolater战队一路竞逐,终于顶峰相见。冠军之争一触即发,谁能夺得最终的荣耀?赛程预告9月16日1850,将由海峡
海峡两岸电竞交流盛宴英魂之刃国风电竞嘉年华冠军战队专访9月16日,2021海峡数字体育竞技大会之英魂之刃口袋版国风电竞嘉年华决赛,在福州长乐数字教育小镇教育会展中心举行。SCTM战队Nolater战队ACG战队与两岸选手共同组成的海峡
来魔域口袋版遇见真爱花魁赛结缘,你是我荣耀最近一部电视剧你是我的荣耀风靡全网,杨洋与迪丽热巴扮演的男女主角因为一款游戏再续前缘,互相成就彼此成为对方荣耀的爱情故事不仅让粉丝们大呼磕到了,也令不少玩家对在游戏中与异性结缘的桥
喂养史莱姆街头篮球全新版本上线街头篮球全新版本已经火热上线,永久能力纹身,特殊套装重磅出击,喂养史莱姆,连续商城,精挑细选,疯狂限时礼包,必须是永久,全新徽印系统,让我们一起来了解下吧!喂养史莱姆大量徽记钥匙9
喜迎开学季侠客风云传OL卫紫绫再开新天赋开学啦,神兽归笼,父母放松,恰同学年少,读大学的少侠们也迎来了新学期新的学弟学妹,有人说,小孩子的一天很短,一年却很长,成年人的一天很长,一年却很短,在侠客风云传OL的世界,永远保
神秘海报暗藏玄机魔域口袋版全新资料片线索曝光九月来临暑气消散,当不少人趁着金秋筹划一场旅行之时,魔域口袋版的玩家们早已通过千里江山资料片,足不出户饱览了一番南国美景。而随着一张魔域口袋版官方神秘海报的曝光,似乎又已为玩家们冒
奥斯卡最佳视效获奖导演打造的余烬风暴!传递沉浸美学余烬风暴作为龙图自研魔幻MMORPG,以中世纪魔幻题材为背景,通过宏大的世界观和极具代入感的画面品质,力求为玩家打造一个有生命的魔幻世界。在创作过程中,为了让视觉表现更具张力,我们
刀剑online新版本魔帝重生今日上线国产竞技格斗网游开创者刀剑online新资料片魔帝重生将于今天(9月3日)正式上线,届时将开启两个新服双线八区绝世神兵(无夫妻阵有转宝)以及双线八区封魔斩妖(无夫妻阵有转宝),新服
街头篮球SFSA总决赛主题公布无尽神力VS超凡智慧经过了数个月线下赛以及线上赛的激烈争夺,街头篮球SFSA全国联赛地区赛已经圆满落下了帷幕,16支总决赛战队已经正式出炉,接下来将会进行最终对决,总决赛主题也已经确定,让我们一起了解
街头篮球超特元素精灵降临全新徽印系统详解上周为大家带来了街头篮球国庆节版本觉醒角色妮妮,以及9。2版本全新的徽印系统的爆料,本周将会为各位FSer带来国庆节超特角色的首曝9。2版本内容以及徽印系统详解。水火交融超特元素精
侠客再扬帆我的侠客登陆Steam平台近日,由侠客工作室开发的国产武侠手游我的侠客将登陆PC端,并已在steam平台推出商店页面,预计将在国庆期间向玩家开放试玩DEMO。该作是一款2D复古武侠开放世界类角色扮演游戏,主