news 2026/10/31 7:12:49

从《影之刃零》制作人访谈看游戏 AI:攻击欲望、反应延迟与难度设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从《影之刃零》制作人访谈看游戏 AI:攻击欲望、反应延迟与难度设计

▒ 目录 ▒

  • 从《影之刃零》制作人访谈看游戏 AI:攻击欲望、反应延迟与难度设计
    • 1️⃣ 把“难度”拆成几个能调试的问题
    • 2️⃣ 反应延迟应当作用于决策信息
    • 3️⃣ 攻击欲望需要一个明确的触发规则
    • 4️⃣ 群战还需要协调谁先出手
    • 5️⃣ 一段最小决策伪代码
    • 6️⃣ 怎么判断调参是否有效
    • 7️⃣ 给玩家留下可以理解的应对机会
    • 📖 参考资料

从《影之刃零》制作人访谈看游戏 AI:攻击欲望、反应延迟与难度设计

同一个 BOSS,怎么让刚上手的玩家打得过,又让熟练玩家觉得有挑战?

血量和伤害很容易进入配置表。但如果敌人的招式、节奏和应对方式完全一样,提高数值也可能只是把一场战斗拖得更长,把每次失误变得更贵。

《影之刃零》制作人梁其伟在 AUTOMATON 的采访中谈到,简单难度会调整敌人的进攻积极性和反应速度,并希望玩家依然能体验完整的交锋。这给开发者提供了一个值得讨论的切入点:除了改数值,还能调整敌人给玩家留下的行动空间。采访原文

下文的参数、流程与伪代码是独立的教学设计,不是《影之刃零》的源码、实测数据或内部架构披露。这里的游戏 AI 指敌人行为控制,不预设使用机器学习。

《影之刃零》官方展示画面。图片来源:PlayStation 游戏页面,游戏开发商 S-GAME。用于呈现战斗场景,不代表本文教学参数的实测效果。

1️⃣ 把“难度”拆成几个能调试的问题

先考虑一个最小战斗场景:玩家与敌人近身对峙,敌人可以接近、等待、攻击和恢复。暂时不做复杂连招,先回答三个问题。

敌人多久主动发起一次攻击?玩家改变位置后,敌人多久才据此作出新决策?多个敌人同时在场时,允许多少个一起进攻?

这些变量影响的是不同的体验。第一项决定压力是否持续;第二项影响敌人的应对是否及时;第三项决定玩家是否需要同时处理多个方向的威胁。把它们全部压成一个“难度倍率”,很难知道玩家究竟被什么难住了。

下面这组数值只用于说明调参方向,不能直接当作可用的平衡方案:

参数练习档示例挑战档示例需要观察的体验
新观察生效延迟0.45 秒0.20 秒玩家变招后,敌人是否过早应对
攻击结束后的最短等待1.20 秒0.60 秒玩家是否有恢复和反击机会
群战最大进攻人数1 人2 人不同方向的威胁是否还能辨认

这里刻意没有同时修改血量和伤害。第一轮实验只改行为参数,比较容易判断变化来自哪里。真正制作游戏时,还要结合攻击距离、动作时长、场地和玩家能力重新确定数值。

2️⃣ 反应延迟应当作用于决策信息

假设玩家在时间 t 向左闪避。如果敌人在同一次更新里立即利用这个结果切换成最优追击,玩家可能觉得自己的选择没有意义。

一个适合教学的处理方法是:保存带时间戳的观察,等它足够“旧”以后,才允许决策系统使用它。这样限制的是敌人获取新信息并采取行动的速度,而不是把整套攻击动画播放得更慢。

两者差别很大。减慢动画会改变攻击前摇、命中时间和观感;延迟决策则可以保留原有动作的速度,只让敌人稍晚开始应对新的局势。

但延迟也不是越大越好。如果敌人长期根据过期位置追击,会像在攻击空气。因此,行为选择可以使用延迟观察,移动碰撞、导航安全等底层约束仍需及时处理。不同信息不必采用同一个更新策略。

3️⃣ 攻击欲望需要一个明确的触发规则

“更积极”不能只停留在策划描述里。对最小原型,可以先用攻击结束后的等待时间表示:敌人完成一次攻击并恢复后,至少等待一段时间,再允许下一次进攻。

这是一种简化表达,攻击欲望还可能由距离、资源、受击情况和战术目标共同决定。原型阶段先把一个因素做清楚,比一开始叠加许多随机权重更容易调试。

尤其要小心逐帧随机。例如每次更新都执行“10% 概率攻击”,在更新频率变化时,每秒得到的判定机会也会变化。若要引入随机等待,可以在进入等待状态时抽取一次时间,然后按经过的秒数倒计时;固定频率的决策更新也是一种可选办法。

4️⃣ 群战还需要协调谁先出手

把单个敌人调得很克制,不代表五个这样的敌人围上来仍然合适。

可以在教学原型里加入一个共享的进攻名额管理器:敌人准备攻击前申请名额;拿到名额才能开始;攻击完成或被打断后归还。没有名额的敌人继续移动、观察或摆架势。

这个方法控制的是同时进攻的人数,不会自动解决所有群战问题。两次攻击即使都符合人数上限,也可能在很短时间内接连命中;屏幕外敌人的攻击也可能缺乏提示。还需要观察攻击之间的时间间隔、镜头可见性,以及玩家是否有足够的逃离空间。

5️⃣ 一段最小决策伪代码

下面只展示决策顺序。它省略了寻路、动画、命中检测和事件队列,也不对应任何特定引擎 API。

进入战斗(now): next_attack_time = now 清空历史观察;初始化为未持有进攻名额 每次更新(now): 记录当前可感知的战场信息及时间戳 observation = 取时间不晚于 now - reaction_delay 的最新观察 如果当前动作尚未结束: 继续执行已承诺的动作 返回 如果没有可用观察: 等待 返回 如果 observation 中目标不在攻击范围: 根据观察选择接近目标,移动仍遵守实时碰撞约束 返回 如果 now < next_attack_time: 保持距离或等待 返回 如果共享管理器未能原子地分配进攻名额: 调整站位 返回 开始攻击并标记持有名额 攻击与恢复阶段结束,或动作被打断(now): 如果持有名额: 释放名额并清除持有标记 next_attack_time = now + attack_rest 退出战斗或死亡: 如果持有名额: 释放名额并清除持有标记

这里有两个容易漏掉的细节。

第一,这里的“攻击结束”包括动作恢复阶段;等待时间从完整攻击动作结束或中断时开始计算。如果从攻击开始时计算,长动画可能吃掉全部等待时间,敌人恢复后马上又能出招。

第二,名额必须在打断、死亡、离场等路径上释放,而且只释放一次。否则群战管理器可能一直认为有人正在攻击,其他敌人就再也拿不到名额。正式实现还需要处理攻击启动失败时的回收。

6️⃣ 怎么判断调参是否有效

搭一个固定场景,先使用同一名敌人、同一套动作和同样的伤害。分别记录玩家受击、敌人开始进攻、攻击结束和玩家反击的时间。每次只调整一类参数,再比较几轮结果。

不要只盯着通关率。玩家虽然能赢,却可能大部分时间都在等敌人动;也可能连续受击后根本没有重新控制局面的机会。可以一起看以下问题:

  • 敌人两次进攻之间,玩家实际有多少可操作时间?
  • 玩家受击后,下一次威胁是否来得过早?
  • 群战时,命中玩家的攻击有多少来自看不到的方向?
  • 玩家能否说清楚自己为什么挨打,以及下一次准备怎样应对?

这些是测试观察项,不是本文已经得到的测试结果。示例流程还应检查首次进入战斗没有历史观察、攻击中断后归还名额、敌人离场释放资源,以及不同更新频率下等待时间是否一致。

对于新手与熟练玩家,要分别收集反馈。同一套等待时间,对新手可能刚够辨认动作,对熟练玩家却可能显得拖沓。

7️⃣ 给玩家留下可以理解的应对机会

从这个原型出发,下一步可以加入不同攻击距离、带提示的变招,以及队友之间的进攻协调。每增加一种行为,都要观察玩家是否还能理解它。

“更聪明”并不等于在每个瞬间都选择数学上最优的动作。一个敌人可以作出有效的应对,也需要通过动作和节奏让玩家看懂局势。难度设计值得反复调整的,正是这段从看见威胁到作出选择的时间。

📖 参考资料

  • AUTOMATON,《影之刃零》制作人采访 BOSS数量远不止30个 打不过别急着练技术(2026-10-09) https://automaton-china.com/all/article/interview/20261009-30770-ying-zhi-ren-ling-zhi-zuo-ren-cai-fang/

  • PlayStation,《影之刃零》官方游戏页面(配图来源) https://www.playstation.com/zh-hant-hk/games/phantom-blade-zero/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/31 7:12:30

机器学习入门:前置知识配套数据集与特征标签详解

简介&#xff1a;这份数据集面向刚接触机器学习、需要动手练习数据处理的初学者与进阶学习者&#xff0c;围绕「机器学习前置知识」整理&#xff0c;帮助读者在正式建模前熟悉真实数据的读取、清洗与探索流程。压缩包共6个文件&#xff0c;以csv为主&#xff0c;另有json与h5格…

作者头像 李华
网站建设 2026/10/31 7:11:49

Ubuntu 18.04 + Hadoop 3.1.3 伪分布式环境搭建实战

简介&#xff1a;本资源是面向大数据初学者的入门级实验指导文档&#xff0c;适用于高校计算机、数据科学相关专业学生及转行学习者&#xff0c;旨在解决Linux环境搭建与Hadoop基础操作能力缺失的问题。文档系统覆盖三大核心环节&#xff1a;Windows平台下VirtualBox虚拟机安装…

作者头像 李华
网站建设 2026/10/31 7:10:11

802.11 MAC层机制与WiFi抓包调优指南

简介&#xff1a;《wifi 基础知识讲解.doc》面向无线网络入门者、网络运维初学者及准备相关面试的读者&#xff0c;系统梳理WLAN与Wi-Fi的基础概念&#xff0c;可用于课程复习、实验环境搭建前的概念预热与知识查漏。文档先从有线与无线网络差异切入&#xff0c;说明半双工通信…

作者头像 李华
网站建设 2026/10/31 7:09:10

仿真救援多智能体:世界模型、任务分配与路径规划实战

简介&#xff1a;Robocup仿真救援代码面向参加RoboCup Rescue仿真救援竞赛的队伍&#xff0c;以及希望了解救援机器人软件架构的学习者&#xff0c;围绕虚拟灾害场景中的自主决策、搜索导航、环境危险评估与任务执行&#xff0c;提供可研读的代码样本。压缩包共43个文件&#x…

作者头像 李华
网站建设 2026/10/31 7:08:53

C++深浅拷贝彻底讲透!90%新手崩溃的内存BUG根源

深浅拷贝是 C入门最大拦路虎&#xff0c;也是面试必考高频题。很多新人写自定义类、动态内存&#xff0c;程序随机崩溃、双重释放、内存错乱&#xff0c;99% 的根源都是深浅拷贝没有搞懂。一、什么是浅拷贝如果你没有手动写拷贝构造函数、赋值运算符重载&#xff0c;编译器会默…

作者头像 李华