我正在设计一款实时策略战争游戏,其中人工智能将负责控制大量单位(可能超过1000个)在一个大的六边形地图上移动。
每个单位都有一定数量的行动点数,可以用于移动、攻击敌方单位或各种特殊行动(例如建造新单位)。例如,一辆坦克有5个行动点,可以花费3个点进行移动,然后花费2个点攻击射程内的敌人。不同的单位对不同的行动有不同的花费等等。
以下是一些额外的说明:
- AI的输出是针对任何给定单位的“指令”
- 行动点数分配在时间段开始时,但可以在时间段内的任何时间点使用(这是为了允许实时多人游戏)。因此,“什么也不做并保存行动点以便以后使用”是一种潜在有效的策略(例如一个不能移动的炮塔等待敌人进入射程)
- 游戏更新是实时的,但AI可以在任何时候得到游戏状态的一致快照(由于游戏状态是Clojure的持久数据结构之一)
- 我不期望“最优”的行为,只是希望AI表现得不会明显愚蠢,并提供合理的乐趣/挑战
您可以推荐哪些具体算法/方法,以实现效率和合理智能行为之间的正确平衡?