用于具有多输入和多输出的游戏 AI 的 CoreML

Posted

技术标签:

【中文标题】用于具有多输入和多输出的游戏 AI 的 CoreML【英文标题】:CoreML for Game AI with multiple inputs and multiple outputs 【发布时间】:2019-01-21 01:28:22 【问题描述】:

我正在玩 2D 游戏,我希望 AI 敌人在某些情况下追逐/攻击/避开主角。

我一直在思考 AI 需要做什么:

    处理它可以看到的内容 向上、向下、向左、向右移动 攻击

鉴于 CoreML 的突出地位,我是否可以构建一个 *.mlmodel,它可以接收例如场景图片和其他一些输入,并输出五条消息,例如,上、下、左、右、攻击

我认为它的工作方式是,对于游戏的每一帧:

    获取输入 发送到 CoreML 进行处理 CoreML 返回所有 5 个输出 敌方 AI,操作这些输出。

这是 CoreML 可以处理的吗?

【问题讨论】:

【参考方案1】:

是的,Core ML 可以做到这一点。然而,这里真正的问题不是 Core ML,而是创建(训练)模型。

另外,对于你的游戏来说,只使用少量的敌方 AI 规则可能比使用机器学习模型更容易——而且速度更快。

【讨论】:

【参考方案2】:

虽然可以在适当的情况下训练机器学习模型来执行这些操作,但我相信 GameplayKit 更接近您的目标。

具体来说,你描述的追逐/攻击/回避动作与几年前"DemoBots" sample code project中的动作相似。那应该是一个很好的起点。 Deeper into GameplayKit with DemoBots WWDC video 也可能是一个很好的资源。

【讨论】:

以上是关于用于具有多输入和多输出的游戏 AI 的 CoreML的主要内容,如果未能解决你的问题,请参考以下文章

深度学习入门基础CNN系列——感受野和多输入通道多输出通道以及批量操作基本概念

具有插件和多租户支持的 ASP.NET MVC 应用程序以及单独的 AppDomains?

单线程和多线程语言的异步 I/O 如何工作?

单线程和多线程语言的异步 I/O 如何工作?

深度强化学习制作4399小游戏ai

具有一对多和多对多关系的 JOOQ pojos