gre*_*rey 7 spatial data-structures
我一直在试验如何存储2D游戏世界的不同想法.我有兴趣听到存储大量物体的技术,同时管理可见的集合(比如100,000平方块).显然,这些技术可以根据游戏渲染空间的方式而有所不同.
让我们假设我们正在描述一个滚动的2D游戏世界,而不是基于屏幕,因为你可以很容易地从这样的设置做基于屏幕的渲染,而反过来有点混乱.
在这里寻找与语言无关的解决方案,这样对其他人更有帮助.
编辑:我认为这里的一个好的答案是对想到这一点时要考虑的想法的一般性回顾,正如一些响应者已经尝试过,但也开始解释不同的解决方案将如何应用于这些场景.这是一个有点复杂的问题,所以我希望有一个很好的答案来反映这一点.
您可能会从一些空间数据结构(例如范围树或 kd 树)中获得有关如何实现此功能的一些想法。
然而,这个问题的答案可能会因游戏的运行方式而有很大差异。
我们谈论的是一款 2D 平台游戏,屏幕上有 10 个敌人,屏幕外还有 20 个“活跃”敌人,还有未知数量的“不活跃”敌人?如果是这样,您可能可以将整个关卡存储为一系列“屏幕”,您可以在其中操纵离您最近的屏幕。
或者您的意思是真正的 2D 游戏,也有大量的上/下运动?这里你可能需要更加小心。
该平台也具有一定的重要性。如果您正在为台式电脑实现一个简单的平台游戏,您可能不必像在嵌入式设备上那样担心性能。这并不是天真的借口,但你可能也不必非常聪明。
我认为这是一个有点有趣的问题。想必比我更聪明、有平台游戏实施经验的人已经想到了这些事情。