首页 > 代码库 > 复杂问题的简单抽象:魔兽世界中的兔子们

复杂问题的简单抽象:魔兽世界中的兔子们

无论是复杂精妙的 BOSS 战,还是丰富多样的任务系统,《魔兽世界》都让当时的玩家大开眼界,但《魔兽世界》里有不少新颖的游戏机制,都建立在一个出人意料的东西上面——那就是兔子。还是看不见、点不了的隐形兔子。

我们可以先从 BOSS 战聊起。

尽管不少玩家误以为“熔火之心”是《魔兽世界》的首个 40 人团队副本,但老资历的玩家都知道,“奥妮克希亚的巢穴”才是第一个正儿八经的团队副本,此后加入的成就“上痛!上诅咒!上钉刺!”和“最少扣你 50 DKP”都得梗于此。作为全游戏的第一个团本 BOSS,技能自然要高端大气上档次。

其中最让玩家印象深刻的技能莫过于:“奥妮克希亚深深地吸了一口气……”

在战斗的第二阶段,奥妮克希亚会飞到场地边缘,随后沿着对角线,喷吐出覆盖大半个场地的火焰,只有躲到对角线两侧的边缘区域才能免受伤害。由于该技能随机出现、位置飘忽、伤害高、范围广(现版本已缩小范围),如果没有火抗药剂或者自保技能,下场就是减员乃至团灭。

可《魔兽世界》当时的引擎,压根不支持 BOSS 对某个区域凭空施展 AOE 技能,BOSS 必须要指定一个目标后才能施放技能。那么,要怎么实现这个狂霸酷拽强、自顾自美丽的技能呢?

方法简单粗暴:在攻击路径上生成一大堆隐形的兔子,然后奥妮克希亚飞过去把兔子都喷死。换而言之,尽管你和你的 39 名队友都自认为是独挂龙头的高玩,但空中的奥妮克希亚高贵冷艳,如同冰山女神一般,根本就不屑于看地上的宅男一眼,她的目标只有那些可爱的小兔子。而没有躲掉技能被团长骂得狗血喷头的你,只是不巧被她雨露均沾了……

隐形兔子最广泛的运用之处,则是任务系统。

《魔兽世界》一开始并没有把任务作为贯穿始终的核心玩法,在设计之初也只考虑到了两种最原始的网文套路任务:杀人和夺宝。因此系统追踪任务进度的时候,只看两个参数:

1、是否杀死任务怪物(如:杀死狗头人)

2、背包里是否有任务道具(如:背包里是否有狗头人的头……不,徽记)

结果到了测试的时候,玩家表示任务好顶赞,无任务不魔兽,大伙儿这才乱了手脚,急忙把原计划里的 600 个任务,扩展到了上线时的 2400 个,任务种类也大幅提升。

这就引出了一个问题,杀人夺宝以外的任务类型要怎么追踪呢?比如最常见的任务类型之一“和某人谈一谈”就记录不下来。没任务记录,就意味着系统不知道这个任务完成与否,没法给出后续任务,任务链也就无从谈起。可要全是杀人夺宝也忒单调了,那还叙哪门子的事呐!

那么谁能拯救《魔兽世界》的任务系统呢?(卡德加:“我可以试一试!”众人:“滚!”)

面对废社危机,勇(tǎng)于(zhe)献(zhòng)身(qiāng)的兔子又一次登场了。

大家想出了一个绝妙的主意:当你点击 NPC 聊天时,游戏就会生成一只隐形兔子,然后把它干掉。这样一来,你的任务进度就以“杀死怪物”的形式记录下来了,真是卡德加般的天才创想!

其他类型的任务也全都仰仗隐形兔子:

如场景互动任务,就是你点击场景里的物件,系统生成一只兔子,然后把它干掉。

如护送任务,就是跟着 NPC 抵达指定地点,系统生成一只兔子,然后把它干掉。

如探索任务,就是你自己抵达指定地点,系统生成一只兔子,然后把它干掉。

如技能使用任务,就是你对 NPC 使用技能,系统生成一只兔子,然后把它干掉。

如物品使用任务,就是你在某地使用道具,系统生成一只兔子,然后把它干掉。

在 2005 年看起来无比高端的任务系统,就在兔子的尸体上被简单暴力地被搭建了起来。一直到 2011 年的“大地的裂变”资料片,《魔兽世界》才从程序层面改变了这一模式(其实还部分存在),顺便还引入了在右侧任务栏直接点击完成任务等新系统,从此挽救了无数兔子的生命。

回顾早年《魔兽世界》的任务史,这场对兔子的大屠杀依旧让人心有余悸。

请大家默哀三秒,一同缅怀为《魔兽世界》而牺牲的兔子们吧!

 

复杂问题的简单抽象:魔兽世界中的兔子们