塔防基础数值模型(二)

这一篇是《塔防基础数值模型(一)》的续集,有一些前文中提过的概念哦!^o^

本文讨论一些进阶的机制设计,可能会影响到怪物与防御塔的行为,从而产生不同的策略变化。

1,飞弹行为方式

飞弹的行为方式简单来说可以分两种,第一种是追踪目标的,第二种是不会追踪目标的。会追踪目标的飞弹没有碰撞体,只会与其锁定的攻击目标碰撞,只要其速度大于怪物的移动速度,就必然会命中,这类似于《魔兽世界》中的寒冰箭、闪电箭等法术。相当一部分塔防的飞弹使用的是这种飞弹。

不会追踪目标的飞弹会在每一帧,会一切敌方单位进行碰撞检测,若没有碰到任何怪物则有可能飞出屏幕外,这种飞弹更类似于2D射击游戏中的飞弹。《炫光塔防》中的飞弹都是这种类型。

第一种飞弹较为容易估算其数值的平衡性,尤其是当飞弹速度为无限大时(想象一下《星际争霸》中的人族枪兵)。这种飞弹一般移动速度都非常快,若较慢的话则可能永远追不上怪,或者在击中目标前怪物已经撞到了基地上。

第二种飞弹会增加游戏的策略性,虽然这会使得战斗结果更加难以预测。如何利用炮塔的索敌逻辑提高其命中率就成了玩家在部署这种防御塔时要面对的一个很重要的抉择。

第二种飞弹面临着一个问题。传统炮塔的索敌范围与射程是一致的,而这种飞弹的射程不一定会与传统炮塔的索敌半径吻合,这意味着子弹可能打到索敌半径之外的敌人。这种游戏动态有可能被滥用从而导致不可意料的结果。解决方案无非是修改索敌半径或飞行距离,我们先来看看第一种解决方案——使炮塔的索敌范围无限。显然这会大大降低游戏的难度,不过也有对策,比如己方的防御塔能够阻挡己方防御塔的射击。解决方案之二则是使子弹的伤害会衰减,就像现实生活中的子弹威力一样,飞的越远伤害越低。这个概念易于向玩家解释,但如何在画面上表现则是一个问题。

2,炮塔转动速率

玩过《EVE》的朋友会对这个概念相当熟悉。炮塔转动速率就是指炮塔在指定时间内旋转的角度。在一些游戏中,只有怪物处于炮塔正面时炮塔才能开火,还有一些游戏炮塔会不断尝试修正角度,但会在修正角度的时候一直尝试开火。在较为简易的塔防中这个值可以为无限大,即炮塔可以瞬间从一个角度旋转到另一个角度,但这会大大破坏游戏的沉浸感,因为这样一来就根本不像一个炮塔了。

当飞弹不会追踪目标时,炮塔转动速率对命中率的影响非常大。一般的炮塔并不像玩家一样会预判,如果采用了第二种飞弹,是否要结合炮塔转动速率以及怪物的移动速度来为塔制作预判AI是一个设计者需要思考的问题——实际上,我本人认为并不需要。如果设计者是为了提高炮塔命中率的话,不如干脆用第一种飞弹,不是吗?^o^

采用炮塔转动速率的设计也会使玩家面临一个战略选择,这与EVE类似:距离越近的怪线速度越大,越难以瞄准,因此如何尽量降低怪的线速度就成了玩家需要面对的一个重要抉择,而且学习成本很低,因为玩家很容易观测到持续射击的炮塔的旋转速率。《炫光塔防》在这方面做得相当不错。

3,飞弹的溅射半径

指的是飞弹在击中目标时会对多大范围内的敌人造成伤害。这是用于模拟现实中的巨大爆炸对多个附近的单位造成伤害的机制,已经在目前的RTS和塔防游戏中普遍采用了。其作用原理为飞弹在要造成伤害时,搜索自身周围一定范围内的所有敌方单位并对其造成伤害。

进阶一些的版本,会根据目标距离爆炸点的远近造成不同的伤害,这更加拟真,但很难让玩家直观的理解,因为爆炸半径的阶梯很难直观观测到,所以在塔防游戏中这种设计意义不大。

溅射半径是提高有效攻击规模的主要方式之一。但由于其会对溅射半径内的所有敌方单位造成伤害,因此怪物的密度越高其收益也越大。我们之前在制作《阿巴顿之战》的时候就遇到了这个问题,使得拥有溅射半径的防御塔成为了游戏后期的最优解。后来我们加上了伤害个数限制这一借鉴自《魔兽世界》的机制,但效果也不是很好——因为玩家依然很难观测到。《魔兽世界》这个机制本身也不是一个好解决方案。

我之前写过一篇关于溅射伤害的文章,见这里

我一直认为溅射半径并不是提高有效供给规模的好方法。一种代替手段是散弹,即用多个无溅射半径的小飞弹四散炸裂来造成多次伤害,这种做法不会像溅射半径一样由于半径过大而产生穿透效果,最大伤害值易于估算,而且玩家也容易理解。散弹可以有多种应用方式,可以直接从炮塔中发射而出,也可以当某个飞弹爆炸后产生一系列子飞弹,随着应用方式的不同能够诞生出种种花样的弹幕来哦!

还有一种代替方法是弹射,类似于《星际争霸》中飞龙的攻击方式,或者《魔兽世界》中的闪电链,或者《DOTA》中巫妖的大招。当能够产生弹射的距离小于怪物间距时,弹射就会发生,因此相当易于估算伤害值,而且伤害最大值可控。而且其还有一个重要意义是可以穿透,因为这种飞弹都是传统的第一类飞弹,因此与散弹结合也可以产生很有趣的动态。

4,飞弹的销毁条件

飞弹的销毁条件大多与碰撞相关,只不过碰撞的目标不同。如果我们用第一种飞弹,则飞弹都是在击中目标后销毁。当我们采取第二种飞弹时,它的销毁条件就变得花样更多——我们可以为其设定摧毁条件为碰撞过的敌方单位个数,这样一来这个飞弹就能像狙击枪子弹一样穿透很多个敌人并对其造成伤害了。

还有一种销毁条件为对目标点攻击,即飞弹到达了指定位置就会爆炸。这类似于飞机投弹,有可能当飞弹爆炸时,目标已经离开了飞弹出发时锁定的位置——就像《国王守卫军》中的大炮。这种销毁条件往往与溅射伤害搭配使用,但这很容易成为统治性策略,在《国王守卫军》中玩家很容易的就能把大量的怪物用军队抵挡在一个小范围内,然后靠大炮产生超高的有效供给规模而迅速摧毁怪物——说通俗点就是“拉到一起A了”。

销毁条件的不同也能产生大量的策略性。如果是穿透性子弹,玩家会尽力将其安排在弹道能够贯通所有敌方单位的位置上。可以参考《保卫萝卜》中的三叶草塔、导弹塔和飞机塔。

5,炮塔的最小射程

RTS中很多单位拥有最小射程的设计。当敌人距炮塔的距离小于最小射程时,炮塔无法对其发动攻击,就像敌人距炮塔的距离大于最大射程时一样。若我们采取了第二种飞弹,则最小射程会显得十分尴尬,因为飞弹在这个范围内也会与敌人碰撞,因此有最小射程的防御塔往往采用的是第一种飞弹。

有一个有趣的例子是植物大战僵尸中的胆小蘑菇,当他们的附近有敌人时它们就会缩进地里不敢攻击。这种机制也产生了相当有趣的动态,并且比生硬的最小射程机制更容易让玩家理解——不过在俯视图的2D塔防中这并不是很容易应用。

结合这些东西,我们能够产生出及其华丽的各种攻击方式来,但这并不是本文的目的。塔防是策略游戏,因而如何使得不同的攻击方式有其策略上的意义才是最重要的,单单的追求奇葩的攻击方式虽然也能吸引眼球,但长久看来并不能使得游戏更有趣。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s