笔者在国内一家最早且最资深的从事深度学习 AI 赋能游戏的公司里,从事游戏侧的接入开发工作。在这两年多的时间里,与 AI 侧的同事一同支持了国内外众多知名大型手游项目,并为其提供智能 AI 服务,由此得到了一些经验和总结。希望这些经验和总结能够让游戏行业的从业者,尤其是游戏程序开发人员,了解什么样的游戏框架适合 AI 训练。
在解答之前,需要解释深度学习 AI 在游戏中框架里的角色。可以认为深度学习 AI 最终会是一个特殊的“AI 客户端”,它像传统客户端一样,通过协议与服务器通讯交互。它具体做的事类似于游戏里实现“托管离线玩家”所用的行为树(Tree)。它利用神经网络的预测结果,将其映射为调用游戏逻辑所提供的基础行为节点,然后在合适的时机做出合理的行为。
强调游戏的服务器端需要有游戏的全套核心逻辑,原因在于 AI 端即便在没有客户端的情况下,也需要发送一个用户的操作,而服务器必须能够处理所有后续逻辑。比如说 AI 端发出向前跳跃的指令,服务端就得检测 AI 端的跳跃行为是否合法,比如是否有足够体力,是否被禁锢等情况。同时,服务端还要在真实的物理层面去支持,判断跳跃过程中是否被障碍物阻挡,以及落点在何处(如果有可选落点的话)。这些因素都表明,适合 AI 训练的游戏框架会以这样的方式来处理相关事宜。
目前已知的符合这种设计的游戏引擎是。采用该引擎的项目,基本上能够原生支持上述要求。
以下是更详细的描述:在强化学习训练中,作为环境一部分的游戏服务器,会同时启动大量的单局同时训练,数量可达 1000 局以上。并且它能够支持不同的纬度,以便更好地适配 AI 训练。