Supercell 是一家手机游戏开发公司,总部位于芬兰赫尔辛基。该公司成立于 2010 年,其理念是让团队独立决定要制作的游戏类型和制作方式。
创作出能反复吸引玩家打开游戏的可爱世界和角色,是 Supercell 使用最佳技术设计和运营游戏的核心目的。Supercell 相信游戏具有将世界各地的人们聚在一起的力量,并努力创造新颖、创新、令人难忘的体验,以期让多元化的广大玩家社群为之兴奋沸腾。
更高的性能需要更好的技术
技术有时可能会阻碍目标的达成。Supercell 公司最近在全球发布的游戏就遇到了这种情况:《荒野乱斗》因延迟而导致可用性问题,造成了玩家的不满。此问题可能由在样板 (Boilerplate) OpenJDK Java 虚拟机中即时编译的工作方式导致。
对此,该公司需要一种可扩展的解决方案。单次 300 毫秒的延迟就会导致游戏有几秒无法运行,从而影响服务器上的数百名玩家。《荒野乱斗》根据全球玩家带来的的负载情况自动调整服务器数量,
每天在服务器启动后的前两个小时内,都有数百个运行《荒野乱斗》的服务器受到少量 100 到 300 毫秒延迟现象的影响,这是运行时预热问题造成的。
Java 可用于快速开发应用程序,还可跨平台,稳定性高,适合大规模使用。但是,使用开箱即用的 OpenJDK 意味着 JVM(Java 虚拟机)启动后,会忙于编译游戏代码,而当游戏进入新的游戏逻辑时,会反复触发编译。这给游戏玩家造成了随机延迟,并严重限制了服务器在首个小时内可稳定承载的负载。
对于 Supercell,挑战是在节假日、周末和特殊活动期间,需要在全球范围内不断启动 (Spin up) 和停止运行 (Spin down) 实例,以满足玩家需求。由于几乎所有战斗服务器都每天重新启动,过去的解决方案是在启动后的第一个小时内只加载大约 30% 的战斗,这样做不仅效率低下,还会造成额外的托管成本。
提供更好的游戏体验
Supercell 在其都柏林托管的云实例中进行快速评估和一个多月的生产测试后,最终确定了解决方案。Supercell 的《荒野乱斗》在扩展服务器运行方面的效率提升,Azul Platform Prime 提供了更加稳定的负载承载能力,减少了游戏延迟,并在相同工作负载下将 CPU 使用率降低了 20-25%,这相当于降低了基础架构成本。使用改进后的 Azul Prime JVM,Supercell 无需修改任何代码就能更高效地扩缩服务器。
Azul Platform Prime 使《荒野乱斗》游戏服务器能够以 C++ 代码的响应速度和一致性运行 Java 代码,从而避免出现游戏延迟。此外,提高性能还能提升服务器的负载,因此这一投资本身就可通过降低托管成本带来切实的回报。
Azul Platform Prime 的优势。
基于 OpenJDK 的高性能分布
- 更快的 JVM 性能:借助我们的 C4 回收器,您的基础架构可运行的事务可增加二到五倍,并且不会出现暂停、抖动或超时。
- 编码更快捷:市场上可扩展性最好的 JVM,提供性能更好的基于 LLVM 的 JIT 编译器,可改进 JVM 实时优化。
- 启动更快:内置的 ReadyNow! 技术可加快 Java 的预热时间,让启动更迅速。
- 合理调配资源:使用云原生编译器转移 JIT 编译,提高 Java 应用程序在任何计算环境中的性能。