我的游戏以伪无限且随机生成的方式具有类似于Minecraft的地图。又大 假设用户浏览了1000x1000区域(此处为2D),那么就是1,000,000个图块。
显然,我将无法将其全部存储在内存中。我也不只是想忽略10个磁贴或任何半径范围之外的所有内容-两者都不会更新(所有NPC,也许是反应性磁贴),我将不得不处理诸如1382,12918之类的笨拙位置。
因此,如果我要将其拆分为块或区域或诸如64x64的瓷砖之类的东西,则必须存储每个瓷砖和对象的位置,例如:
块a,b 位置x,y。
但是,如果我想要在地图中使用地牢之类的东西怎么办?因此,一块瓷砖可能会导致一个40层的地牢,每个区域的面积为40x40。我无法将它们完全存储在同一张地图中。
还有记忆的一面;我可以合理地同时在内存中存储多少?我可以很容易地按ID进行平铺,并在那里有普通的2D阵列。还是再说一次,有没有比包含瓦片类型的数据文件更有效的解决方案?所以对于64x64 ..那只会是20K或其他 我希望尽可能多地加载最真实的更新。但是我不知道在不浪费内存的情况下可以达到什么样的限制。