游戏怪物AI C ++

时间:2016-09-06 23:21:00

标签: c++ artificial-intelligence

我即将为我的游戏怪物实施简单的“aggro”AI。大约有30000个怪物游戏,每个怪物对象指针都存储在std::map中。简单的“仇恨”意味着不时走路并追逐玩家。

我的方法是开始一个线程并每隔30ms迭代std::map以检查怪物是否应向玩家迈出一步或者是否有时间散步(每20秒)。此外,如果球员不是太远,那么它可能会停止追逐他。

问题是,它消耗了大量的CPU。因此,另一个想法是添加第二个std::map,其中包含指向当前“活动”对象的指针副本,并仅迭代“活动”。通过主动,我的意思是他们处于步行状态或追逐状态。它可能消耗较少的CPU,因为在大多数情况下,95%的怪物处于空闲状态。但是,在第二张地图上会有很多插入/擦除操作。

这个问题有更好的解决方案吗?

0 个答案:

没有答案