在这里窥探了一会儿,看到很多令人印象深刻的帖子后,我终于在周末把一个基本的程序化地牢生成器组装起来了。没有什么花哨的:它使用BSP方法来放置房间,连接它们的走廊,根据房间大小散布一些道具。整个过程在编辑器时间内运行,允许我在点击“运行”之前预览布局。

我最惊讶的就是,如何快速产生出有趣的设计问题。例如:如何避免手工制作每个房间以保持房间的独特性?我最终添加了一个简单的房间类型标签系统,使生成器始终在放置宝物房间之前放置BOSS房间,这有助于节省时间。

我还在考虑是否要在运行时烘焙导航网格还是预烘焙每个房间模块并将它们拼接在一起。拼接方法似乎对于性能更好,但增加了复杂性。

我很好奇人们通常在这个生成器的基础上构建什么系统。敌人生成逻辑,陷阱放置,房间类型的照明气氛?我也很感兴趣的是是否有人选择使用波函数坍缩方法而不是BSP,并且是否额外的复杂性在视觉多样性方面带来了收益。很乐意分享粗糙的代码结构,如果对刚开始涉足这个领域的人有所帮助的话。