2017年,我加入Jagex,成为RuneScape Mobile团队的一名技术开发人员。那时,这款游戏已经积累了超过15年的内容、系统、界面和玩家期待。把这样一款历史悠久的大型多人在线角色扮演游戏(MMORPG)带到iOS和Android平台,和从零设计一款移动端游戏完全是两回事。

这段经历让我深刻体会到,移植一款长寿的桌面游戏到触屏设备和受限硬件上,究竟意味着什么。以下是我从这段工作中总结的技术经验,以及它们如何影响我们今天在Ocean View Games的移动端开发和移植工作。

打开网易新闻 查看精彩图片

需要说明的是:本文讨论的RuneScape相关工作是在我此前于Jagex Games Studio任职期间完成的。RuneScape是Jagex Ltd.的商标。Ocean View Games并非该项目的承包商或代理合作伙伴。我提及这段经历,是因为其中的经验直接影响了我们如今处理移动端和遗留代码库的方式。

挑战的规模

要理解为什么把RuneScape移植到移动端在技术上如此艰难,你需要先了解这款游戏实际包含的内容:

  • 超过20年积累的内容,由数百名开发者在多代代码库上构建
  • 大量技能和活动,许多拥有各自的界面和交互模式
  • 多年积累的任务和定制内容,跨越游戏的多代版本
  • 一个移动端和桌面端玩家共享的实时持久世界
  • 一个必须在各平台保持一致行为的玩家驱动经济系统
  • 一个对游戏外观和手感有强烈期望的成熟社区

这不是做一个简化版"移动版"游戏的问题。任务要求的是完整的跨平台对等:移动端玩家需要能够在同一时间、同一世界里,做到桌面端玩家能做的所有事情。

关键要点:将遗留游戏移植到移动端时,第一个也是最重要的问题是范围界定。"完全对等"和"移动伴侣应用"是根本不同的项目,有着不同的技术要求、时间线和预算。在写第一行代码之前,就要明确这条边界。

第一课:遗留代码才是真正的Boss战

移动移植开始时,RuneScape的代码库已经演进了超过15年。其中包含早已离开公司的开发者编写的代码,使用的模式和约定早于现代最佳实践。游戏的脚本语言RuneScript是Jagex专有的系统。

实际挑战不仅仅是"让它在移动端跑起来",而是"让它在移动端跑起来,同时不破坏一个成熟在线游戏社区所依赖的桌面端体验"。

经验:先审计,再架构

在团队编写任何移动端专属代码之前,我们对代码库进行了彻底审计。这一步至关重要——你无法优化你不理解的东西,更无法在不了解全局的情况下安全地修改一个运行中的系统。