【问题标题】:How to store chunks in a procedural world?如何在程序世界中存储块?
【发布时间】:2017-05-20 20:53:01
【问题描述】:

我正在制作一个像 Minecraft 这样的游戏,我已经有块,但我目前将这些块存储在一个二维数组中。所以我加载的块保持加载状态,当我进入边界时,我无法生成更多块,因为我使用了一个数组。

所以我的问题是如何存储我的块以在它们离我太远时删除它们并在我靠近它们时加载它们?

【问题讨论】:

  • 要明确:听起来您在询问如何在加载块时将它们存储在 内存中 - 而不是在它们保存时存储在磁盘上。对吗?

标签: java minecraft chunks procedural-generation


【解决方案1】:

创建一个管理这些内存块的类。在所有已实现的块中,此类跟踪已加载的块数、它们是哪些块以及最近必须访问它们的时间。这样,当需要(通过此类)加载新块时,您可以保存并驱逐最不有用的块(按距离或访问时间)。

通过这种方式,您可以添加自动保存、根据当前位置和速度等预测加载块。

但是,您可能只需要一个 ArrayList。

【讨论】:

    猜你喜欢
    • 2018-06-18
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多