/s

但是,确实,我利用了 人工智能(若干if/then/else)来 生成(实例化新对象)一个 代理式工作流(通过目标导向的行动规划器)。

如果你玩过《遥远世界》(Distant Worlds)或者其他的游戏,那么,你知道玩家可以对高层命令做出反应,并且游戏中的代理/角色会执行这些命令。如果在我的游戏r/SineFine中也能重现这种感觉,那么会非常棒,游戏本身的目标是成为一个以相对论宇宙探索为主题的硬科幻游戏。

当时间延迟在以较低的速度传输时,存储物资在“银河仓库”中的即刻传输并不是合适的选择。在游戏中,星系之间的旅程可能需要多个世纪。

因此,GOAP是解决这些挑战的一个最好的方法。在视频中, Spaceship(紫色图标)的动作序列能够以高级命令(建造太空站)的形式执行。所有的内容是在飞船自身的能力下实时生成的。

示例中,视频中的飞船/代理是一种“建筑/运输”型机器人,可以识别系统中的资源点,并从中收集资源,进行行星之间的物资转移,并建造太空站。

为了使玩游戏有趣,资源点是在整个系统中分散的。在视频中,可以看到玩家选择在地球的卫星轨道上建造太空站。

GOAP试图将“世界”的初始状态变为所需状态,这个状态通过一组完成的条件表示(收集足够的资源,机器人位于月球轨道上)。然后它会尝试检查哪些操作可以执行。如果可以(例如,如果机器人不是在同一位置,那么无法收集资源),就将它们添加到操作队列中。

如果机器人能选取多种操作就会展开多条行动分支。如果当前目标计划无法将机器人带到所需的状态,那么就会被丢弃,然后尝试下一个可用的目标计划。为了提高机器人的计划质量,简单的启发式方法(避免机器人过度更改计划)被实施。比如,如果机器人原先想收集金属,那么接着要做的就是从火星收集金属再返回卫星轨道,这是一个糟糕的计划的例子。因此,如增加位置或中断动作都会被鼓励。即,优先考虑继续收集资源或者将资源装载到机器人内部,因此无需移动到其他地方。

一旦机器人在纸上“想明白”了一个计划,就会将该计划执行。当玩家在看游戏时,观察太空星系来到生机勃勃是理想的。当然,在故事中,人类已经灭绝,而玩家是人造意识。我想让机器人从一个行星运送到另一个。收集资源和运输物资是机器人会做的一半事,然而,我能想象有些需要解决的问题。比如说,在多个机器人之间的争斗。目前只会在开始时生成一个 “目标”(并将其分配给一尊机船),但是当前它没有检查能否继续执行(例如,如果一尊机器人在行进途中受损并且不能再移动或者收集资源)。

向全局目标单元机器人进行合奏将是下一步(从更简单的方面上来说,比如要求运输机向运输资源,而不是像“各自为政”的所有机器人都能做任何事那样,但如果不这样做,我可以想象解决方案空间会变得庞大很多)。

所以,你也将这些 代理式工作流 进入你的游戏中吗?