独游神作《暗黑地牢2》“程序化生成”解密:3人完成全部场景美术 !

【GameLook专稿,禁止转载!】

GameLook报道/在GDC 2025分享中,来自独立游戏工作室Red Hook Studios的首席环境美术师Marielle Fox与《暗黑地牢2(Darkest Dungeon 2)》联席技术总监Colin Towle,讲述了这款暗黑风肉鸽策略游戏“美术主导的”程序化内容生成功能的打造过程。

演讲中,两人详细介绍了《暗黑地牢2》程序生成的目标、挑战,以及多年研发积累的经验心得。Marielle表示,在程序化工具的帮助下,Red Hook的3人美术团队就完成了游戏所有的环境美术资产生成。对于国内开发者、尤其是中小团队而言,这些经验显然是非常有帮助的。

以下是Gamelook听译的完整内容:

Marielle:

这里是“从摇摇欲坠的混沌中进化的世界”主题演讲,说的是《暗黑地牢2》以艺术为主导的程序生成系统。该功能是我和同事Colin打造的,所以今天我们一起为大家分享。

我的名字是Marielle Fox,担任Red Hook Studios工作室《暗黑地牢2》项目首席环境美术师,我成为专业的3D美术师已经有15年了。这些年间我经历过很多行业,比如电影、电视、动画以及现在的游戏。

Colin:

我的名字是Colin Towle,担任《暗黑地牢2》联席技术总监,我进入行业也超过15年了,在各种规模的工作室就职过,从3A工作室到单枪匹马的独狼工作室,也就是我现在所做的,我自己的工作室叫2Blocks Games。

开始之前,我会做一个快速的演示概述。今天我们要说的是《暗黑地牢2》的艺术方向,具体来说,是它独特的环境程序化生成,这也是本次分享的关键内容。我们还会展示一些实现这个功能的工具,最后,我们会提到实现这个功能的美术师与程序员关系,接下来让我的同事Marielle分享。

Marielle:

今天我们要讲的《暗黑地牢2》,是发布于2023年5月份的一款肉鸽策略游戏,目前登录了PC和所有主流主机平台。对于不熟悉这款游戏的人,我简单介绍一下游戏的主要支柱。《暗黑地牢2》主要讲的是一段遍历灾后世界的公路旅程,玩家与所有喜欢的英雄一起驾驶马车,穿越我们各种美丽的环境、与各种敌人和Boss战斗。

它保留了首款《暗黑地牢》标志性的策略战斗,还涉及管理所有英雄之间的关系。所以这是对游戏的简介,接下来Collin会简要介绍《暗黑地牢》的程序化生成到底是什么。

Collin:

由于我们这次分享中会谈到程序生成很多次,所以这里有必要说一下程序化生成,以便所有人听到它的时候都有同样的想法。所以就是系统、随机、程序生成这些东西。具体而言,在我们的分享中,我们说的是系统随机化,这并非掷骰子那样的随机伤害,而是改变初始的变量和环境, 这也是让你每次玩游戏的时候都有不同体验的东西。

这样做的游戏可以用很基础的方法,就像纸牌中的洗牌,但更多的时候,它是像《泰拉瑞亚》、《文明》中那样功能性的东西,会对你游玩的世界完全刷新。

这些是非常程序员向的功能,因此美术在随后才会不断受到打击,你会可以在游戏美术中看出来。就像《我的世界》中,你看到的都是各种方块,这反映了它们背后的程序。你还可以看到更令人震惊的东西,比如《矮人要塞》,你玩游戏的时候感觉自己是像电影中那样盯着《黑客帝国》里的显示器。

Marielle:

那么,《暗黑地牢2》的程序化生成与Collin举过的所有例子有什么不同呢?归根结底,这取决于游戏的美术方向。

从技术角度来看,《暗黑地牢》的艺术方向可以归纳为几个关键点:

首先且最为重要的是,当我们为《暗黑地牢》创作艺术作品时,我们要确保使用大量硬线条聚合黑色阴影。这是我们在所有美术资产中形成的内部通道,不管是角色还是环境美术资产。这是创作《暗黑地牢》主题艺术最重要的部分,因为它确保这些资产从《暗黑地牢》的世界看起来与众不同。

当我们自信地确定了这一点之后,我们确保在所有这些资产中渲染纯黑色轮廓,将这种风格化联系起来。至于通道,我们采取了二级通道并以绘画风格运用。

《暗黑地牢》系列内有两款游戏,第一款是二维形式打造的2D地牢战斗游戏,第二款游戏中,我们希望把第一款游戏中人们喜欢的所有东西,比如地图生成、战斗难度以及艺术方向转化为一个完全的3D世界空间,我们是在Unity引擎中完成的。

今天我们将专门讲述《暗黑地牢》的暗黑环境,这是我们的环境总监Chris Bourassa绘制的城市生物群落的视觉目标,我非常喜欢这张图片,因为对我来说,这张照片确实概括了我认为黑暗地牢环境的外观和感觉。

从技术角度来看,它在执行我刚才提到的所有观点,因此,如果你去掉这些颜色信息,就会得到大量纯黑色和那些真正告诉你这是暗黑地牢环境的聚合黑色阴影。你还能感受到我们想要的所有感觉,那就是我们想向玩家传达,他们就是在一个不可能的环境中与这些不可逾越的困难作斗争。

因此,正如我们的艺术方向所确立的那样,这正是我们在创作《暗黑地牢2》时所知道的在视觉上想要实现的目标。

Collin:

是的,现在我们有很好的艺术方向,但我们必须记住,这是一款游戏,因此有很多的游戏设计限制需要记住。所以我们的想法是,这个程序化系统如何将这两者融合在一起?为此,我们给自己设定了一系列目标,我们知道任何成功的系统都会检查那里所有的清单。

第一个目标,我们希望世界成为一系列相互关联的节点。因此,这些是玩家要处理的主要互动点。它们可能是在某个地方找到大量的资源,或者甚至是与迷你Boss战斗。这个想法是,要在滚动的标志上沿着小地图向下走,选择路径,然后制定一个无论是否有效的策略。

我们还希望它能够给玩家们带来长期和短期的后果。这样,如果你选择一条路径,比如左边,你就会发射出潜在的节点,当你向下移动时,你可以在地图的右侧与之互动。

我们还需要以完全可遍历的方式生成地图。我们想确保你,在这个世界中驾驶的舞台教练,能够与道路进行物理互动。但我们不希望伪造地图,我们希望每种选择真正产生并存在于世界中。这样,如果你选择了一条路,你就可以看到远处的另一条路是未走的道路。

另一个目标是,需要将所有选择集中在一个交叉点上,就像图片中看到的那样。因为我们希望确保玩家在进入十字路口时能够清楚地看到他们在选择什么。所以向左意味着向右移动等等。

最后,我们要确保无论选择什么系统,都具有良好的表达广度。因此,这意味着你可以创造一个感觉独特且与所有其他生物群落不同的生物群落。例如这个农场生物群落非常开放,有点空旷,但我们也希望能够创造出像Marielle所说的城市这样的东西。那里非常有幽闭恐惧症,而且里马车很近。

归根结底,我们需要确保维持《暗黑地牢2》的艺术方向。

那么,我们如何实现这一目标呢?这是一项非常艰巨的任务,它有许多我们自己的曲折和决策点需要我们选择。实际上,在这个游戏的研发过程中,我们最终尝试了截然不同的方法。我们将讨论这些不同的方法。

Marielle:

我将把《暗黑地牢2》程序化版本的第一次迭代称之为顺序板系统(sequential plates system),其背后的想法是,我们要制作这些装有大量不同组件的巨大板块,因此我们想要将所有这些游戏设计功能与美术功能合而为一。

因此,我们希望所有的玩家互动节点都位于一个单一的板块中,我们希望所有的道路连接这些节点,我们所有的3D美术套装把这个板块装扮成我们想要的任何生物群落的样子。然后,当我们完成其中一个板块之后,我们把它输入到Unity引擎中,Unity会随机选择兵依次生成其中一个板块,这样它就能从头到尾完全创建出一个生物群落。

Collin:

是的,技术方面,这实际上是一个非常简单的系统。因此,当我们谈到板块时,我们唯一真正关心的是有多少条路进去,有多少条路是出来的。我们只是标准化了这些入口和出口的位置,这样就可以很容易拿一个有两条出口的板块,然后选择任何其他有两条入口的板块,然后将它们一个接一个地拼接在一起。

事实上,这其实很简单,以至于在Marielle加入团队之前就已经全部跑完了。从技术角度来看,我想,我们已经完成了,我将会转移到游戏中的其他内容。

Marielle:

这里有一些早期的片段,讲述了顺序板系统的运行状况。如Collin所说,它达到了我们的技术目标。所以你可以看到我们的马车驶过玩法系统。

这个片段看起来很酷,因为它还带有我为游戏创作的第一幅插图。因此,当我们尝试启动并运行顺序板系统时,我们的环境美术总监和我实际上是想弄清楚如何制作3D模式下的《暗黑地牢》美术作品。

因此,你这里看到的房子是我们为游戏创造的第一笔美术资产。遗憾的是,它已经不存在于游戏中,但它有点酷,很多东西同时融合在一起,因此顺序板系统的第一次测试对我们来说是充满希望的。我们本以为它可能是一些好东西。但是,我在它上面投入的时间越多,在一个单一的板块里创造我们需要的所有东西的时间就越长。

我很快意识到,这种情况太糟糕了。对我个人而言,首先也是最重要的是,艺术创作时间实在是太长了。所以,当时,环境美术团队只有我一个人,我需要对一个板块了里的所有东西负全部责任。

因此,我不仅是图弄清楚如何创作3D版的《暗黑地牢》美术作品,还做了一些游戏设计的工作。所以在这个巨大的板块中,我们必须弄清楚要把所有玩家互动节点放在哪里,弄清楚我们想把所有这些道路画在哪里。决定了所有这些东西之后,我必须我这个板块创作所有的3D美术。然后回到板块里用我制作的所有美术作品装扮它。所以,我的工作量非常大。

因为这个系统是在我2018年加入团队之间创作的,所以我对它的创作或最终如何在不同部门之间分配工作没有真正的发言权,这也是导致该系统并不是我们真正的灵丹妙药的一件事。

而且,事情在视觉上也非常重复。我们知道自己在做一款肉鸽游戏,因此,假设玩家喜欢玩《暗黑地牢2》并且想要多次玩,他们每次玩游戏时都会看到很多这样的生物群落。所以可能发生的情况是,在随后每次穿越单一生物群落时,他们都会识别所有这些板块中的不同视觉地标。

这就意味着,一旦玩家开始掌握了视觉图案或者地标,它们将开始在任何特定时间准确地知道自己在哪个板块上,这就意味着他们知道摆在他们面前的是什么样的选择。因此,这也没有帮助我们支撑游戏设计方向。但归根结底,它确实没有帮助我们实现艺术方向愿景,而艺术方向愿景将永远是我们的头等大事。

Collin:

这个系统确实存在问题,因为工作量严重偏向了美术团队。所以我们决定倒退一步,重新设计系统,努力平衡这个方程式。

我们所做的是转向了网格系统,本质上,我们的想法是,或许程序化系统可以消除美术团队的一些关卡设计限制,从而减轻他们的负担。问题在于,我们不确定我们能够既做到这一点,又能保持艺术方向。

然而,网格系统实际上有很多我们非常喜欢的好处。第一个是它把单位大小缩小到了我们可以一次做出来的范围,然后像乐高一样把它们组合起来,用它们来生成环境。

这样做的好处还包括,它们基本上可以让团队制作少量内容,然后每当我们创作它们时都会让系统逐渐增长,而不是像板块那样带来巨大的工作量。

Marielle:

我希望使用较小单位的另一个原因是,它实际上帮助我们实现了我们所希望的视觉多样性。所以,如果单位尺寸较小,这意味着我可以以更快的速度向Unity提供更多的资产和更多的预制组件,最终让它生成我们的生物群落时有更多的资产库可供选择。

所以,它依然是一个接一个地随机挑选和生成图块,但是由于单位规模很小,我能够给Unity提供更多的选择。因此,当你每次穿越生物群落,点击游戏中的玩法,你每次玩游戏都会得到不同的配置或者所有这些资产的随机化。所以,它帮助我们实现了艺术方向愿景。

Collin:

那么,是什么类型的网格呢?这里有很多的选择,但我们决定保持简单。我们了解了三角形、正方形和六边形网格,就我们来说,我们知道我们有道路限制需要牢记,所以在最大程度上,玩家们必须在十字路口的三个不同选项之间做出选择。考虑到这一点,我们选择了六边形网格。

实际上,六边形网格非常酷,因为你可能有一条从底部发出的道路,它自然会将上面分成三个不同的分支,所以我们就是这么做的。

我让Marielle模拟了一些基础贴图,放到编辑器中看它会是什么样,如果从工程的角度来看,这是否符合我们需要的所有框架。我们立即看到,道路确实分得很好,我们可以很容易让它们分支出去、进来。

但我们看到的唯一小问题,我们有点希望所有的节点排成一行。对于六边形网格来说,这是不太可能的,因为它有点上下之字形。但这并不是大问题,对工程方面来说,这些都不是致命问题,我们可以继续前进。所以我把它交给了艺术团队,看他们对此有何看法。

Marielle:

当我开始使用六边形贴图时,我们意识到有几个小细节对我们维持艺术方向没有帮助。

我们注意到,由于六边形贴图的形状,我们无法按照自己想要的方式控制资产的旋转。因此,有了城市生物群落之类的东西,我们知道我们希望所有建筑物都与道路保持直角。但使用六边形贴图的时候,它们有时候会随机旋转60度,所以我们会得到一些有点歪斜的建筑,这对游戏的外观来说不太好。

我们还知道,对于同样的生物群落,我们希望所有生成的建筑物彼此都非常接近,而且离道路很近。但是,对于一个六边形贴图,每个周边都有足够的无效空间。当你将很多的tile连接起来,就会有很多的无效空间叠加。我们就没办法让建筑物做到想要的那么近,甚至无法像我们想要的那样靠近道路。最终,我们觉得这种网格无助于我们提供艺术方向。

Collin:

所以,回到草稿阶段,顺着清单往下走,我们尝试了正方形,但是,这能满足我们的需求吗?它能够影响艺术方向吗?

同样的想法,要求一些基本的贴图尝试放置并模拟道路生成。我们立刻就看到,对我们之前遇到的小问题,这个选择很有帮助,事情进展顺利,现在,道路占用的是贴图宽度的95‰,布局会更加紧凑,一切都在朝着对的方向发展。

我们还看到,可以正确地进行分路和交叉路口,从我的角度来看,一切都很好,我们接着谈美术。

Marielle:

当我们开始使用正方形网格时,我首先尝试制作的东西之一,是我认为Unity从头到尾都需要的每种方块或道路形状。于是,我逐张画出了我认为Unity须有啊的各种道路形状。所以我做了一条直道、一个90度转弯、一个三向交叉路口,和一个四向十字路口。我准备好了所有这些tile形状,把它们插入Unity,试着在所有这些地图中行驶,结果很糟糕。

当马车穿过这些地图,效果非常糟糕,比如当马车转弯的时候,镜头会疯狂地四处摆动,并尝试回到马车中心,然后在你不知不觉中,马车又转身了,相机疯狂摆动,重新定焦的次数太多。所以,我认为90度弯的发展太快,所以我在想,如果把90度弯放到更大的空间,而不是一个接一个的方块呢?

所以我试着在比一个个大得多的方块上画出所有这些相同的道路形状、转弯和十字路口。我试着把它分散到3×2或者4×2的图块上,看是否能缓和一下镜头的过渡。因此,在这些交大的道路图上起作用后,我们将其插入到Unity,它会为我们生成一些地图。

第一眼看上去,它就像我们想要的,就是这条路可以正确地分成不同的十字路口,然后分成三个不同的道路。可一旦我们开始驾驶马车,它仍然给我们带来同样糟糕的感觉。

事实上,无论你将他们分散的距离多长,只要有90度弯,就会有那些问题,而且摄像机永远无法适应这些转弯。所以,最终我们决定,90度弯带来的问题,不是我们想要的游戏感觉。

Collin:

没错,但需要记住的是,我们是自己领域的掌控者,我们在创造这个世界,所以我们可以对其施加我们想要的规则。所以我们决定以编程方式删除90度转弯的想法。所以,这个世界只有45度或者更少的转弯。

这样做有很多的优点:第一,它使我们在镜头转动时避免让玩家惊吓到,但也让玩家的注意力向前集中,为他们提供了朝着最终生物群落最终目标迈进的持续动力。然而在技术方面,它迫使我们处理45度的对角线,当你讨论方形网格时,这简直糟透了。

但我们将其付诸行动,然后我们看了看,突然之间,所有的问题都解决了,我们终于可以正式做一些东西了,随后我们决定继续前进。

Marielle:

这时候我们需要确定的是,我们所说的最小贴图集,这意味着我们需要弄清楚,这些道路形状最终会是什么样,这样我们才能为Unity提供所有这些不同的道路形状,让它从头到尾生成我们的生物群落,不受研发方面的干扰。

这不是一件很容易的事情,因为有了逐个贴图,如果我们的出口或者入口位于所有的边缘,就很容易想象和搞定。但是,一旦我们知道所有的对角线必须穿过我们所有的方块,那么弄清楚所有这些道路形状的外观就变得有些混乱了。

而且我们知道,一旦我们弄清楚所有这些道路必须是什么样子,我们依旧需要保持游戏的艺术方向。所以我们知道,无论我们使用什么样的网格系统,或者我们发现了什么样的道路或者贴图形状,我们仍然必须确保这个统一的系统,能够支持我们创建就有很多不同风格和品种的环境。

因此,无论我们想出什么样的网格系统,我们都希望确保它能够创建看起来更像我们的沿海生物群落,但同时创造出可能看起来像山谷生物群落的东西。

Collin:

最大的问题是,我们没有这样的系统的指南。实际上,做程序化生成世界的游戏并不多,更不用说那些有穿越它们的道路系统的游戏了,更别说还要去掉90度转弯的想法。正因如此,我们知道我们正在创造一个可能会在玩家手中崩溃的系统。

而且,任何使用程序化系统做过任何事的人都知道,如果可能出现问题,一旦掌握在玩家、尤其是数百万玩家手中,肯定会出错。因此,我们开始测试系统,我们知道我们需要对其进行彻底的测试。

但我们仍然是个独立团队,我们的QA团队只有两个人组成,规模太小了,无法测试这个规模的系统,更不用说考虑到他们还有整个游戏需要测试。因此,我们所做的实质上是在同事不知情的情况下为我们测试。所以我所做的就是操纵游戏来生成一个新世界,一个随机生物群落。

我们让它在有东西丢失的时候爆炸,这会让他们的测试失败。人们不喜欢测试失败,所以他们立刻会找到我,而且我们在路上留下了足够多的线索,能够在我身边重现这个东西,然后我就能很快识别丢失的贴图。

如果你考虑到一个团队总共有25个人,这实际上效果非常好。如果他们每天进行20次大规模测试,我们的EA版本花了4年时间,这就相当于数十万次测试,这确实达到了我们确保其可靠性需要的规模。而且效果非常好,我们推出了零生成bug的EA版本,我认为这是一个巨大的成功。

这是你创建在《暗黑地牢2》中生成的每张地图所需要的10个最少贴图套装。

一旦有了这些,我们就可以着手制作变体,让世界再次变得美丽。拥有网格系统(我们的案例中是方形网格系统)的好处之一是,你可以将团队制作的每个艺术作品旋转90度,也可以对其镜像,这为你提供了艺术团队制作的任何一项资产的8种基本变体。我们还添加了一些变异器,因此其中的一些可能会出现、消失和变化。

总而言之,这实际上为我们的美术团队带来了巨大的生产力提升,以至于在《暗黑地牢2》创作所有环境的美术团队其实只有三个人,我觉得这是令人印象深刻的。

Marielle:

这里做一个简单的展示,来自我们新创建的生物群落之一,也就是地下墓穴生物群落。对我们来说,这是个很酷的案例,因为它是游戏中唯一真正仅使用道路贴图生成的生物群落,我随后会解释在更大的背景下,这意味着什么。

当你开始驾驶马车穿越生物群落时,你已经遇到了所有这些不同的节点贴图和不同的道路贴图,这时候你可能已经穿过了至少10种不同贴图,但由于我们设置系统的方式,我觉得它们几乎无缝融合在一起,形成了一个很酷的生物群落。

这时候,知道我们需要什么样的道路形状,就像我说的,大部分时候,《暗黑地牢2》中的大多数生物群落都是使用道路贴图创作的,因此在这一点上,我们知道必须想出不同类型的贴图。我们知道创建这些完整的《暗黑地牢》主题环境需要这些贴图,所以我要快速回顾一下,我们想出的所有其他贴图到底是什么样子。

所以,就像我说的那样,我们第一件事就是铺设路砖,这些是玩家真正与之互动的唯一贴图,它们是马车开过的唯一贴图,因此它们需要容纳所有的技术组件,需要容纳所有的道路边界,和Unity将所有这些板块缝合在一起所需要的所有信息。因为它们时程序化生成的方块,离镜头最近或者玩家最近,所以它们也有很多环境高分辨率美术作品。

清单中的下一个是装饰贴图(decor tiles)这些是我们在所有板块旁边生成的贴图,因此它们与道路贴图非常类似,因为它们必须容纳我们所有的高分辨率环境美术,但它们不需要任何技术组件。

在生成装饰贴图之后,我们只需在空间的其余部分填充我们称之为背景贴图的东西即可。因此,它们主要是为了填补地图生成中的空白,这样你就不会在任何时刻看到空白。但是,由于它们离镜头很远,所以不需要任何高分辨率的艺术资产,只有低分辨率的美术资产,甚至在很多情况下只有网格,比如带有alpha通道的图像的2D网格。

这里举几个例子,来展示所有不同贴图类型是逐一生成的,这样你就可以真正看到每种贴图类型正在做的事情。

Collin:

这是农场生物群落,是我之前提到的一个很大的开放空间,该算法首先放置节点,也就是图片右侧的庙,然后将所有节点与道路连接起来,然后用道路贴图铺路。

之后,它用装饰贴图环绕所有道路,这就是Marielle所说的高分辨率美术资产。这就是你在这个世界中跋涉时占用大部分玩家摄像机空间的原因。如果看剩下的小空白,它们就会被背景贴图填满,然后我们在上面放一个天空盒(skybox)以完成整个外观。

Marielle:

这是我们的山谷生物群落,如Collin所说,这里只有第一批节点生成,它们与我们所有的道路连接在一起。

然后在所有道路建好之后,游戏会用装饰贴图填满下一个空间,装饰贴图确实是我们可以掩盖这样一个事实,我们使用的是非常硬的方形网格,装饰贴图是用各种各样的形状和大小创作的,所以我们不只是在一个个空间上铺设装饰贴图,我们把它放置在6×6网格一样大的空间里,以及介于两者之间的所有东西。

所以,一但我们在装饰贴图中创造了足够的多样性,就它们的形状和大小而言,一旦Unity将它们缝合在一起,我们就会得到很多这样的美术资产。就像做了很好的分层,这确实掩盖了这样一个事实,就是我们只用一个方形网格来创作所有的东西。

背景贴图也是同样的想法,我们使用不同的形状和尺寸来制作,因此当所有东西都被所有不同形状和大小的装饰贴图分层后,我们开始真正失去了使用方形网格来创作所有这些世界的想法或者愿景,这正是我们要的。一旦我们知道所有这些贴图必须是什么样,我们就知道具备了所有的拼图。

这个时候,我们想试着弄清楚是否可以拿掉所有这些部分,并对它们进行一定程度的控制。就像是我们想要一种控制事情的方法。我们选择随时用粗画笔做一些粗略的东西,或者下一刻,选择更细的画笔进行一些细微的绘画。

本质上,我们要的是一种控制Unity的方法,以便让我们能生成看起来分散的生物群落,比如我们的海岸生物群落。但随后在同一个生物群落中,告诉Unity,我们现在像增加所看到的美术资产数量,让它变得更密集。

因此,我们着手控制这种情况的一种方法,就是我们称之为放置值(placement value)的东西,那是我们为游戏创建的每一个贴图相关的数值,它实质上是告诉Unity在选择每个贴图时是优先考虑的。归根结底,更高的放置值告诉Unity,我们想频繁地选择这种方式,而不是放置值较低的方式。

问题在于,我不明白特定数值在视觉上对我的结果意味着什么。这个案例中,我们有一个贴图放置值是9,但我并不能很好地预测,这个9对我将要看到的东西意味着什么。所以,9是意味着我每10秒都会看到这个贴图1次吗?还是每个生物群落我只能看到这个贴图1次?

我为此苦苦挣扎了很长时间,这时候就是我们的美术师与程序员的沟通开始有些中断的时候。因为就像我所说对数字的理解和数学的工作原理,但无法弄清楚我在视觉上将会看到什么,我一直想要理解并听听所有这些信息。

这时候我开始感到有些不满,但主要是对自己感到沮丧。你知道,就想开始感觉我们手里有这个非常强大的系统,但我却无法轻松地控制它。当我们写这个演讲的时候,我实际上是想回过头看看我和Collin交流的历史,因为我当时想,我觉得这是我们一群人想出来的,确实如此,这也是大约一年的时间里我们多次提出的问题。

我不断给他发消息,让他给我解释如何正确地运用这个放置值。坦白说,我认为这大部分是我自己的问题,就像我对系统工作原理的基本理解一样。

Collin:

其实,一年来她对此非常满意,本质上发生的事情是,当编程接管关卡设计的那一刻,这对工程师来说是一个非常有趣的问题。我可能有些自私,在制定完美的算法时有些困惑,这个算法把所有东西都做到了最完美的地步,改变了贴图并优化了形状,努力创建一个美丽的环境。

基本上,我被困在一个兔子洞里,想做一些过于完美和高科技的东西。但实际上,我们需要的不是我做一个漂亮的环境,而是赋能那些能创造美好事物的美术师,让他们自己去做。所以我们真正需要的是一个真正强大且可预测的系统,让美术师可以用它来创造美丽的环境。

一年之后,我终于收到了这个信息,我们重新想办法为美术师赋能,使他们能够再次展现自己的最佳作品。

我们想出来的解决方案,是我们称之为“贴图平衡工具”的东西。这像是一个指挥中心,它将所有单个生物群落的所有贴图、所有放置值和优先级重新组合在一起,然后全部放到一个地方。就像让美术师坐在一个混合桌子前,可以将所有不同的东西联系起来。

但不仅如此,顶部还有一个很难看到的小测试按钮,这个按钮可以让美术师调整设置,确定之后立即使用实际数据生成生物群落,然后对其进行统计分析,并从系统获得有关每个贴图出现频率的反馈。然后,你可以回过头来重新调整,所以,我们终于有了这个系统,让美术师们重新控制了 这个系统。

Marielle:

这对我来说是个重大的游戏规则变化。在此之前,我为测试自己的放置值所做的工作,本质上只是运行,启动游戏并亲自浏览这些生物群落,然后想记下我看到所有贴图多少次,这并不是收集统计数据最可靠的方式。因此,使用这个工具对我来说真是太棒了。因为我真正要做的就是按下测试按钮,它会立即显示出Unity挑选我所有方块的确切次数。

所以我甚至不必加载游戏或者穿过任何一个生物群落就能看到我的贴图在行动。这个工具告诉我所有的板块被选择了多少次,因此有了我向Unity提供的这份完整资产清单,我可以看到某个板块被选中的频率是否比我预想中要多。在同一个窗口中,我能够调整它的放置值,再次点击测试按钮,看着是否达到了我想要的效果。

以下是我们农场生物群落的示例,说明我们的所有贴图都处于相同的放置值时会是什么样子。发生的情况是,Unity最终会将所有贴图的优先级完全相同,因此你开始在整个生物群落中一直看到所有贴图。

尽管美术作品看起来很不错,但这并不符合我们对生物群落的期望。我们想要更分散、更开放的东西。因此,一旦我们可以自信地将这种控制应用于系统中的所有贴图,我们就能实现美术方向。

Collin:

现在我们要谈谈美术师和程序员的关系。事后看来,除了我们沟通可能并不理想的一年之外,我们实际上认为这种合作的结果非常好,我们生成的环境也非常美丽,我们想让大家知道这是怎么发生的。

因此,我们吸取的主要教训之一是,我们合作的结果总是好于我们的个人能力,尤其是在前面的例子中,让美术师尽力完成工作的速度显然超过了我的算法所能做到的。

进展非常顺利的另一件事是,这个功能名有明确的归属者,所以是一项共同拥有的功能。正因如此,没有任何决定是一个人单方面做出来的,因此我们通过做到桌前谈判来解决问题,提出我们都认为足以解决问题的方案。但随后我们必须进行谈判,看哪一个实际上是最好的。通常情况,总是我们两人之间的折衷方案。

这样做的好处是,你可以开始从整体角度看待项目,某些情况下,我们试图在特定的截止日期前完成,而美术团队手上的时间比编程团队还长,因此,我们最终做出了一个更聚焦美术师而非程序员的解决方案。因为我们可以平衡团队的需求和整个项目的需求。

最后,这个系统一旦实施,就赋予了美术师前所未有的独立性。实际上,对于我们的第三个生物群落,Marielle实际上在某个时候把我叫到了她工位前,我坐下来的时候,知道他们在谈创作第三个生物群落。所以,我原本以为她会设置所有的变量和环境,让她开始研究这个问题。但令我惊讶的是,她已经完成了对生物群里的第一次穿越,而且有了一个完全可用的生物群落。

她在问我一些完全不同的问题,我很震惊,因为这确实是系统生命周期的早期。因此,赋能你的美术师,或者让他们有能力自己工作,而不必经常为项目或者时间进行谈判,这对我们来说是一个巨大的福音。

就像Marielle开始所说的那样,我现在只能靠自己,在工作室内做自己的事情。而且,我已经离开这个项目三年了,但她是整个系统的火炬手和知识传承者。因此,现在每当程序员需要修改某些内容时,他们都会来看Marielle,看它是如何工作的,确保他们不会破坏任何东西。

而且,Marielle可以教程序员,告诉他们这个系统是如何工作的,我觉得这真的很不错。

接下来展示一下Collin所说的生物群落:

这不是当时的样子,这我们目前森林生物群落的样子,但很能够说明问题。

很高清看到这些强大的程序化生成与游戏中的所有其他系统(例如视觉特效、UI、音频和音乐)协同工作,以构建我认为非常棒的《暗黑地牢》体验。归根结底,我们做了一件非常酷的事情。

总结

这里做一些简单的总结,首先,如果对你的项目足够重要,程序化生成确实可以优先考虑艺术方向。

就像Collin之前说过的那样,程序化生成系统通常就像一个以程序员为中心的大型技术主导的东西,但是,如果它对你的项目或者游戏或者项目足够重要,你可以像提升和坚持艺术方向那样,在必要时改变这个系统。

我们还发现,贴图平衡工具是一个非常重要的里程碑,因此你必须弄清楚对你的项目来说等同于什么。在这种情况下,找到赋能美术师的东西确实可以为整个项目带来巨大的回报,因此在为项目制作工具时,请牢记这一点。

最后,我们发现成功看起来像美术师的独立性。因此就像Collin所说的那样,当我们清楚美术团队中的任何人都可以正确而自信地使用和控制整个系统时,我们就知道自己取得了成功,做出了一些非常特别或相当强大的东西。

最终,这种跨学科的妥协,是值得信赖的纽带。这种情况下,整体大于所有部分的总和。游戏是跨学科艺术,当你研发的时候要记住这一点。因此,你要与你的其他团队合作,努力保持公平的竞争环境,这样他们的观点不会被任何的自我所掩盖,这样最后就会产生更好的产品。以上就是我们的分享。

如若转载,请注明出处:http://www.gamelook.com.cn/2025/07/574474/

关注微信