一尘不染

随机二维图块映射生成算法

algorithm

谁能告诉我像我的世界中生成岛结构或山结构的方法?

我只是在寻找适当的理论来生成随机形状,但它应该保留定义的基本模式。

像:岛屿应该是圆形的,但形状和比例会有所不同(最小/最大宽度和高度)。

或:河流不应该是直线,它们应该具有曲线和随机宽度。

甚至:生成某种森林,以用户仍然可以在森林中漫步的方式放置树木(我认为这很简单,只要说代码周围的树块应该保留空白,最后一棵周围有更多的树)

我可以使用哪种数学方法来做这些事情?

我很高兴有一些教程或参考链接。我已经在网上搜索了几个小时,但是我只能找到一些像“游戏数学”之类的书来购买,但是我的预算却设为零。

编辑:

首先,很抱歉我的英语不好。

中学我要感谢大家的回答。这些都是很好的参考,我将花很多时间来做进一步的介绍。


阅读 213

收藏
2020-07-28

共1个答案

一尘不染

我强烈建议您阅读Amit的游戏编程信息和其他博客文章。他撰写了一系列有关用河流,海岸线等绘制逼真的地图的系列文章。

建筑世界

尽管过程图生成可以应用于非网格世界,但它最常用于网格。在单个时间点上查看,生成的游戏地图很少像手工制作的世界那么漂亮。但是,它们具有三个优点:(1)如果要制作多个世界,则每个世界的成本较低;(2)由于下一次穿越世界的时间有所不同,因此具有更高的重播价值;(3)在游戏中世界发展的潜力游戏进度。

  • 阿米特的世界地图生成器
  • 程序内容生成:生成地形,城市,建筑物
  • Unangband中的地下城生成
  • 生成具有锁定键结构的游戏世界,以便某些房间需要来自其他房间的物体
  • 建河算法
  • 将河流添加到随机生成的地形
  • 生成地牢的原始Rogue算法
  • 11种具有演示和代码的迷宫生成算法
  • 使用噪声函数生成洞穴,例如Terraria和Minecraft中的洞穴
  • 不规则形状的房间,简单的算法
  • 可调整大小的内部房间区域
  • 在DungeonMaker中挖掘地牢的Tunneler算法
  • 随机地形生成技术指南
  • Wiki程序性内容生成指南
  • 模拟大型虚拟世界

阿米特(Amit)的 游戏多边形地图生成(列表中的第一项)是一篇令人印象深刻的文章,其中谈到了生成合理形状的海岸线,岛屿,河流,山脉等的逻辑。令人印象深刻的工作!

一种在随机生成的世界中“生长”河流的方法
[包括在上面的列表中]一种相当简单的算法,用于根据地图中的其他“平铺”(例如其类型和海拔)生成河流的路径。

2020-07-28