【发布时间】:2014-11-13 03:07:03
【问题描述】:
我一直在研究一个好的地牢算法,但遇到了几个问题。我正在尝试在狂神境界和地牢爬行者之间进行混合。我的设计布局是走廊相互分支,房间里装满了怪物。到目前为止,我已经根据这个算法建立了一个地牢生成器:http://www.roguebasin.com/index.php?title=Dungeon-Building_Algorithm。我的第一个问题是,由于我的走廊不是 1 个空间宽,它们看起来经常相互隔开,这不是预期的效果。
.
我一直在考虑可能会更改生成,以便它将图块存储在数组列表中,以便它可以使用它来查找每个段落应该如何连接,我也考虑过尝试不同的算法,但是我很犹豫,因为不先尝试解决这个问题会感觉很浪费。任何一点建议都是有帮助的,因为我对此比较陌生!
注意:必须有一个玩家生成的特殊房间和一个 Boss 房间。就这一点而言,我不确定如何始终确保将这些房间连接在一起,也许是在其他所有事情都完成之后的最后一代?
【问题讨论】:
-
这听起来是个不错的问题。我可能会首先生成房间(具有最大宽度/高度),这样您就可以拥有“列和行”的房间......然后在同一行和相邻列的房间之间生成大厅,或者在同一列和相邻房间之间生成大厅。
-
我喜欢像这样将它们联系在一起的想法,但我认为如果我理解正确的话,这将导致一些非常直接的联系,我想的是更多曲折的段落。我会试一试,看看效果如何,谢谢@Gus的建议
-
如果您不喜欢直线连接,请尝试样条线,然后调整路径宽度以匹配两个出口。
-
我认为测量从起始位置到boss房间的路径很重要。无论随机性如何,让它具有假定的长度都会导致相似的游戏时间和复杂性。但这有点离题。我认为最好的方法是使用分治算法。首先将您的所有地图划分为较小的扇区,然后使用填充它们的功能。当然,这个函数必须能够匹配扇区边界上定义的出口数量。根据它应该覆盖的区域,它可能会产生不同的结果:小区域为走廊,中等区域为房间等。
标签: java algorithm random generator