从技能组合谈起:“标签云”与技能组合

>>>  創業先鋒 眾人拾柴火焰高  >>> 簡體     傳統

GameRes发布,文/ManiaHero

  看到标题可能很多人会觉得莫名其妙,那么就让我从《魔兽争霸3》的一个MOD游戏开始说起。

  以前在《魔兽争霸3》上有一张我很喜欢的MOD地图,叫做“守卫大虾”,与其他类似防守MOD最大的区别是玩家可以自由的选择自己想要使用的技能,你可以挑选游戏中所有和治疗相关的主动、被动技能成为一个超级大奶妈,或者把所有提高防御的技能都加在身上成为一个超级坦克,更受欢迎的玩法是挑选比如致命一击、分裂攻击等等被动攻击技能,杀怪如砍瓜切菜。不过这个游戏的平衡不是很好,技能都是《魔兽争霸3》原本所拥有的技能,组合后会产生一些问题。

  之后的一些游戏比如《DOTA》也拥有随机技能的模式,但与“守卫大虾”一样,拥有很多IMBA的技能组合,某些技能的组合甚至会让角色永远不会死掉,这样一来游戏就完全失去了乐趣。

  再后来我一直对这种玩家能够自由搭配技能的游戏感到格外有趣,因为组合的可能性几乎是无穷的。后来我玩了《大航海时代Online》和《EVE》,《大航海时代Online》中玩家能够同时拥有的技能个数有限,因此只能挑选专精于某一个方向的技能,但这游戏有着日式MMO的通病——需要无尽的挂机刷怪练级获取经验。《EVE》与《大航海时代Online》类似,但玩家没有同时拥有技能个数的限制,但它的完全靠时间获取技能等级的玩法使得新手永远追不上老手。《激战》是一个非常出色的游戏,玩家也是可以从好几百种技能库当中挑选技能,但我并没有玩过,虽然很多人认为这是一款神作,但我却认为一款PVP游戏如果完全无法知道对手拥有什么技能,PVP的体验是很差的。

  再后来到了《暗黑破坏神3》,也没能兑现当初承诺的几万种BUILD,实际上可行的BUILD每个职业几乎就只有那么几种。最顶级的职业套装只会强化某个方面的能力,相当于把玩家的后期玩法固定死了,《夺魂之镰》上线后,专门强化某个技能的史诗装备大量出现,更是加重了这一情况。

  后来我玩到了《流亡黯道》,这个游戏将技能组合又上升到了一个新的高度。它最大的特点是,技能的组合并不是机械的组合。上文提到的种种游戏,技能与技能之间都是完全互相独立的,联动关系相当之小,仅限于比如你选了一个火球术,又选了一个暴击被动,然后火球术的暴击就提高了这种水平——也就是说,技能之间要么干脆没有影响,要么仅仅是停留在数值水平的影响。而《流亡黯道》中,技能之间的影响却是机制性的,比如一个火球术一次能够发射一个火球,但选择了分裂攻击后火球术一次就能够发射三枚火球;而如果我选择了范围扩大,火球在命中后爆炸的溅射范围就会变大,如果我选择了穿透,火球会穿透数个敌人后才爆炸……并且,前面提到的这些效果是可以同时存在的!这样一来,单单一个火球术就有了千变万化的效果,更不用说其他的技能了!


  左图是《流亡黯道》中“焚烧”技能原本的效果,右面是在组合了相当多的被动技能之后的效果。以焚烧为核心技能是当前版本中相当热门的一个BUILD。

  这就是文章标题中所提到的“技能组合”部分。那么“标签云”又是什么东西呢?接下来就开始说这部分。

  《流亡黯道》由于技能组合机制过于丰富,因此它为每个技能打上了很多标签。


  这是《流亡黯道》中一个机制比较复杂的技能,“熔岩打击”。它的效果是对一个目标进行一次近战攻击,并且发射3个落点随机的熔岩球,掉落在地面时对目标点造成范围伤害。我们可以看到,这个技能的关键词是“火,投射物,攻击,AOE,近战”,那么所有对这些标签有加成的被动技能都会对其产生效果。比如多重投射物,技能本身是3个投射物(熔岩球),那么如果玩家使用了“低阶多重投射”,就会变成5个。又由于技能的近战伤害和投射物伤害都是火属性的,因此如果玩家用了“元素武器伤害”也会提高技能的伤害。同时由于熔岩球落地后造成的是AOE伤害,玩家如果有提高AOE半径的被动技能,也会对这个技能产生影响。

  在《流亡黯道》的技能组合机制与标签的基础上,我就想到了现在很常见的“标签云”的做法。玩家往往会组合很多强化某一方面的能力的被动技能,因此如果够类似于“标签云”一样,将最突出的标签用更明显的方式显示出来,会不会变得更有趣呢?


  这样我们在设计技能的时候,实际上可以从基础的机制的层面上将技能的各个方面抽象出来,成为一系列标签,然后再通过对标签的调整来改变技能的运作效果与数值。上文中提到过的火球,就是这样的:

  • 向前方发射一个火球,遇到敌人后爆炸并造成范围伤害。

  • 标签:火伤害,一般投射物,范围伤害


  每个标签其实都拥有着一系列的属性,比如“火伤害”这个标签可能拥有伤害数值、暴击率、抗性穿透率等等属性,而“投射物”标签会有飞行速度、加速度、生命时长、穿透几率“等等属性。对这些属性进行调整的被动技能都意味着对这个标签有着效果,如果是正面效果会让这个标签显示得更大,如果是负面效果会让这个标签显示的更小。

  这是个比较简单的例子,但是我们可以向其中加入更多的机制,比如:

  • 向前方发射一个不断前行的冰球,不断向四周发射冰锥,伤害路径上的敌人。

  • 标签:冰伤害,一般投射物,持续性,范围伤害,穿透


  没错,这个就是《暗黑破坏神》中的冰封球技能。冰封球本身是个投射物,拥有着投射物本身的诸多特性,除此之外它还会重复地进行发射冰锥的行为,我们姑且把这种重复进行某个事件的机制叫做“循环”,“循环”有着诸多属性,如触发间隔、持续时间等等,我们可以设计一些针对这些属性进行修改的技能,比如发射的频率加快一倍,但持续的时间会缩短一半等等。冰封球本身拥有一定宽度,会对路径上的敌人造成伤害,因此也算作范围伤害。冰封球本身和小冰锥都会穿透敌人,因此拥有“穿透”的标签。同时由于发射出的小冰锥也是投射物,因此如果有着对投射物进行修改的被动技能,会同时影响冰封球和冰锥!

  我们再看一个技能:

  • 发射一个沿着抛物线运动的炸弹,落地后爆炸并造成范围伤害,在飞行的过程中还会不断施放小型炸弹轰炸地面,造成较小的范围伤害。

  • 标签:物理伤害,抛物线投射物,范围伤害,持续性


  这个是《暗黑破坏神3》中恶魔猎人集束箭配上集束炸弹的效果。很多游戏中都会拥有按照抛物线移动的飞弹,一般以弓箭、迫击炮的形式存在于游戏中,在RTS中较为多见,在ARPG中比较少见,因为难以控制。

  再看一个技能:

  • 从天空中坠落一颗陨石,轰击地面,对击中的敌人造成伤害。被陨石击中的地方会陷入火海,在一段时间内对范围内的敌人持续造成火焰伤害。

  • 标签:火焰伤害,范围伤害,持续性,持续性伤害


  这个是《暗黑破坏神3》中法师的陨石术,效果分为两部分:召唤一个陨石轰击范围内的敌人造成伤害,然后轰击点产生一个范围效果,持续造成伤害。两部分都是火焰伤害,都是范围伤害,但第二部分还是持续性伤害。

  这时候我发现了,按照这个思路,实际上大部分依然只是在对数值进行调整,但并没有使得游戏的机制发生变化。如果要使游戏的机制发生变化,需要在更基础的层面模块化各种机制,然后使得能够事情发生质变。比如陨石砸地后的持续性伤害,和冰封球的持续性发射冰锥,有什么区别吗?我们是应该将其视作“持续性”标签的两种情况,还是干脆看成两种标签:持续性发射,和持续性伤害?

  我们可以将所有事件分成三部分来看:发生的时点,产生的效果,被效果影响的目标。

  • 时点:攻击前,攻击,攻击后,命中前,命中,命中后,死亡前,死亡,死亡后,暴击前,暴击,暴击后,周期性开始,周期性循环,周期性结束……

  • 效果:发射飞弹,造成伤害,进行治疗,减速,加速,阻止移动,恢复移动,杀死……

  • 目标:源单位,目标单位,源范围,目标范围


  我们再回过头来看冰封球这个技能。冰封球本身是个一般投射物,这只决定了它的移动方式,以及一些和移动相关的基本属性。它有三个效果:

  • 从自己向外周期性发射飞弹。(周期性循环-源单位-发射飞弹)

  • 周期性地伤害自己周围的敌人。(周期性循环-源范围-造成伤害)

  • 飞行一段时间后摧毁自己。(周期性结束-源单位-杀死)


  它发射出来的飞弹也是一般投射物,也拥有三个效果:


  • 命中敌人时对敌人造成伤害。(命中-目标单位-造成伤害)

  • 命中敌人后摧毁自己。(命中后-源单位-杀死)

  • 飞行一段时间后摧毁自己。(周期性结束-源单位-杀死)


  不难发现,所有的一般飞弹都拥有飞行一段时间后摧毁自己的效果。然后再看恶魔猎人扔炸弹的技能,这个炸弹本身是一个抛物线飞弹,与一般飞弹一样,这也只决定了它的移动方式和移动相关的基本参数。它拥有以下几个效果:

  • 从自己向外周期性发射飞弹。(周期性循环-源单位-发射飞弹)

  • 命中时造成范围伤害。(命中-目标范围-造成伤害)

  • 命中后摧毁自己。(命中后-源单位-杀死)


  类似的,所有的抛物线类飞弹也都有着落地后杀死自己的效果。陨石术的效果特殊一些:

  • 命中时造成范围伤害。(命中-目标范围-造成伤害)

  • 命中时创造一个不会移动的马甲飞弹。(命中-源单位-发射飞弹)

  • 命中后摧毁自己。(命中后-源单位-杀死)


  创造出来的这个不会移动的马甲飞弹有着以下的效果:

  • 周期性地伤害自己周围的敌人。(周期性循环-源范围-造成伤害)

  • 持续一段时间后消失。(周期性结束-源单位-杀死)


  这样我们就用“马甲单位”的方法实现了陨石术的效果。熟悉《魔兽争霸3》编辑器的同学应该对这个伎俩十分了解!

  按照这个架构,我们就可以设计一系列的技能,达到修改技能效果的目的。比如我们想让冰封球在死亡时爆炸发射出更多更多的冰锥,就可以追加以下效果:

  • 死亡前-源单位-发射飞弹。


  这个效果可以追加在所有的飞弹上,这样在这些飞弹死亡时都会再生成一系列的飞弹。再举个例子,假如我们想让一个一般飞弹命中敌人后继续飞行,就可以移除下面这个效果:

  • 命中后-源单位-杀死。


  如果我们想添加一个吸血效果,就可以追加以下效果:

  • 命中后-源单位-治疗。


  我们甚至可以为这些事件的发生再加入一个概率,比如:

  • 命中后-源单位-40%几率-治疗。


  那些必然发生的事件几率为100%,我们可以设置这个几率的最低值如5%。再比如一定几率秒杀敌人:

  • 命中后/周期性循环-目标/目标范围-5%几率-杀死/造成大量伤害。


  如果是范围效果的话,需要决定是一次检定所有目标的成功还是每个目标分别检定。

  大部分比较复杂的效果,我们都可以通过创建“马甲飞弹”的方式来实现。《魔兽争霸3》上的《DOTA》中有相当多的技能都是通过这种方式来实现的。不过小心,由于每个飞弹都是可以继续创造马甲飞弹的,小心死循环。

  有了一套实现技能的基础机制后,就可以提取出其中的共同点来当做标签使用了!我们能够知道冰封球的范围伤害与陨石术马甲单位的范围伤害并没有区别,持续发射飞弹与持续造成伤害也并没有区别,就可以用同样的标签,共享同样的标签修改效果了。

  接下来能够阻挡你的,只有想象力了!



GameRes游资网 2015-08-23 08:42:10

[新一篇] 手把手教你畫像素(二)—抖動(Dithering)

[舊一篇] 專訪 從獨立游戲節上的孩子們看一場屬于電子游戲的文藝復興
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表