怎样让战斗从堆数值变成有机制
人和 AI 一起做游戏 · 第 11 篇

本篇依据截至 2026 年 8 月 2 日的开发记录,回顾 2026 年 6—7 月及 8 月初的开发过程。正文中的“当前”、数值、画面、候选资源与验证结论均指当时快照,不代表现售版本的状态。
上一篇把《Kibble Street TD》的战斗结果放进批量模拟后,我们看到了一个很容易误判的现象:某些关卡即使提高升级投入,胜率和时长仍然没有回到目标区间。这时候继续降低敌人生命,当然可能让数字暂时好看,但不一定能让战斗变得更值得玩。
单纯加血、加攻击,只会把同一种交战延长或压缩。真正的机制应该改变玩家面对战场时的问题:这个敌人为什么必须先处理?危险会在什么时候出现?我要现在出兵,还是保留能量?手里的道具应该救基地、稳住前线,还是留给下一次压力峰值?
因此这次没有先增加一批特殊敌人,而是把目标选择、状态效果、出现时间、预警、Boss 和战斗道具放进同一条因果链。每个环节都必须能说明:它让玩家多做了哪一个有意义的判断。
机制先从目标规则开始
战场上最基础的机制不是特效,而是单位究竟会攻击谁。规则如果含糊,玩家看到的就会是单位忽然转身、子弹临时拐向另一个目标,或者明明有敌人靠近,攻击却继续落在建筑上。这样的结果很难靠数值修正,因为玩家连失败原因都无法读懂。
《Kibble Street TD》在每个新的攻击周期里先寻找射程内的敌方单位,再寻找敌方防御塔,最后才是主基地。同类目标优先选择距离更近的一个,距离相同时才交给随机结果。

优先级只是第一层。单位一旦锁定一个仍然存活、仍在射程内的敌方单位,就会在冷却期间保持这个目标,不会因为另一个单位稍微靠近而来回跳转。正在对建筑执行的攻击也不会在动作中途被打断;新进入射程的单位会在下一个攻击周期参与选择。已经飞出的弹体继续记住自己的目标,目标移动时更新落点,目标提前死亡时则取消这次命中。
这些规则本身不华丽,却决定了后面的机制能不能成立。只有攻击行为稳定,玩家才可能通过站位、出兵时机和前后排关系预判结果。
七种状态使用同一种语言
目标规则确定以后,下一步才是让敌人拥有不同性质。《Kibble Street TD》目前使用七种状态:生命强化、攻击强化、防御护盾、快速突进、后排射程、自爆和移速降低。它们并不是七段互不相干的特殊代码,而是共用等级 1~10、以等级 5 为参考点的一套计算方式。

以等级 5 为例,生命强化提供 1.5 倍生命,攻击强化提供 1.5 倍攻击;防御护盾同时带来 18% 护盾、少量生命提升和速度代价;快速突进以生命下降换取 1.45 倍移动速度;后排射程增加攻击距离,同时牺牲生命和移动速度;自爆单位更脆、跑得更快,死亡时在 150 范围内造成按攻击计算的爆炸伤害;移速降低则用于控制组合强度。
这里刻意把“它看起来有多重要”和“它实际有多强”分开。普通、精英和 Boss 的级别只控制图标尺寸与角色展示比例,实际生命、攻击、护盾和速度全部来自明确列出的状态。这样既不会因为改大一个角色就暗中改动数值,也能在平衡调整时准确知道压力来自哪里。
机制需要出现顺序,而不是一次倒完
一套机制即使单独成立,集中出现也会变成噪音。玩家第一次看到护盾、冲锋、长射程和自爆时,如果还没理解各自的标记,失败后只会得到“敌人突然变强”的印象。
当前前二十关按学习节奏安排机制:第 3 关先出现快速突进,第 5 关引入防御护盾;第 8 关开始把护盾、后排和突进放进同一关的不同时间点;第 10 关用 Boss 做第一次组合检查。进入第 11 关以后,普通关卡给玩家留出恢复节奏,第 13、15、18 关再分别回访护盾、后排和自爆,第 20 关进行第二次 Boss 检查。

自爆机制曾经更早出现在第 8 关。单看功能,它已经可以触发;放回完整推进过程后,却与同一阶段的其他新信息挤在一起。后来把它移动到第 18 关,不是删除难度,而是把“第一次认识”和“组合应用”拆开。机制设计不只是决定有什么,也包括决定什么时候让玩家承担理解成本。
预警同样属于机制的一部分。普通波次与精英事件会提前进入提示队列,Boss 则有独立的标题和约三秒准备时间。没有提前量的高伤害只是意外;给出可识别信号以后,它才会变成玩家可以回应的威胁。
Boss 是明确组合,不是隐藏倍率
第 10 关的 Boss 在 96.5 秒出现。它使用坦克单位作为主体,同时配置生命强化等级 7、攻击强化等级 2、防御护盾等级 2、后排射程等级 2 和移速降低等级 6。这里没有额外叠加一层不可见的“Boss 数值翻倍”。

Boss 的两倍展示比例负责让玩家一眼识别阶段目标,五种状态负责实际战斗行为。生命更高但移动更慢,护盾提高承压能力,射程和攻击强化改变交战位置与处理时间。任何一项过强,都可以回到对应状态等级单独调整,而不是在多个倍率之间猜测。
这种显式组合也让同一套系统可以复用。第 20 关再次调用 Boss 结构时,关卡压力仍由当时的整体配置决定;机制层负责“它是什么”,数值层负责“这一次有多难”。两者可以一起验证,但不应该混成一个无法解释的总倍率。
道具是可选干预,不是基线答案
机制制造判断以后,玩家还需要有限的主动干预。《Kibble Street TD》当前有五种战斗道具:基地恢复 500 生命、恢复全部已召唤友军、冻结全部敌军 10 秒、对全部敌军造成 200 伤害并眩晕 3 秒,以及让能量恢复速度翻倍 30 秒。

每类道具没有额外的单局次数上限,但库存仍会实际扣减;如果库存还有剩余,完整效果或演出结束后再经过 180 秒冷却,才能再次使用。基地满血时不能浪费恢复道具,战场上没有存活敌人时也不能空放伤害道具。限制不是为了增加操作负担,而是让一次使用对应一个真实问题。
这些道具不会进入正式数值基线。上一期的无道具模拟已经说明,主线本身必须能够成立;道具负责让玩家在危险时刻改变策略,而不是替一条失衡曲线兜底。否则每次关卡失败都会被解释为“道具带少了”,真正的压力问题反而无法定位。
失败也要返回信息
机制关卡需要试验,试验就会失败。结算规则已经在上一篇展开,这里更重要的是它在机制回路中的作用:玩家即使没通关,也会依据真实推进获得受控的成长资源,再回到升级与下一次尝试。
这份进度不能多到让失败比胜利更有效率,也不能少到让玩家在升级门槛前失去行动空间。更关键的是,失败画面和战斗记录要能回答“被哪种压力击穿”:是没有及时处理后排,是让自爆单位靠近了密集前线,还是把道具交在了错误的时间点。只有失败既留下信息又允许再次决策,机制才不是一次性的惩罚。
人和 AI 分别负责什么
人负责定义机制要改变的判断:玩家应该看到什么信号,有多少反应时间,第一次学习与后续组合相隔多远,哪些干预属于策略,哪些已经变成必需品。人也负责试玩那些难以量化的部分,例如提示是否足够清楚、一次反制是否有成就感、连续几个高压事件是否造成疲劳。
AI 适合把规则展开成可以检查的组合:枚举目标切换条件,核对每个状态的等级与图标,扫描前二十关的出现时间,验证 Boss 没有隐含倍率,检查道具的目标、效果、冷却和不可用条件。规则修改后,再重复相同的专项验证,找出哪条因果链被破坏。

专项规则通过不等于整体体验完成。当前目标选择和命名合同可以独立验证,但完整战斗回归仍被既有的引导与警示检查阻断,所以这篇不会把“代码里存在机制”写成“战斗已经全部调好”。可追踪的规则只是让下一轮调整有明确起点。
如果你想开始
先不要设计十种特殊敌人。选一个最普通的单位,写清楚它让玩家多做哪一个判断,再补齐四件事:稳定的目标规则、可识别的视觉标记、出现前的提示,以及失败后能被理解的结果。让它在一关里单独出现,再安排一次回访,最后才与其他机制组合。
同时保留一条不使用临时道具的测试路径。机制如果只能靠消耗品绕过,问题通常不在玩家库存,而在出现时间、信号、强度或反制方式。先让因果链可以解释,再讨论怎样让它更难。
