你将如何模拟无限宇宙中的空间RTS

时间:2015-07-13 06:05:36

标签: artificial-intelligence space pc generated

我有一个游戏设计/编程问题。 假设我说我创建了程序生成的星系(2D),但你把它当作RTS。所以你可以在任何地方平移相机(至少你已经探索过并拥有单位/结构)。

现在,设计问题来了。将有其他AI对手或派系。现在,当玩家发现数十或数百个行星并发现其他派系时,你就无法将它们留在记忆中并处理它们的动作,否则游戏就会崩溃。

你会如何模拟他们的进步?他们的造船,扩建,他们之间的战争等。

在Sins of Solar帝国这样的游戏中,星系有几十个行星,所以即使你没有看到它们,它们也可以处理所有的AI。 但是当你拥有10 000颗行星时,我不想只是隐藏敌人的AI,而且几个小时之后你会来到那里,因为人工智能将与你几小时前离开时相同。

1 个答案:

答案 0 :(得分:1)

您可以使用某些reduction算法。

例如,您可以为每个对手或分数(位置,行星数量,建筑物,船舶,舰队强度等)定义一组关键指标。

然后,您可以模拟在最常见的情况下更改这些指标的关键场景,因为一个对手分别成长,一个对手加入一些阵型,一个阵型与其他阵型对抗,依此类推。并使用它来构建关键可能场景的图表,然后使用它们来计算每个对手的下一个指标。

在新场景的情况下,您不能在常见场景列表中模拟它并添加到场景数据库中,当您收集足够的尝试时,您也可以减少它。这也是最初做减少的方法。因此,如果您最初进行了足够的尝试,则可以获得许多已准备就绪的场景,并且很有可能使用它而不是对所有事件进行建模。

之后,您可以随机或使用Genetic Algorithm等方法在给定位置实例化具有精确行星,单位,建筑物,资源等的精确对手。

此外,您可以将行星,关键建筑物和对手单位从过去的访问存储到数据库中,并将其用作基础而不是新的随机行星/单位/建筑物生成。因此,即使回归玩家可以找到一些熟悉的对象,如果情况没有发生显着变化。