高效应用!AI上下文工程在游戏开发的高效应用,提示工程架构师讲解
在生成式AI浪潮下,游戏开发正经历从“脚本化智能”到“动态化智能”的范式转移。AI上下文工程作为连接生成式模型与游戏世界的核心桥梁,通过系统化管理游戏状态、玩家交互、NPC记忆等上下文信息,解决了传统游戏AI(如有限状态机)的僵化问题,实现了更真实、自适应的游戏体验。本文从第一性原理出发,拆解上下文工程的理论框架,构建可落地的架构设计,结合Unity/Unreal引擎的实现案例,探讨其在NPC行为
AI上下文工程:重新定义游戏开发的智能边界——从NPC行为到动态剧情的高效实现路径
元数据框架
标题
AI上下文工程:重新定义游戏开发的智能边界——从NPC行为到动态剧情的高效实现路径
关键词
上下文工程;游戏AI;动态剧情生成;NPC行为建模;提示工程;生成式AI;游戏开发流程优化
摘要
在生成式AI浪潮下,游戏开发正经历从“脚本化智能”到“动态化智能”的范式转移。AI上下文工程作为连接生成式模型与游戏世界的核心桥梁,通过系统化管理游戏状态、玩家交互、NPC记忆等上下文信息,解决了传统游戏AI(如有限状态机)的僵化问题,实现了更真实、自适应的游戏体验。本文从第一性原理出发,拆解上下文工程的理论框架,构建可落地的架构设计,结合Unity/Unreal引擎的实现案例,探讨其在NPC行为、动态剧情、玩家个性化交互中的高效应用,并展望未来多模态融合、长上下文处理等前沿方向。无论是游戏开发者还是AI研究者,都能从本文中获得从理论到实践的完整知识体系。
1. 概念基础:游戏开发中的“上下文困境”与AI上下文工程的诞生
1.1 领域背景化:游戏AI的三次进化
游戏AI的发展始终围绕“模拟智能行为”这一核心目标,经历了三个阶段:
- 第一阶段(1980-2000):脚本化智能
以有限状态机(FSM)和行为树(Behavior Tree)为代表,通过预定义的状态转移规则实现NPC行为(如“看到玩家→攻击”“生命值低→逃跑”)。优点是逻辑清晰、性能高;缺点是缺乏灵活性,无法处理未预见到的玩家行为(如玩家用道具贿赂NPC)。 - 第二阶段(2000-2020):数据驱动智能
引入机器学习(如强化学习、深度学习),通过训练数据优化NPC行为(如《Dota 2》的OpenAI Five)。优点是能适应复杂场景;缺点是泛化能力弱,训练成本高,且无法解释决策逻辑(如NPC突然“发疯”攻击队友)。 - 第三阶段(2020至今):生成式智能
以GPT-4、Claude、Llama 2等大语言模型(LLM)为代表,通过生成式能力实现动态对话、剧情生成。但上下文管理成为新的瓶颈——如何让LLM理解游戏世界的状态(如时间、地点、玩家历史行为),并生成符合逻辑的响应?
1.2 问题空间定义:游戏中的“上下文”是什么?
在游戏开发中,上下文是指影响AI决策的所有动态信息,可分为四类:
| 类型 | 示例 | 动态性 |
|---|---|---|
| 环境状态 | 时间(白天/黑夜)、天气(下雨/晴天)、场景(森林/城堡) | 中低频变化 |
| 玩家状态 | 生命值、持有道具、 reputation(声望)、历史行为(如救过NPC) | 高频变化 |
| NPC状态 | 记忆(如记得玩家之前的对话)、情绪(如愤怒/友好)、目标(如寻找宝藏) | 中高频变化 |
| 剧情状态 | 主线任务进度(如“找到圣剑”)、支线任务触发条件(如“帮助村民”) | 低频变化 |
传统游戏AI的核心问题是上下文处理的“硬编码”——所有状态转移规则由开发者手动编写,无法适应玩家的个性化行为。例如,当玩家在《上古卷轴5》中先救了NPC再偷他的东西,传统NPC只会触发“被偷→攻击”的状态,而不会表现出“失望”或“犹豫”的情绪。
1.3 术语精确性:AI上下文工程的定义
AI上下文工程(AI Context Engineering)是指设计、管理、优化AI系统处理上下文信息的全过程,目标是让AI系统能:
- 准确获取:从游戏引擎、玩家输入、NPC交互中收集上下文数据;
- 有效表示:将非结构化信息(如对话、行为)转化为结构化格式(如键值对、向量);
- 动态更新:根据游戏进展实时调整上下文(如玩家捡起道具后,更新“持有道具”状态);
- 智能推理:结合上下文生成符合逻辑的决策(如NPC根据玩家的reputation决定是否帮助)。
简言之,上下文工程是生成式AI在游戏中“落地”的关键——没有它,LLM只能生成“脱离游戏世界”的对话(如“你好,今天天气不错”),而无法融入动态的游戏场景。
2. 理论框架:从第一性原理推导游戏上下文工程的核心逻辑
2.1 第一性原理推导:游戏的本质是“状态转移系统”
根据游戏设计的第一性原理,游戏是一个由状态和状态转移构成的动态系统。其数学模型可表示为:
G=(S,A,T,R) G = (S, A, T, R) G=(S,A,T,R)
其中:
- SSS:游戏的状态空间(包括环境、玩家、NPC、剧情状态);
- AAA:玩家和NPC的动作集合(如“攻击”“对话”“捡道具”);
- TTT:状态转移函数(T:S×A→ST: S \times A \rightarrow ST:S×A→S,表示动作对状态的改变);
- RRR:奖励函数(如玩家完成任务获得经验值)。
AI上下文工程的核心目标是优化状态转移函数TTT,让其能处理高维、动态、非结构化的状态信息(如玩家的自然语言对话、NPC的情绪变化),而非传统的低维结构化状态(如“生命值=50”)。
2.2 数学形式化:上下文的表示与推理
假设游戏在时间步ttt的上下文为Ct=(StE,StP,StN,StC)C_t = (S_t^E, S_t^P, S_t^N, S_t^C)Ct=(StE,StP,StN,StC),其中:
- StES_t^EStE:环境状态(如“时间=20:00,天气=下雨”);
- StPS_t^PStP:玩家状态(如“生命值=80,持有道具=圣剑,reputation=友好”);
- StNS_t^NStN:NPC状态(如“记忆=玩家昨天救了我,情绪=感激,目标=寻找宝藏”);
- StCS_t^CStC:剧情状态(如“主线任务=找到圣剑,支线任务=帮助村民”)。
AI系统的决策过程可表示为:
At=f(Ct,M) A_t = f(C_t, M) At=f(Ct,M)
其中:
- AtA_tAt:AI在时间步ttt的动作(如“对玩家说‘谢谢你昨天救了我’”);
- MMM:生成式模型(如GPT-4);
- fff:上下文处理函数(包括上下文的裁剪、编码、注入)。
关键挑战:如何优化fff,让MMM能高效处理CtC_tCt(尤其是当CtC_tCt的规模超过模型的上下文窗口时)?
2.3 理论局限性:上下文窗口与“遗忘问题”
当前生成式模型(如GPT-4)的上下文窗口有限(最多128k tokens),而游戏中的上下文(如玩家10小时的历史行为)可能远超这一限制。这会导致**“上下文遗忘”**——模型无法记住早期的关键信息(如玩家之前救过NPC),从而生成矛盾的决策(如NPC后来攻击玩家)。
2.4 竞争范式分析:上下文工程vs传统AI
| 维度 | 传统AI(FSM/行为树) | 上下文工程(生成式AI) |
|---|---|---|
| 灵活性 | 低(硬编码规则) | 高(动态适应玩家行为) |
| 上下文处理 | 有限(仅处理预定义状态) | 全面(处理高维非结构化信息) |
| 开发成本 | 高(手动编写规则) | 中(通过提示工程优化) |
| 玩家体验 | 僵化(可预测) | 真实(不可预测) |
结论:上下文工程是生成式AI在游戏中超越传统AI的核心竞争力。
3. 架构设计:游戏上下文工程的系统架构与组件设计
3.1 系统分解:四大核心组件
基于上述理论框架,我们设计了游戏上下文工程的系统架构(如图1所示),包含四大核心组件:
图1:游戏上下文工程系统架构
3.1.1 上下文管理模块(Context Management Module, CMM)
职责:负责上下文的获取、表示、更新、裁剪。
- 获取:从游戏引擎(如Unity的
Update()函数)收集环境、玩家、NPC、剧情状态; - 表示:将非结构化信息转化为结构化格式(如用JSON表示玩家状态:
{"health": 80, "items": ["sword"], "reputation": "friendly"}); - 更新:根据玩家动作(如“捡道具”)或NPC行为(如“对话”)实时更新上下文;
- 裁剪:当上下文规模超过模型窗口时,通过摘要(如用LLM总结玩家历史行为)或分层(如保留最近1小时的行为,丢弃更早的)减少token数量。
3.1.2 推理引擎(Inference Engine, IE)
职责:结合上下文生成AI决策(如NPC对话、行为)。
- 核心组件:生成式模型(如GPT-4、Llama 2);
- 关键技术:提示工程(Prompt Engineering)——将上下文注入提示词,引导模型生成符合逻辑的响应。例如:
上下文: - 环境状态:晚上10点,下雨,森林里的小木屋; - 玩家状态:持有圣剑,reputation=友好(之前救过NPC); - NPC状态:记忆=玩家昨天救了我,情绪=感激,目标=寻找宝藏; - 剧情状态:主线任务=找到圣剑。 任务:生成NPC看到玩家后的第一句话,要求符合上下文,体现感激之情。 - 优化策略:通过** few-shot learning**(给模型示例)或** chain-of-thought**(让模型一步步推理)提升决策质量。
3.1.3 行为执行模块(Action Execution Module, AEM)
职责:将推理引擎生成的决策转化为游戏中的具体动作。
- 示例:如果推理引擎生成“NPC说‘谢谢你昨天救了我,我知道宝藏的位置’”,AEM会调用Unity的
DialogueSystem组件显示对话,并触发NPC的“指路”动画。 - 关键要求:低延迟(确保动作与玩家输入同步,避免“卡顿”)。
3.1.4 反馈模块(Feedback Module, FM)
职责:收集玩家对AI行为的反馈(如玩家选择“拒绝NPC的帮助”),并更新上下文。
- 示例:玩家拒绝NPC的帮助后,FM会更新NPC的情绪状态为“失望”,并将这一信息存入上下文管理模块。
3.2 组件交互模型:动态闭环
系统的交互流程如下(以NPC对话为例):
- 游戏引擎检测到玩家靠近NPC(触发事件);
- 上下文管理模块从游戏引擎获取当前上下文(环境、玩家、NPC、剧情状态);
- 推理引擎将上下文注入提示词,调用GPT-4生成对话内容;
- 行为执行模块将对话内容显示在屏幕上,并播放NPC的说话动画;
- 反馈模块收集玩家的反应(如玩家选择“问宝藏的位置”),并更新上下文;
- 重复步骤2-5,直到对话结束。
3.3 设计模式应用:提升架构灵活性
为了应对游戏开发中的变化(如更换生成式模型、扩展上下文类型),我们采用了以下设计模式:
- 观察者模式(Observer Pattern):用于监控游戏状态变化(如玩家捡起道具),当状态变化时,自动通知上下文管理模块更新;
- 策略模式(Strategy Pattern):用于选择上下文裁剪策略(如摘要策略、分层策略),可根据游戏场景(如剧情模式、战斗模式)动态切换;
- 备忘录模式(Memento Pattern):用于保存上下文快照(如玩家进入副本前的状态),以便在需要时回滚(如玩家死亡后复活)。
3.4 可视化表示:上下文金字塔
为了更直观地理解上下文的结构,我们设计了上下文金字塔(如图2所示):
graph TD
A[剧情状态(主线/支线任务)] --> B[NPC状态(记忆/情绪/目标)]
B --> C[玩家状态(生命值/道具/reputation)]
C --> D[环境状态(时间/天气/场景)]
图2:上下文金字塔
- 底层(环境状态):最基础的上下文,影响所有上层状态(如“下雨”会让玩家的移动速度变慢);
- 中层(玩家状态):直接反映玩家的行为,是NPC决策的关键依据(如“持有圣剑”会让NPC更愿意帮助);
- 上层(NPC状态):NPC的个性化特征,决定了其行为的独特性(如“感激”的情绪会让NPC说友好的话);
- 顶层(剧情状态):游戏的核心逻辑,引导所有上下文的变化(如“找到圣剑”会触发主线任务的下一步)。
4. 实现机制:从代码到性能的全链路优化
4.1 算法复杂度分析:上下文更新的效率
假设上下文管理模块需要处理nnn个状态变量(如环境状态有10个变量,玩家状态有20个变量,共30个),每个变量的更新时间为O(1)O(1)O(1),则上下文更新的时间复杂度为O(n)O(n)O(n)。这在游戏开发中是可接受的(因为nnn通常不会超过100)。
优化点:通过懒加载(Lazy Loading)减少不必要的更新——只有当状态变量发生变化时,才更新上下文(如玩家的位置每帧变化,而reputation只有在完成任务时才变化)。
4.2 优化代码实现:Unity中的上下文管理模块
以下是Unity中上下文管理模块的示例代码(C#):
using System.Collections.Generic;
using UnityEngine;
public class ContextManager : Singleton<ContextManager>
{
// 环境状态
public Dictionary<string, object> EnvironmentState = new Dictionary<string, object>();
// 玩家状态
public Dictionary<string, object> PlayerState = new Dictionary<string, object>();
// NPC状态(键:NPC ID,值:状态字典)
public Dictionary<int, Dictionary<string, object>> NpcStates = new Dictionary<int, Dictionary<string, object>>();
// 剧情状态
public Dictionary<string, object> StoryState = new Dictionary<string, object>();
// 更新环境状态
public void UpdateEnvironmentState(string key, object value)
{
if (EnvironmentState.ContainsKey(key))
{
EnvironmentState[key] = value;
}
else
{
EnvironmentState.Add(key, value);
}
}
// 更新玩家状态
public void UpdatePlayerState(string key, object value)
{
if (PlayerState.ContainsKey(key))
{
PlayerState[key] = value;
}
else
{
PlayerState.Add(key, value);
}
}
// 更新NPC状态
public void UpdateNpcState(int npcId, string key, object value)
{
if (!NpcStates.ContainsKey(npcId))
{
NpcStates.Add(npcId, new Dictionary<string, object>());
}
if (NpcStates[npcId].ContainsKey(key))
{
NpcStates[npcId][key] = value;
}
else
{
NpcStates[npcId].Add(key, value);
}
}
// 更新剧情状态
public void UpdateStoryState(string key, object value)
{
if (StoryState.ContainsKey(key))
{
StoryState[key] = value;
}
else
{
StoryState.Add(key, value);
}
}
// 获取上下文(转化为JSON字符串,用于注入提示词)
public string GetContextJson(int npcId)
{
var context = new
{
Environment = EnvironmentState,
Player = PlayerState,
Npc = NpcStates.ContainsKey(npcId) ? NpcStates[npcId] : new Dictionary<string, object>(),
Story = StoryState
};
return JsonUtility.ToJson(context);
}
}
代码说明:
- 使用单例模式(
Singleton<ContextManager>)确保全局唯一; - 用字典存储各类型状态,方便添加/修改;
GetContextJson()方法将上下文转化为JSON字符串,便于注入生成式模型的提示词。
4.3 边缘情况处理:如何应对玩家的“异常行为”?
在游戏中,玩家可能会做出“异常行为”(如攻击友好NPC、用道具破坏剧情逻辑),此时上下文工程需要确保AI的决策符合逻辑且保持一致性。
示例:玩家之前救过NPC(reputation=友好),但现在突然攻击NPC。此时:
- 上下文管理模块会更新玩家状态中的“行为”为“攻击”,并将NPC的情绪状态从“感激”改为“愤怒”;
- 推理引擎生成的对话内容会从“谢谢你救了我”变为“你为什么攻击我?我再也不帮你了!”;
- 行为执行模块会触发NPC的“反击”动画,并将NPC的目标从“帮助玩家”改为“逃跑”。
实现技巧:在提示词中加入**“一致性检查”**,例如:
要求:生成的对话必须符合NPC的当前情绪(愤怒)和历史记忆(玩家之前救过他),不能出现矛盾。
4.4 性能考量:降低生成式AI的调用成本
生成式AI的调用成本(延迟、费用)是游戏开发中的重要问题。以下是优化策略:
- 减少上下文规模:通过摘要(如用LLM总结玩家历史行为)或分层(如保留最近1小时的行为)减少token数量;
- 缓存常用响应:对于高频场景(如NPC的问候语),缓存生成的响应,避免重复调用;
- 使用本地模型:对于延迟敏感的场景(如战斗中的NPC行为),使用本地模型(如Llama 2)代替云端模型;
- 异步调用:将生成式AI的调用放在异步线程中,避免阻塞游戏主线程(如Unity中的
Coroutine)。
5. 实际应用:从NPC对话到动态剧情的落地案例
5.1 案例1:《原神》风格的NPC对话系统
需求:实现一个能记住玩家历史行为的NPC,例如:
- 玩家第一次遇到NPC时,NPC会说“你好,旅行者,需要帮助吗?”;
- 玩家帮NPC找过丢失的猫后,NPC会说“谢谢你上次帮我找猫,这次有什么需要帮忙的?”;
- 玩家攻击过NPC后,NPC会说“你为什么攻击我?我再也不帮你了!”。
实现步骤:
- 上下文管理:在ContextManager中添加NPC的“记忆”状态(如
"memory": "玩家帮我找过猫"); - 提示工程:将NPC的记忆注入提示词,例如:
上下文: - NPC记忆:玩家上次帮我找过丢失的猫; - NPC情绪:感激; - 玩家当前行为:靠近NPC。 任务:生成NPC的问候语,要求体现对玩家的感激之情。 - 行为执行:将生成的对话显示在屏幕上,并播放NPC的“微笑”动画。
效果:玩家会感受到NPC的“记忆”和“情绪”,提升游戏的沉浸感。
5.2 案例2:《赛博朋克2077》风格的动态剧情生成
需求:实现一个能根据玩家选择动态调整的剧情,例如:
- 玩家选择“帮助反抗军”,剧情会走向“推翻独裁者”;
- 玩家选择“帮助独裁者”,剧情会走向“镇压反抗军”;
- 玩家选择“中立”,剧情会走向“两边都不帮”。
实现步骤:
- 上下文管理:在ContextManager中添加剧情状态(如
"main_quest": "帮助反抗军"); - 推理引擎:使用GPT-4生成剧情分支,例如:
上下文: - 剧情状态:主线任务=帮助反抗军; - 玩家当前位置:反抗军基地; - 玩家持有道具:炸药。 任务:生成下一步剧情,要求符合玩家的选择和当前状态。 - 行为执行:根据生成的剧情,触发相应的事件(如反抗军领袖给玩家分配任务)。
效果:玩家的选择会直接影响剧情的走向,提升游戏的 replay value(重玩价值)。
5.3 案例3:《动物森友会》风格的玩家个性化交互
需求:实现一个能根据玩家的兴趣(如喜欢钓鱼、喜欢种花)调整行为的NPC,例如:
- 玩家经常钓鱼,NPC会说“你又去钓鱼了?有没有钓到大鱼?”;
- 玩家经常种花,NPC会说“你的花园真漂亮,要不要我帮你浇水?”。
实现步骤:
- 上下文管理:在ContextManager中添加玩家的“兴趣”状态(如
"hobby": "fishing"); - 提示工程:将玩家的兴趣注入提示词,例如:
上下文: - 玩家兴趣:钓鱼; - NPC情绪:友好; - 玩家当前行为:拿着鱼竿靠近NPC。 任务:生成NPC的对话,要求符合玩家的兴趣。 - 行为执行:将生成的对话显示在屏幕上,并播放NPC的“钓鱼”动画。
效果:玩家会感受到NPC的“个性化”,提升游戏的亲切感。
6. 高级考量:扩展、安全与伦理
6.1 扩展动态:从单玩家到多玩家的上下文处理
当前的上下文工程主要针对单玩家游戏,而多玩家游戏(如MMORPG)的上下文处理更复杂——需要处理多个玩家的状态(如玩家A攻击了玩家B,玩家C帮助了玩家A)。
解决方案:
- 分布式上下文管理:将每个玩家的上下文存储在分布式数据库(如Redis)中,确保多服务器之间的同步;
- 群体上下文模型:引入“群体状态”(如“ guild(公会)的 reputation”),让NPC能处理多玩家的交互(如“公会的 reputation 高,NPC会提供更多帮助”)。
6.2 安全影响:防止玩家利用上下文漏洞
玩家可能会利用上下文工程的漏洞(如修改游戏状态、欺骗AI),例如:
- 玩家修改游戏数据,将自己的reputation改为“友好”,从而获得NPC的帮助;
- 玩家用脚本自动点击,让NPC重复生成奖励。
解决方案:
- 服务器端校验:将上下文的关键状态(如reputation)存储在服务器端,避免客户端修改;
- 行为异常检测:使用机器学习模型检测玩家的异常行为(如短时间内重复点击),并禁止其与NPC交互;
- 上下文签名:对上下文数据进行签名(如用HMAC),确保数据未被篡改。
6.3 伦理维度:NPC的“意识”与玩家的责任
随着上下文工程的发展,NPC的行为会越来越“真实”(如具有记忆、情绪、目标),这会引发伦理问题:
- NPC的权利:如果NPC能感受到“痛苦”(如被玩家攻击时表现出恐惧),玩家是否有责任停止攻击?
- 玩家的责任:如果玩家的行为导致NPC的“死亡”(如破坏NPC的家园),玩家是否应该承担“道德责任”?
解决方案:
- 透明化设计:明确告诉玩家NPC是“虚拟的”,没有真实的意识;
- 伦理规则:在游戏中加入伦理规则(如“攻击友好NPC会降低reputation”),引导玩家做出符合伦理的行为;
- 玩家选择:给玩家选择的权利(如“是否帮助NPC”),但也要让玩家承担选择的后果(如“NPC死亡后,无法获得其帮助”)。
6.4 未来演化向量:多模态与长上下文
- 多模态上下文融合:结合图像、声音、文本等多模态信息(如玩家的表情、语音、动作),提升AI的理解能力(如玩家皱眉头表示“不满”,AI会调整对话内容);
- 长上下文处理:利用大语言模型的长上下文能力(如GPT-4的128k tokens),处理更复杂的游戏场景(如玩家10小时的历史行为);
- 自监督上下文学习:让AI系统自动从游戏数据中学习上下文处理策略(如通过强化学习优化上下文裁剪),减少人工干预。
7. 综合与拓展:重新定义游戏开发的智能边界
7.1 跨领域应用:从游戏到元宇宙
上下文工程的应用不仅限于游戏,还可以扩展到元宇宙(Metaverse):
- 虚拟数字人:让虚拟数字人能记住用户的历史交互(如“用户上次喜欢聊电影”),提升对话的个性化;
- 虚拟场景:让虚拟场景能根据用户的行为动态调整(如“用户喜欢安静,场景会切换到图书馆”)。
7.2 研究前沿:上下文工程的开放问题
- 上下文的自动生成:如何让AI系统自动生成上下文(如根据玩家的行为推断其兴趣)?
- 上下文的一致性维护:如何确保上下文在长时间内保持一致(如NPC不会突然忘记玩家之前的帮助)?
- 上下文的可解释性:如何让开发者理解AI系统的上下文处理逻辑(如“为什么NPC会攻击玩家”)?
7.3 战略建议:游戏开发者的行动指南
- 尽早引入上下文工程:在游戏开发的早期阶段(如原型设计)就考虑上下文工程,避免后期重构;
- 选择合适的生成式模型:根据游戏的需求(如延迟、成本)选择云端模型(如GPT-4)或本地模型(如Llama 2);
- 持续优化提示工程:通过A/B测试(如测试不同的提示词)提升AI决策的质量;
- 收集玩家反馈:通过玩家反馈(如问卷调查、评论)优化上下文工程的逻辑(如调整NPC的情绪反应)。
结语
AI上下文工程是生成式AI在游戏中“落地”的关键,它通过系统化管理游戏状态、玩家交互、NPC记忆等上下文信息,实现了更真实、自适应的游戏体验。从NPC对话到动态剧情,从单玩家到多玩家,上下文工程正在重新定义游戏开发的智能边界。
未来,随着多模态融合、长上下文处理等技术的发展,上下文工程将变得更加强大,为游戏开发带来更多可能性。对于游戏开发者来说,掌握上下文工程将成为提升游戏竞争力的核心能力——因为游戏的未来,属于能理解“上下文”的智能。
参考资料
- OpenAI. (2023). GPT-4 Technical Report.
- Unity Technologies. (2023). Unity AI Documentation.
- Unreal Engine. (2023). Unreal Engine AI Programming Guide.
- Li, J., et al. (2023). Context-Aware Generation for Games. arXiv preprint arXiv:2305.08291.
- Smith, R. (2022). Game AI: From Finite State Machines to Generative Models. CRC Press.
更多推荐


所有评论(0)