如何在图块引擎中创建随机的“世界”?


22

我正在设计一款在经典图块引擎上运行的游戏,但是其世界是随机生成的。是否有现有的游戏或算法可以做到这一点?我发现的过程生成算法从不使用图块系统...使用图块系统生成整个“世界”的最佳方法是什么?我不是在谈论方块迷宫,而是整体的“世界地图”,谢谢


5
这已经被问过很多遍了,尝试在这里搜索:随机世界生成 编辑: 这是一个用于切片引擎的对象。
理查德·马斯克

2
-1:此问题目前无法回答。太含糊了,只说这是一张由瓷砖制成的“世界地图”。好,什么的瓷砖?这些图块在玩法方面有什么作用?从《最终幻想》到《文明》都可以是任何东西,而为这两款游戏生成地形的“最佳方法”则完全不同。在不知道有关您打算如何使用它的情况下,无法提供能够提供良好游戏玩法的答案。在谈论任何东西的程序生成之前,您必须能够自己手动制作一个好的版本。
Nicol Bolas

Answers:


34

您的问题将带您进入过程内容生成领域。

连续/模拟方法派生的基于图块的世界生成

连续的,我的意思是不是平铺的东西,是模拟的东西,例如矢量地图。您可以使用任何连续技术进行生成,然后对其进行量化。例如,生成高分辨率的Perlin噪点图像,然后降低其分辨率以适合您的tilemap大小,并采样像素以提供自己的高度图。(高度图可以成为您世界的一个很好的起点。)这是因为您提到看到的资源并未向您展示如何将其应用于图块。

使用“闪烁”雕刻方法的基于图块的世代

使用基于图块(单元)的方法,您可以进行某种盲目生成,在此过程中,您可以一点一点地生成世界,而无需关注其他事物。直接相邻的瓷砖,但这看起来像是昆虫的作品。这是典型的CA(细胞自动机)资料,并且显示的智能较小。

从上到下使用更广泛的世界视图来生成基于图块的世界

这将采用一种更加智能的方法来逐块构建世界,因为它将首先逐个区域进行构建。这样,您就可以控制例如。就像塔恩·亚当斯在《矮人要塞》中所做的一样。当然,这需要您考虑一下如何分割世界。有很多方法,您将必须进行自己的研究。


程序内容的生成是一个相当广泛的主题,因此您需要做大量的阅读,才能全面了解您真正想要的是什么以及如何实现它-魔鬼总是在细节中。出于这个原因,一些很好的资源是rec.games.roguelike.development邮件列表(有关基于程序的程序世界的大量信息),AmitP的游戏编程页面(请参见 “其他主题”),最后但并非最不重要的是,该程序内容生成的Wiki


这些方法都没有考虑到地图的游戏目的。这些方法中的任何一种都可能产生可怕的比赛地图。当然,OP并没有说出一张好的地图会是什么样,所以……
Nicol Bolas

6
@NicolBolas确实如此。该任择议定书需要的东西去。我不需要为每个答案写完整的论文(尽管有证据表明我经常这样做)。
工程师

商定,“可玩性”是OP最好的启发式方法。“可玩”是在“随机世界”实际生成之上的一层,并非原始问题所要求。
Patrick Hughes

6

程序生成是一个巨大的话题。您愿意走多深?

尼克·威吉尔(Nick Wiggill)的答案是一流的。通过建议您研究创建连贯随机地形的一些数学方法,我可以补充一下。

佩林噪音为创建平滑的随机性提供了一种很好的方法,并且对各种地形都适用。模拟侵蚀可以给人真实的身高印象(尽管您可能在做基于图块的游戏时可能不需要)

Tribal Trouble的制造商Oddlabs此类论文中讨论了很多技术,它们在2D和低分辨率下也能很好地工作。如果您对这种方法比较满意,那么学习这些技术可能是值得的。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.