← 返回首页
《最终幻想15》:用深度学习自动生成敌人 AI
核心观点
「光会变强不够格当游戏对手」——深度学习量产敌人 AI,再用调整报酬与人工介入,把最优解拉回好玩的对手。
原标题It's Not Enough to Just Make Them Strong! I Tried Making Enemy AI for a 3D Action Game with Deep Learning
作者简介 上段達弘 · Luminous Productions 开发部程序员,参与《最终幻想15》同伴 AI 与照片 AI 的开发。
其他参考 CEDEC 官方页面(原) · 中译(台湾电竞新闻) · 中译(巴哈姆特 GNN)
让 AI 来制作敌人 AI
传统敌人 AI 靠脚本语言或参数表制作;Luminous Studio 的「AI Graph」让非程序员也能参与,但依然免不了需要编程能力的作业,而且每加一种怪物就要重复一次制作流程,成本可观——所以想到「用 AI 来制作敌人 AI」。
三个目标
- 不靠人手自动制作 AI:用深度学习的模拟代替人工编写。
- 保持自然且聪明的水准:看起来够水准的 AI 才算合格。
- 让企划人员之后能调整 AI:学习结果并非终点。
为什么必须留人工调整的口子
学到怪物动作最佳解的 AI 会毫无破绽、机械性地击垮玩家——敌人确实「很强」,但站在玩家立场一点也不好玩。作为玩家的对手,AI 必须刻意露出破绽承受攻击、以方便玩家攻略的方式行动,并在此前提下表现出勇猛或胆小的个性。
强化学习与 DQN
- 强化学习:正确行动给报酬(「造成伤害」「闪避攻击」),AI 在多次模拟中学会哪些行动被鼓励——像训练狗狗握手。
- DQN(Deep Q Network):除当下报酬外还会考虑 Q 值(将来可能获得的报酬),可能放弃眼前报酬、选择一段时间后收益更高的行动。
- 从随机出招起步,逐渐学会在适当时机攻击、调整站位让招式命中,越来越像合格的敌人;学习过程全自动,不需要人监视。
用调整报酬来塑造个性
只靠持续学习,会产出只会施展强力招式的无趣 AI——问题靠调整报酬解决:
- 只重复强力招式 → 设定「采取相同行动不给报酬」。
- 想要接近战 → 设定「缩短与对手距离时给予报酬」。
- 团体战攻势太猛 → 设定「伙伴 AI 攻击时自己攻击无报酬」,让 AI 学会等待时机。
这些调整不是写脚本也不是逻辑编程,劳动量远小于传统做法。
玩家角色 AI:控制器操作的难点
- 敌人 AI:先选行动、结束后再评价给报酬,DQN 每 2~3 秒执行一次即可。
- 玩家 AI:必须持续操作手柄,且按攻击键到出招有数毫秒空档,DQN 必须以 0.2 秒间隔不断执行。
- 连续操作让 AI 难以判断哪一步获得报酬,评价时必须回溯几秒前的行动。
- 现场演示 AI 操作角色与敌人战斗,双方动作自然,看不出是 AI 在操作。
学习之后的修正与局限
- 学习 5~7 小时即可得到出色结果;为缩短时间,把 12 层不同场地层层相叠、多组 AI 同时对战——像少年格斗漫画里的修炼场。
- 加入「变更行动价值即可调整行为、无需重新学习」的系统,让企划能对应更多细节。
深度学习 AI 的固有局限
- 行动带随机性:要制造「这个行动后必做那个动作」的演出时,仍必须使用脚本语言。
- 难以复现程序漏洞:调试时需要重现 bug 的场景,这正是 AI 做不到的。
- 只会应付学过的环境:把平地学成的 AI 丢进高低差激烈的地形就会束手束脚——目前只有让 AI 在各种环境学习这一条耗时的方法。
- 学习需要对手陪练:对手 AI 品质越高、学习结果越好,制作对手 AI 的劳动不能省略;双方从空白状态互相对战只会持续随机出招,完全派不上用场。
✦ 一句话总结:用强化学习自动量产敌人 AI,再用「调整报酬 + 人工介入」把机械的最优解拉回好玩的对手——光会变强,不够格当游戏敌人。