我正在开发一个 2D 瓦片引擎,此时我正在研究地图生成算法。
我尝试了通常涉及简单高度图生成的基本方法,例如
- 山代
- 柏林噪声
- 菱形方块
但我总是遇到同样的问题:这种算法在处理也有高度分量的瓦片地图时似乎很合适,但这不是我的情况。
我基本上有草、海、沙漠等精灵,但它们不应该根据生成的高度放置在地图内,而是类似于
- 一切从海洋开始
- 岛屿位于地图中间(这是我尝试过的算法大多失败的地方)
- 生成沙漠(它们应该像周围的随机点)
- 生成山脉和丘陵链(它们应该像蛇一样)
我应该尝试什么样的方法?
我通过开发专门的算法来做我需要的事情(例如,山从一个点开始,然后按照一个有机会转弯的方向)解决了子组件问题(如沙漠、丘陵和山脉),但我在生成基本的岛屿(可以定制为只是一个泛大陆或许多程度的大小)。
只是为了给你一个实用的想法,我正在寻找类似于文明算法的东西: