Optimization 如何更新非活动对象/实体

Optimization 如何更新非活动对象/实体,optimization,logic,game-engine,Optimization,Logic,Game Engine,我在一个我编程的游戏中有很多对象,我为它们设置了一个inactive状态,这样它们就不会一直更新。我只想更新玩家特定范围内的对象。但是,如果我想检查对象是否在距离内,我必须再次迭代所有对象 我有很多东西,所以我真的不能全部检查。大型游戏如何处理这个问题?如果你有许多不经常移动的对象,你可以分别查看3d/2d游戏的/树。这些都是数据结构,可以快速删除您知道不靠近播放器的对象 然而,如果你的物体也经常移动,(想想小行星游戏),你可能会发现自己花更多的时间为这些结构记账,而不仅仅是手动检查 您还可以找

我在一个我编程的游戏中有很多对象,我为它们设置了一个
inactive
状态,这样它们就不会一直更新。我只想更新玩家特定范围内的对象。但是,如果我想检查对象是否在距离内,我必须再次迭代所有对象


我有很多东西,所以我真的不能全部检查。大型游戏如何处理这个问题?

如果你有许多不经常移动的对象,你可以分别查看3d/2d游戏的/树。这些都是数据结构,可以快速删除您知道不靠近播放器的对象

然而,如果你的物体也经常移动,(想想小行星游戏),你可能会发现自己花更多的时间为这些结构记账,而不仅仅是手动检查

您还可以找到一个链接,该链接逐步介绍空间分区策略,非常有用。

+1用于关键字空间分区@JamesT一个简单的网格比四叉树更容易实现,如果你在播放器周围的搜索半径没有太大变化(也就是说,它的长度没有变化。移动播放器不是问题),那么它也非常有效。