NetHack 侏儒矿坑中的地牢生成

Hacker News Top 新闻

摘要

一篇博客文章,详细解析了 NetHack 如何通过四轮元胞自动机迭代生成侏儒矿坑关卡,其中包括一轮不使用缓冲区的聚类处理和多轮侵蚀处理,而第二轮处理令人费解,作者对其用途提出了疑问。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/22 18:38

# NetHack 侏儒矿坑中的地牢生成 来源:https://www.boristhebrave.com/2026/10/18/dungeon-generation-in-the-gnomish-mines-of-nethack/ 跳至正文 (https://www.boristhebrave.com/2026/10/18/dungeon-generation-in-the-gnomish-mines-of-nethack/#content) 好吧,这个话题确实最好借助可视化工具来解释: NetHack 的关卡生成有很多有趣之处,但我想重点讲讲侏儒矿坑 (https://nethackwiki.com/wiki/Gnomish_Mines),因为它使用了元胞自动机\。这赋予了它一种自然洞穴的感觉,而游戏的大部分时间都是在方形房间中度过的\。 流程非常简单: - 随机选取 40% 的格子作为地面 - 执行四轮元胞自动机更新 - 添加额外的走廊,连通彼此隔绝的洞穴 让我们具体看看元胞自动机\。它只有两种状态——地面或岩石\。每一轮都会统计每个格子的 8 邻域中有多少个地面格子\。 第 1 轮:0\-2 → 岩石;3\-4 → 不变;5\-8 → 地面 第 2 轮:0\-4 → 不变;5 → 岩石;6\-8 → 不变 第 3 轮:0\-2 → 岩石;3\-8 → 不变\。第 4 轮:*与第 3 轮相同* 有趣的是,第 1 轮不使用缓冲\。每个格子都会原地更新,然后才处理下一个格子\。其余各轮都使用缓冲——先计算所有格子的新值,再一次性更新整个网格\。 第 1 轮会在其他地面附近生成地面,在其他岩石附近生成岩石\。我会将其称为“聚集”轮,它促使随机分布的格子形成宽阔的开放区域\。这里不使用缓冲很重要,这样就不会出现来回翻转的情况:某个格子从岩石变成地面,而它附近的另一个格子却从地面变成岩石\。 第 3 轮和第 4 轮是侵蚀过程,这是元胞自动机的一种非常常见的用途\。如果你附近有 6\-8 个岩石格子,那么你也会变成岩石\。这通常会使棱角变得平滑,并消除微小的孤岛\。 不过,第 2 轮嘛……如果一个格子恰好有 5 个地面邻居,它就会被变成岩石\(也就是有 3 个岩石邻居\)\。我仍然很难理解这一步究竟想达到什么目的\。大家有什么想法吗?

相似文章

Show HN: Reverse Minesweeper

Hacker News Top

Reverse Minesweeper 是一款逻辑益智游戏,它使用基于推理的求解器生成可调节难度的网格,提供从简单到疯狂五个难度等级。

这个博客底下有一座地下城

Lobsters Hottest

一位开发者描述了如何使用 WebRTC 和 Trystero 将点对点多人地下城游戏嵌入静态博客,采用确定性程序生成,且无需后端服务器。

Show HN:基于 Raycaster 的 Entombed 复刻

Hacker News Top

这是一篇 Show HN 帖子,介绍了作者受 Atari 2600 经典游戏《Entombed》启发而制作的 raycaster 项目,重点探讨了该游戏著名的「神秘表格」迷宫生成算法——在极端的内存限制下,仅利用相邻单元的局部信息逐行程序化地构建迷宫。

《Caves of Qud》中的端到端程序化生成(2019)

Lobsters Hottest

自由游戏(Freehold Games)的Brian Bucklew和Jason Grinblat介绍了他们如何结合程序化生成技术,在游戏《Caves of Qud》中创建具有历史、文化、建筑、NPC和任务的完整村庄。