地牢生成未探索的

2021-04-12 07:52:02

很少见到你看到一个游戏,可以在其营销中提供最高账单,以便其程序生成的水平的质量。通常PCG在游戏中撒上游戏以添加多种品种,或弥补缺乏实际水平设计。但是,对于2017年的未探索,其他比赛的剩余游戏是在那里证明恒星水平。

未开发的呈现为一个相当标准的roguelite - 进入随机生成的地牢,下降20级并重试yendor的护身符。游戏玩法采用基于时序的实时战斗,并瞄准摇摆,但其他以其他方式通过书播放。

但它并不需要很长时间意识到为什么他们在程序一代中得到了这么大的交易。在塞尔达游戏之后,未开发的水平设计比流氓更高。你很快就会随机徘徊时,你很快就会发现前进的道路被阻止,强迫你解决谜题,找到物品和钥匙,击败敌人继续。有一个巨大的结构,都是随机产生的,但几乎每个级别都是一个紧凑的有趣的空间。

到目前为止我已经讨论了这种级别的一些关键概念:锁定和关键地下水和图形重写。然后我描述了使用的工具Dormans用于设计一切。但我有点简短了解替换规则如何,可以建立如此复杂的地牢。所以这篇文章我们将潜入这些规则,在以前的知识上建立。您将看到的细节和图像或多或少地从杠摸镜中出现。

我无法谈论一切。有两个主要发电机 - 一个用于地牢的一个整体,一个用于每个级别的地板平板。每个都有许多模块,以及大约5000个个人查找替换规则。 Ludcope的工具允许Dormans非常迅速迭代!这意味着各种各样的地下城的许多“秘密”只是一个不同手动编码的情况。

我将专注于平面图发电机,并删除一些东西,但它仍然是一篇很长的文章。如果你只想要亮点,我会阅读一般结构部分,然后循环地牢生成,并跳过其余的。

当我们开始生成楼层计划时,Dungeon Generator已经创建了20个级别请求,并标记了每个需要的细节,如退出/入口,项目和老板。它还决定了级别的一些高级细节,例如名称。

然后,PloorPlan Generator将每一个级别请求中获取每个级别请求,并生成所有房间,额外的遭遇和敌人,然后设计基于地块的地图以保持所有内容。

在发电机中有大约50个幽灵造理模块,但它更容易查看主要步骤:

设计整个布局的一个主要循环类型,并且圆圈转换为使用它。

每个级别都设计在5×5(或类似)图表节点网格上。由于几乎所有后续操作都是通过图形更换完成的,因为没有形状,位置或旋转的概念,因此该网格确保随后的图仍然遵循2维计划。 Grid节点永远不会删除或移动,只是注释,因此当我们以后将图形转为Tilemap时,这是一个简单的操作。

发电机确实的第一件事之一是在它们之间绘制开始,结束和大致圆环的一部分。我们很快就会到达“为什么循环”,但首先,我将展示图形更换如何用于绘制形状,作为图形替换系统中的一种代码的图示。

PhantomGrammar替换规则非常灵活,但一个限制是每个规则总是匹配固定数量的节点。因此,任何可变大小或高复杂性的东西都需要被分解为一系列较小的规则,可以在整个图表的不同部分上运行,通常将中间值设置为“修复”以后的规则。

即使是此图略有删除 - 此过程中涉及40个不同的规则,主要需要核算变化。

类似,更简单,模式发生在代码上。每当需要的某些变量大小时,都有一组规则来设置intial条件,更多的规则是重复的“增长”模式的更多规则,以及最终的清理步骤。

绘制的圆圈继续成为水平结构的骨干。 DORMANS称这个“循环地牢发生器”,它是一个功能,使级别具有有意义的进步弧和起搏。

这个想法很简单。发电机绘制一个大的圆环,附接入口和目标节点。入口和目标之间的循环Intwo循环循环界面的入口和出口。然后,游戏从许多预定义的主要循环类型中选择,每个循环类型都指定了如何使用这两个弧。循环类型定义叙述潮汐和水平的流程。

最简单的循环类型只是使用两个弧作为两个替代路线的目标,每个弧度都有一个不同的障碍物。

更精异的循环可以以各种方式利用弧。

许多游戏具有预先撰写的高级结构,但这种特定的方法有很多建议:

因为结构有两个平行的弧与(而不是更常见的树结构),所以有很多可能的有趣方式来安排它们。而且很容易安排一个单向门来减少球员回溯,手中使用的常用伎俩。

周期类型非常一般。它们只控制地牢的主要流程,并对特定的叉子,布局或细节进行了几乎没有指定,这些叉子或细节都在以后填写。许多循环类型包含特殊规则,使其更通用,例如随机挑选弧上找到有点类型的障碍,或者随机定位键出现的位置。

未探索的有24种不同的循环类型,其中一些如上图所示。大多数循环涉及放置钥匙,门和一种方式“阀门”以迫使玩家进度遵循已知的曲线。但并非所有人都有严格的道路。例如,集线器具有易于导航的整个循环,但锁定了某种挑战背后的实际出口。集线器用于具有多个出口的级别。另一个奇怪的循环类型是湖泊“循环”,它将循环视为一个大中心湖的边界,并且比许多其他设计具有更自由的漫游感。

在生成主要循环后,添加额外节点以使Dungeon Futher复杂化。微循环从可以添加的主循环短路,通常包括更多钥匙和障碍物。

还有更长的循环或添加死角的规则。运行这些规则的组合,直到级别生长为所需的尺寸。

一旦整体布局已经决定,我们实际上需要使用特定敌人,谜题,奖励等地填充地牢。但对于具有这种复杂程度的发电机,它不会随机选择。这样做会使它很难调整,并且不可能获得水平的凝聚力。

相反,发电机以非常抽象的术语开始,逐步改进事物,直到一切都完全决定。例如,房间正作为一个特定的“路径”节点开始,由主要周期处理。然后,我们将决定我们有哪些节点(洞穴/隧道/房间等)。甚至比将房间分为特定类型(图书馆/锻造/监狱等)甚至以后,选择适当的物品和装饰,以适应这些房间。

未探索使用两种主要技术。 BioMES用于鼓励在其他系统和非终端符号之间的一致选择,以指示稍后需要解决该需求的占位符。

选择大约一个级别的第一件事之一是将其与一个或多个主题相关联。主题是广泛的概念,如“火”,“木材”,“洞穴”等更具体的物品,如“露房”,“瀑布”。主题本身不会直接影响到所有水平,但许多解决方案将引用级别主题,以便有条件启用/禁用内容。

例如,火主题可能导致熔岩生成,从地图上禁止禁止水分,并导致火灾主题物品更频繁地出现。次要主题常常能够启用一些特定的功能,因此您将突然发现一个充满单线路径或传送等级的级别。

主题是众多类似的注释之一(统称,我正在调用“生物群体”),这些内容已经提早影响以影响后来的选择。其他一些包括:

主要循环在地下城的子区域上设定了角色,以表明您可能遇到的障碍

地带类型用于选择一组一致的瓷砖,用于造型级别。

神秘类型用于其中一个扩展,以将线索的螺纹连接到一个连贯的故事中。

节点类型确定用于整形Dungeon的每个部分的规则集

房间类型确定一组规则来运行本地房间(通常添加装饰品)

非终端符号是具有相关联的替换规则的图表节点。他们实际上是一个待命的东西,以便以后更具体地决定。

例如,发电机的早期阶段使用称为“障碍物”的节点类型。这不是一个特定的障碍,它可以是阻碍球员的任何东西,例如敌人,拼图或陷阱。只有在发电机中才能才能决定它的特定一个,通常参考主题和角色。这意味着发电机的所有中间部分都可以具有与任何障碍物匹配的图案。有时有有时标记有特定数据,例如难度级别,因此它们不会随机完全挑选。

另一个重要的非终端对是锁和钥匙。正如锁和关键地下城的讨论,这些都不是从字面上收集的钥匙和锁定门,它可以在能够遍历锁之前首先找到它们的键,成为关键项,交换机或碎片知识。相同的锁/钥匙结构用于播放器必须找到密钥和软锁的硬锁,其中键不完全必要,它只是有帮助。

像障碍物一样,锁/钥匙在发生解决之前的发电机的中间部分中有许多规则,所以这些规则有不论它是什么样的关键。键有一个特殊的边缘指向它们的相应锁,因此即使两个节点被播放并在图中移动,它们也可以始终保持一致。

许多非终端存储类似的关系,例如暗示他们提示的暗示,巡逻区域。这些额外的关系允许在确保地牢仍然完善的情况下操纵节点,并有意义。

事实上,关系是水平输出的一部分。此信息不仅非常棒地调试,而且游戏将其作为一种安全检查。随时,您可以“祈求帮助”,并且游戏可以确定什么是停止您进一步进步,并解决事物。

解决方案阶段后,我们有一个节点图,每个节点都有很多注释,其中包含它应该如何出现的细节,它应该包含等等,但我们仍然没有实际地图。

基本5×5网格中,所使用的所有上一代都被两倍扩展,为每个节点之间的走廊件制定空间,它们被标记为障碍物或门。

然后,网格扩展为5倍以提供地图的实际网格。

然后,每个5×5块具有适用于它的特殊规则,以使其成为特定的形状。门缩小到一个瓷砖,房间被长长于一个较大的边界墙。大多数其他领域,如障碍,洞穴,隧道等,具有小的蜂窝自动机,以给予它们粗糙的形状。还有一些更精致的图案,如狭窄的桥梁,或伸出轨道伸展。

虽然在开放的洞穴中花了很多游戏,但房间都特别关注。每个房间都根据它的内容标记为特定类型,例如图书馆,伪造,储物室等。每个房型类型都有一个关于如何生成其内部的特殊规则。这定制了房间的化妆品外观,它出现在其中的物品,并设置碎片。

设置块是具有模式匹配过程的特定小功能。例如,图书馆有多个书架套件。每个书架寻找一个适当的绘制地点 - 需要放在墙上,而不是掩盖门或其他重要特征。一些集合件具有相当复杂的规则。例如。装饰列需要找到合适的空角,然后有其他图案,用于增加房间宽度的柱廊的长度。

物品类似地放置规则。许多物品可以坐在地板上的任何空的空间上,但箱子有几种模式来产生漂亮的山墙。

地形为水平的自然区域提供了一些化妆品变化,例如田地,森林等。

Terrain通过随机分配给每个单元格,然后应用一些平滑来定义一个简单的2个色调模式。 PhantomgramMar具有处理这样的蜂窝自动机的特定操作。两个色调成为地形类型A和地形B.然后,在Terrainb中,挑选了4个种子点,然后通过从那些种子的那些种子向外生长来进行两种种子类型(C和D)。水平的边界被迫到地形A型A,并绘制额外的B细胞以切断C和D区域。

然后叠加4个地形类型。地形的确切使用因水平而异。通常,它们每个都变成不同的瓷砖类型,但一些特殊的水平有进一步处理将植被集群成特定的模式。

现在大部分水平被锁定,还剩几乎没有剩余的。物品放在适当的地方,一些植被奠定了下来。有很多固定和在此阶段完成的小化妆品调整,那么剩下的所有内容都是将瓷砖地图加注释传递给游戏引擎,可以在运行时构造一个级别

我已经尽我所能给出一些细节。未开发的是我见过的最复杂的系统之一,但我怀疑绘制了图形系统和杠杆镜工具,它变得可行由单个开发人员设计。这是一个真正的强大的系统,值得更加关注。

但我也看到了我所看到的其他游戏的许多趋势。我已经发表了多次发行摘要的力量,首先填充细节。这种模式一遍又一遍地重复,在少数和大中。虽然在这里描述它可能更好地描述为三个阶段 - 未开发出一种中期的中期阶段,在任何分辨率开始之前,抽象的地牢扭曲,操纵和制作更复杂。

另一个带走的是,由于撰写的规则数量,因此无法探索的感觉非常不同。虽然没有预先授权的水平,但是有各种各样的故事,谜题,谜题和冒险已经明确设计。我相信该工具使这种东西很容易添加,但它仍然代表了许多程序生成不快捷的设计工作。

我会说未开发的地下野的力量在他们的一致性和结构中,陷入了紧凑的空间。 随着Joris自己观察到的,“产生比产生大的水平更有趣的是”。 我可能会在未来访问未开发的和Joris Dorman的工作,因为他在学术界和游戏中的工作机构都是巨大的并且有许多有趣的想法。 分析未开发的已经变成了四篇单独的文章,而且它仍然比我所喜好更具压缩。 我特别期待未开发的2:Wayfarer的遗产是使用类似工具建造的,但在范围内更雄心勃勃。 图形大大改进,并且看起来它将使用相同的图形系统的NPC AI。 DORMANS的工作正在慢慢地使程序生成领域一点少......未开发。