谁能告诉我像我的世界中生成岛结构或山结构的方法?
我只是在寻找适当的理论来生成随机形状,但它应该保留定义的基本模式。
像:岛屿应该是圆形的,但形状和比例会有所不同(最小/最大宽度和高度)。
或:河流不应该是直线,它们应该具有曲线和随机宽度。
甚至:生成某种森林,以用户仍然可以在森林中漫步的方式放置树木(我认为这很简单,只要说代码周围的树块应该保留空白,最后一棵周围有更多的树)
我可以使用哪种数学方法来做这些事情?
我很高兴有一些教程或参考链接。我已经在网上搜索了几个小时,但是我只能找到一些像“游戏数学”之类的书来购买,但是我的预算却设为零。
编辑:
首先,很抱歉我的英语不好。
中学我要感谢大家的回答。这些都是很好的参考,我将花很多时间来做进一步的介绍。
我强烈建议您阅读Amit的游戏编程信息和其他博客文章。他撰写了一系列有关用河流,海岸线等绘制逼真的地图的系列文章。
建筑世界 尽管过程图生成可以应用于非网格世界,但它最常用于网格。在单个时间点上查看,生成的游戏地图很少像手工制作的世界那么漂亮。但是,它们具有三个优点:(1)如果要制作多个世界,则每个世界的成本较低;(2)由于下一次穿越世界的时间有所不同,因此具有更高的重播价值;(3)在游戏中世界发展的潜力游戏进度。 阿米特的世界地图生成器 程序内容生成:生成地形,城市,建筑物 Unangband中的地下城生成 生成具有锁定键结构的游戏世界,以便某些房间需要来自其他房间的物体 建河算法 将河流添加到随机生成的地形 生成地牢的原始Rogue算法 11种具有演示和代码的迷宫生成算法 使用噪声函数生成洞穴,例如Terraria和Minecraft中的洞穴 不规则形状的房间,简单的算法 可调整大小的内部房间区域 在DungeonMaker中挖掘地牢的Tunneler算法 随机地形生成技术指南 Wiki程序性内容生成指南 模拟大型虚拟世界
建筑世界
尽管过程图生成可以应用于非网格世界,但它最常用于网格。在单个时间点上查看,生成的游戏地图很少像手工制作的世界那么漂亮。但是,它们具有三个优点:(1)如果要制作多个世界,则每个世界的成本较低;(2)由于下一次穿越世界的时间有所不同,因此具有更高的重播价值;(3)在游戏中世界发展的潜力游戏进度。
阿米特(Amit)的 游戏多边形地图生成(列表中的第一项)是一篇令人印象深刻的文章,其中谈到了生成合理形状的海岸线,岛屿,河流,山脉等的逻辑。令人印象深刻的工作!
一种在随机生成的世界中“生长”河流的方法 [包括在上面的列表中]一种相当简单的算法,用于根据地图中的其他“平铺”(例如其类型和海拔)生成河流的路径。