问题 如何为城堡或建筑物生成随机2D地图?


我正在创建一个游戏,需要创建一个城堡或类似建筑的随机2d地图。它应该看起来像蓝图,即从上面拍摄,只使用线条。

我正在寻找一些能做到这一点的算法。我对代码不是很感兴趣,而是算法本身。从哪里开始以及如何填充所需区域?


6816
2017-08-26 21:21


起源



答案:


在过去的30到40年中,已经开发了许多不同的算法,它们都产生了截然不同的结果。

看看这个维基:

http://pcg.wikidot.com

特别是这些页面:

该网站似乎与您想要做的几乎任何程序内容生成都有算法链接。


10
2017-08-26 21:28



谢谢,“地牢一代”链接确实提供了一些好的想法从哪里开始。 - Milan Babuškov
如果你想要类似蓝图的行为,那么简化为2d 本文中的算法 可能是一个好的开始。这可以为您提供房屋内的基本房间布局,然后您可以应用拆分等内容并随机化连接放置。这可能会比我之前读到的地牢生成算法给你更好的结果,因为它可以更好地代表地上建筑物的形状,而不是挖出的形状。 - Merlyn Morgan-Graham
@ MerlynMorgan-Graham这个链接似乎是死路回来的链接 web.archive.org/web/20110830033753/http://www.vision.ee.ethz.ch/... - Nuno Furtado
dl.acm.org/citation.cfm?id=1141931 是官方链接,有一个付费墙。我无法从信誉良好的来源免费找到这篇文章。 PCG页面上 城市一代 有一个链接到相同的白皮书版本(无论是否来自合法来源,我很难确定)。不确定它是否相同,但它似乎是相同的研究。 - Merlyn Morgan-Graham


答案:


在过去的30到40年中,已经开发了许多不同的算法,它们都产生了截然不同的结果。

看看这个维基:

http://pcg.wikidot.com

特别是这些页面:

该网站似乎与您想要做的几乎任何程序内容生成都有算法链接。


10
2017-08-26 21:28



谢谢,“地牢一代”链接确实提供了一些好的想法从哪里开始。 - Milan Babuškov
如果你想要类似蓝图的行为,那么简化为2d 本文中的算法 可能是一个好的开始。这可以为您提供房屋内的基本房间布局,然后您可以应用拆分等内容并随机化连接放置。这可能会比我之前读到的地牢生成算法给你更好的结果,因为它可以更好地代表地上建筑物的形状,而不是挖出的形状。 - Merlyn Morgan-Graham
@ MerlynMorgan-Graham这个链接似乎是死路回来的链接 web.archive.org/web/20110830033753/http://www.vision.ee.ethz.ch/... - Nuno Furtado
dl.acm.org/citation.cfm?id=1141931 是官方链接,有一个付费墙。我无法从信誉良好的来源免费找到这篇文章。 PCG页面上 城市一代 有一个链接到相同的白皮书版本(无论是否来自合法来源,我很难确定)。不确定它是否相同,但它似乎是相同的研究。 - Merlyn Morgan-Graham


迷宫最好描述内部结构的随机2D地图。你需要的是一个 迷宫生成算法。实现基础知识后,您可以添加自己的随机“房间”放置等实现。


0
2017-08-26 21:29



迷宫与城堡不同。城堡需要有房间,有许多门,可以自由移动。顺便说一句,我已经在这个游戏中拥有与迷宫不同的等级,维基百科页面是我制作它的起点;) - Milan Babuškov
有不止一种方法可以做到这一点。一个迷宫适用于地牢一代,但是城堡内部是不同的...如果他们让我的房子看起来像一个房间里的房间里的迷宫,我会解雇我的建筑师。 - lunixbochs
这不是一个糟糕的方法,但你可能想要反过来做。先把房间弄好,然后在它们之间钻一些半随机的隧道。 - Merlyn Morgan-Graham
嗯,城堡里的大多数房间通常都是对称的。 - Milan Babuškov
@Milan:在城堡里,你可能想要生成内容,随意选择你是否有2路或4路对称,抛弃除了内容的1/4或1/2以外的镜像。然后,如果你愿意,你可以添加回它,实现了基本的对称性。你会在创建门口之前做到这一点,或者你最终会看到一些看起来很时髦的狭窄双门:) - Merlyn Morgan-Graham