首页
社区
博客

Redis Enterprise 助力 Niantic 改善 POKÉMON GO 游戏性能和可靠性,增强玩家体验!

Redis 帮助 Niantic 营造了一个高性能游戏环境,在 Pokémon GO 流量激增的情况下,也能轻松应对

Niantic 是一家手机游戏开发公司,以开发 Ingress 和 Pokémon GO 等增强现实游戏而闻名。随着数千名玩家参加流行的突袭战斗,Niantic 的谷歌云服务器在准备阶段陷入困境,当时人们组成并加入团队,导致了延迟。Redis 帮助 Niantic 营造了一个高性能游戏环境,在 Pokémon GO 流量激增的情况下,也能轻松应对。

即时响应时间和超快的性能,对于玩家享受游戏至关重要,即使在高峰期,滞后时间也是不可接受的。例如:在玩家组队参加占领了 Pokémon GO 社区的突袭战斗时,激增的流量可能会给同一突袭的玩家,以及那些不突袭但在同一服务器上的玩家造成重大延迟,最终使游戏无法玩。

实际上,Pokémon GO 在多服务器环境中运行。正常的游戏活动中,玩家均匀分布在所有服务器上,一切井然有序。可是,一旦遇到突袭活动,同一房间的玩家需要在同一服务器上才能访问存储在该服务器内存中的游戏数据,问题就变得棘手。

因此,当 Pokémon GO 用户准备战斗时,Niantic 的技术团队(游戏的开发人员)必须为这些事件提供动力的服务器上的大量流量激增做好准备。

为了支持增强玩家活动,Niantic 在 Redis Enterprise 集群中缓存了大量游戏数据。所有Pokémon GO 服务器都可以访问此共享数据,减少延迟并提高多人突袭事件的性能。

记录的最大延迟从超过1秒减少到大约250毫秒

相对于基于磁盘的数据库管理系统,Redis Enterprise 的费用成本要少得多,这使 Niantic 能够平衡服务器负载并提供出色的玩家体验:突袭准备阶段的平均延迟下降了 75%。

Redis 是缓存的领导者。高吞吐量、低延迟和内置分析使我们能够为 Pokémon GO 社区提供丰富的游戏体验。

—— Niantic 员工软件工程师,Da xing


营造高性能游戏环境

最初,Niantic 围绕一个有状态的架构设计了这个游戏,这使得扩展和重新启动服务器变得困难。Da Xing 和 Niantic 架构团队的其他成员决定,如果他们能让服务器无状态,他们将能够更快地放大和缩小。

“使用以前的架构,为了扩展集群,我们必须逐一封锁它们,并等待现有的多人游戏会话过期,”他解释道。“可能需要长达 30 分钟,我们才能重新启动服务器并添加更多玩家。为每台服务器这样做需要更高的运营成本。”

Niantic 需要一个快速、响应迅速、快速扩展的数据平台,以适应活动的激增。Da Xing和他的团队在谷歌云上选择了 Redis Enterprise,因为它能够以零停机时间扩展实现低延迟和高可用性。标准功能包括持久性、内存复制、即时故障转移、备份和灾难恢复。

“最初,我们研究了我们现有的谷歌云服务器的内存解决方案,” Da Xing 继续说道。“然而,添加更多的谷歌云服务器来处理突袭组的成本比较昂贵,而添加 Redis 集群比部署额外的谷歌云服务器更便宜。这样以来,我们就可以以合理的价格部署一个大型集群。”


攻击延迟挑战

在 Niantic 的新 Raid 架构中,游戏集群中的所有服务器都可以访问存储在集中的 Redis 缓存中的数据,一个用于重复访问相同信息的临时保存位置。同一房间的玩家无需在同一服务器上访问共享数据。

当玩家聚集在 Raid 大厅时,Niantic 记录了谁对每个小组的承诺,在什么时候,以及球员与之前的社交互动的关系。这在 Redis Enterprise 中作为 JavaScript 对象符号(JSON)键以及密钥时间戳存储。缓存还保存有关每款游戏社交特征的数据,以及有关玩家位置、趋势和性能的统计数据。

内存缓存是一种技术,将经常访问的数据存储在内存中,而不是从磁盘或远程存储中检索。这项技术通过减少从存储设备获取数据所需的时间来提高应用程序性能。在游戏行业,缓存是快速高效地提供图形、图片、缩略图、音乐、标签、元数据和标签等内容的有效方法。

内存缓存非常适合突袭准备阶段,因为客户端设备和服务器之间交换的实时数据只有在突袭游戏的 10 或 15 分钟内才有意义。“一旦游戏完成,玩家获得奖励,数据就会过期,” Da Xing 说。“不需要持久的数据存储。”

这种方法还确保了更好的规模经济。玩家可以连接到任何服务器,无论房间托管在哪里,允许服务器在流行的突袭事件中保持更高的查询性能。

“将突袭事件转移到 Redis Enterprise 要高效得多,” Da Xing 总结道。“Redis Enterprise 非常可靠,具有非常快的读/写访问。此外,通过将数据分解成多个碎片,多台机器可以以线性方式处理请求。”


捍卫玩家体验

自部署 Redis Enterprise 以来,Niantic 服务器热点已大幅减少。在突袭准备阶段,大多数服务器承载的流量相对一致。记录的最大延迟从超过 1 秒减少到大约 250 毫秒,减少了 75%。

由于服务器更可靠,在突袭事件期间,恼人的延迟和服务器“打嗝”已经大大减少。Redis Enterprise 在这些活动期间提供更稳定的体验,并节省了可以投资于其他领域的运营和维护成本,以改善整体游戏体验。

Da Xing 总结道:“凭借其卓越的缓存能力,Redis Enterprise 为我们提供了高性能、高度可靠、具有成本效益的替代方案。”“ Redis 是缓存的领导者。高吞吐量、低延迟和内置分析使我们能够为游戏社区提供丰富的游戏体验。”