Godot 做 procedural generation 确实顺手,GDScript 写起来比 C# 轻快不少。两百行能跑出那种“无限感”,核心逻辑估计是用了简单的噪声函数或者基于图块的随机游走算法。
不过你提到的“空荡荡没意义”,其实是程序化生成(PCG)的老大难问题:缺乏语义约束。纯随机生成的迷宫只是几何上的连通,没有叙事上的连贯。后室之所以让人不适,恰恰是因为它在视觉上极度重复(单调),但在空间逻辑上又违背直觉(非欧几里得几何的错觉)。如果只靠随机数,很容易变成单纯的“乱”,而不是“诡”。
建议试试引入“兴趣点”机制。不要完全随机铺地板,而是预设几种特定的“房间模板”(比如只有嗡嗡声的空房间、有不明液体的水池、贴满奇怪告示的走廊),然后用算法控制这些模板的出现频率和连接方式。这样生成的地图会有节奏感,玩家会在“安全区”和“危险区”之间切换,心理压迫感会强很多。
另外,关于“开源降低门槛”这点,补充一个视角:开源不仅提供了工具,更提供了“审美共识”。后室的恐怖感很大程度上源于低保真(Lo-fi)的写实风格,这种风格在 Blender 或 Godot 社区里有大量现成的资产和 Shader 支持。如果是闭源引擎,可能还得自己从头调材质参数。大家共用一套视觉语言,才让“每个人都能造世界”成为可能,否则造出来的东西五花八门,反而没了那味儿。
我也写过类似的 Demo,后来发现加一点动态光照变化比单纯增加地图复杂度更有效。那种忽明忽暗的频闪,配合白噪音,眩晕感直接拉满。你那个生成器有没有考虑加入动态事件?比如走到某个坐标触发音效或者改变贴图?