NetHack 如何用 Cellular Automata 生成洞穴

Dungeon Generation in the Gnomish Mines of NetHack

NetHack 中的 Gnomish Mines 区域之所以拥有独特的有机洞穴感,关键在于其使用了 Cellular Automata 算法。与游戏中常见的方形房间不同,这里通过随机选取 40% 的地板单元格,再经过四轮 Cellular Automata 迭代,最终修复断开的洞穴。第一遍是未缓冲的“聚类”过程,让地板聚集、岩石聚集;第三和第四遍则是常见的侵蚀逻辑,用于平滑角落并消除孤岛。唯独第二遍逻辑令人费解:当单元格恰好有 5 个地板邻居时,它会被强制变为岩石。作者至今仍在思考这一步骤的设计意图,或许这正是程序设计中那些充满魅力的未解之谜。

第一遍是未缓冲的,每个单元格在移动到下一个之前就地更新。

同日更多故事

2026-10-22