我相信 Minecraft 的地形是基于 Perlin 噪声生成的几个八度音阶,然后通过拉伸使其平滑。我假设某些特征会在进一步的通道中添加,例如洞穴、悬垂等。您很可能必须尝试使用 Perlin 或其他噪声函数才能为您的景观提供令人愉悦的输出。这种噪声函数的好处是,对于给定的种子,它们将为一组输入提供可预测的、可重复的输出,即您可以像 Minecraft 那样以块的形式生成景观,而不会出现任何不连续性。这里还有更多:https ://gamedev.stackexchange.com/questions/28970/c-perlin-noise-generating-endless-terrain-chunks
在矿石生成方面,以随机加权分布分布的单个矿石块不会给您带来非常愉快的输出。您很可能更喜欢以看起来自然的块状生产矿石。您可以通过再次使用 Perlin 来生成局部口袋或垂直拉伸的可开采材料脉来做到这一点。您可以按原样使用该功能并将您的景观高度图用作截止点(这样您就不会在半空中得到矿石!),或者您可以输入您的一维景观生成功能作为另一个输入,这意味着您可以生产其分布针对不同深度进行缩放的矿石。至于矿石的稀有度,您可以使用与 2D 噪声输出不同的截止值进行放置,还可以试验频率和持久性输入值。
我喜欢这里给出的洞穴生成函数:http ://www.gamedev.net/blog/33/entry-2227887-more-on-minecraft-type-world-gen/ 脊形多重分形当然可以适应生成矿石模式或其他地下特征,但如果采用这种方法,则会增加复杂性。
编辑:
第一个链接可能是您自己在 gamedev 上发布的问题!你是同一个乔恩吗?:)