《魔兽世界:经典版》将采用 1.12「战鼓再响」为基础

f0427ed6c5a44fb22efa708f79118f65.JPG

你好啊!《魔兽世界:经典版》的开发正在进行中,而我们非常兴奋能分享一些我们面对的挑战,以及我们如何克服它们。如同我们在上次的 BlizzCon 提过的,重现经典遊戏不是一个线性的工作,对我们而言很重要的是要花时间跟努力把事情做对-包括检视遊戏版本、资讯、工程与数字,并且仔细确认我们在这些年间做的所有变动。肯定的是:《魔兽世界:经典版》团队正在努力实现它,而我们已经到了可以分享一些成果的时候。

《魔兽世界:经典版》:最初雏型

我们必须做出的第一个—也是最重要的其中之一,是决定要专注在哪个版本上。就像你们很多人已经注意到的,经典时期长达两年,并且充满了变动。战场就是在这段时间出现,而许多代表性的地城和团队副本也是在这时候加入的。在仔细的考虑后,我们决定采用更新档 1.12 当作基础,因为它是经典体验中最完整的版本。

我们决定了起点之后,就开始检视原始码的存档以及我们能作到什么,包括花了很多时间参看原来的开发资料库。在把几个关键拼凑起来之后,我们就有了一个在内部运行的更新档 1.12 重建版。我们的团队可以创造人物、进行基本任务和升级—以及死掉,这个我们干了不少次。当作测试。这很明显。

我们最初的运作暴露了几个(意料之中的)问题:遊戏有时候会崩溃、无法识别现代的显示卡,并且跟我们现有的登入系统不相容。通过的也无法支援任何我们现代的安全与反作弊功能。显然如果要让《魔兽世界》经典伺服器跟上暴雪的品质标准并提供玩家所期待的体验,我们有很多事要做。我们就在这些挑战中生活跟呼吸,《魔兽世界:经典版》工程团队也就这样渐入佳境。

一路前行:第二个原型

说到工程方面,《魔兽世界》是一个非常以数据主导的遊戏,意思是基础程式码很有弹性,而且它运作有特定的方式,由资料库所持有的资讯控制。像是任务、怪物、物品,以及所有这些东西的互动规则,都由设计师与美工人员在数据中定义出来。

所以我们自问,如果我们用有着所有后端改良与变动的现代程式码来处理 1.12 版的遊戏数据,有办法提供原汁原味的经典体验吗?儘管看起来有些违反直觉,这将会纳入像是宠物快乐值、武器技能升级、经典天赋等等,但是却不会包括像是宠物对战、队伍搜寻器及成就等等较晚期的功能。在几週的研究与开发、实验与原型製作之后,我们有信心可以提供《魔兽世界》的经典内容与遊戏体验,而不需要牺牲《魔兽世界》在过去超过 13 年来所受益的后端开发人力工时

我们最初的努力帮助我们决定了想要提供的体验,而这第二个原型则真正定义了我们如何完成它。从一个现代结构-有着所有安全与稳定性变动-开始,标示出要提供原版的经典体验所需的工作。任何开发构组与原版体验间的差异都可以系统性地登录与修正,同时仍然在稳定和安全的基础之上运作。

深入挖掘

所以用现代的工程技术重现原版的经典体验需要什么?就从把构成《魔兽世界》的遊戏数据分成不同类型开始吧:

  • 资料库数据:这类型的资讯几乎总是用数字呈现。一个生物有多少生命值、一个物品有多少力量值,或何时在哪裡会生成特定的生物,全都是我们存在资料库裡的数字型数据的例子。我们也可以储存并执行不同数据间的关係。

  • 档案数据:这通常是非常稠密的数据,像是 3D 模组、材质、动画与地形。我们的使用者介面是用 XML 和 LUA 档案建构的。很多美术档案跟美术工具生成的格式不同。我们把这些初步的美术档案处理成最适合让我们的遊戏读取并运行的状态。

  • LUA 脚本:有些功能是由设计师所写的 LUA 脚本引导的,这让他们可以轻易地以伺服器端的逻辑定义自订的动作,不需要高深的工程知识。

工程是如何转变

我们面对的一个挑战是,所有经典的数据都是当时原本的格式,但是格式已经有了根本的改变。在这部份需要进行的主要工作是让现代的客户端相容于经典数据。

例如,法术本来只能对目标进行三个动作。做成表格看起来绘像这样:

ID 名称 效果一 效果二 效果三 光环一 光环二 效果伤害一 光环伤害一 光环伤害二
1 火球术 造成伤害 套用光环 定期造成伤害 30 3
2 冰霜箭 造成伤害 套用光环 缓速 20
如你所见,有很多栏位填着「无」。在整个《魔兽世界》营运期间,我们改进了数据设计并且将我们的资料库数据标准化。今天,同样的数据会这样被分开:

表格名称:法术

ID

名称

1

火球术

2

冰霜箭

表格名称:法术效果

ID

法术 ID

效果

伤害

1

1

伤害

30

2

2

伤害

25

表格名称:光环效果

ID

法术 ID

光环

伤害

1

1

定期造成伤害

3

2

2

缓速

在这张表格中,浪费的栏位减少了,而法术也不再被限制只有三个效果。但在我们可以读取任何资料库数据前,我们需要把旧数据转成新的格式。这不只限于法术,几乎所有遊戏系统 (包括物品、生物、玩家角色、生成、 AI 等等) 都有在资料库格式上的改变。


展望未来

我们正在做的所有工作最终会允许我们在一个经过更多最佳化并且更稳定的平台上重现原版的经典体验,帮助我们避免延迟与稳定性的问题。其他现代化的改良包括现代的反作弊/机器人侦测、消费者服务以及与 Battle.net 的整合,以及所有其他合理的玩家导向改良。

我们很期待面对前方的挑战并与你分享对经典遊戏的热情;每一行我们签入资料转换的程式码都都让《魔兽世界:经典版》更接近你—和我们—所希冀的原版体验。感谢你加入这趟旅程。

版权声明:本作品采用 CC BY-NC-SA 4.0 进行许可。除非注明,否则均为 蓝枫博客 原创文章,转载或复制请注明出处。
THE END
分享
二维码
打赏
海报
《魔兽世界:经典版》将采用 1.12「战鼓再响」为基础
你好啊!《魔兽世界:经典版》的开发正在进行中,而我们非常兴奋能分享一些我们面对的挑战,以及我们如何克服它们。如同我们在上次的 BlizzCon 提过的,重现经典遊戏不是一个线性的工作,对我们而言很重要的是要花时间跟努力把事情做对-包括检视遊戏版本、资讯、工程与数字,并且仔细确认我们在这些年间做的所有变动。肯定的是:《魔兽世界:经典版》团队正在努力实现它,而我们已经到了可以分享一些成果的时候。《魔兽世界:经典版》:最初雏型我们必须做出的第一个—也是最重要的其中之一,是决定要专注在哪个版本上。就像你
< <上一篇
下一篇>>