为什么此过程内容生成而不是其他?


18

我正在阅读在线过程内容生成一书,在第1章第2页上,有一个PCG是什么的例子,另一个是PCG不是和我不能分开的例子。

根据他们,这是PCG:

游戏引擎中间件,可迅速将游戏世界塞满植被

根据他们的说法,这不是PCG:

一个能够集成自动生成的植被的游戏引擎

同样在第1页上,他们明确表示他们不考虑游戏引擎PCG

这里的一个关键术语是“内容”。在我们的定义中,内容是游戏中包含的大部分内容:关卡,地图,游戏规则,纹理,故事,物品,任务,音乐,武器,车辆,角色等。游戏引擎本身不被视为内容在我们的定义中。

我的猜测是PCG示例是游戏中的代码(或者可以是适用于任何游戏的代码),它可以识别游戏地图并根据其填充植被。对于我来说,不是PCG的示例就像是游戏引擎提供的选项,因为开发人员可以通过用户界面离线添加植被。

最后一个是我的一个非常疯狂的猜测,我敢肯定我是错的,因为乍一看它们听起来都像PCG。请帮助我区分它们。


9
比较两个男人:一个走进房间,看着它,在房间的基础上建造家具,然后将家具放到房间里。B照做,但他去了宜家(已制造家具的人)将家具放到房间里。您会说A和B都在制造家具吗?这就是他们试图指出的差异。除非您是从头开始创建家具,否则您实际上并不是在创建家具,而是在以新方式使用现有家具。
平坦

Answers:


27

以类推

电路不发电。灯泡不发电。电池不发电。使用或存储发电的东西都不是发电机。

汽油发电机是发电机。太阳能电池板设置是发电机他们可以预计,当他们拉开序幕自发产生。其他东西也可以利用它们产生的能量:冰箱,电视,个人计算机以及加热器和灯泡。

同样,任何在运行时实际生成内容的代码或程序都是PCG。剩下的只是用户的是程序上生成的内容(PGC)的。现在,

程序内容生成

与...不同

程序生成的内容

PGC是参与PCG的过程(程序)的结果工件。

PCG的开发(编程)到可以自动产生某些或其他规范内容的程度,但(通常)无数种变化;因此,PGC作为该较宽算法规范内原本可能无限的内容空间的一个单一变化而生成。一旦生成,PGC是有限的静态的。PCG处理无穷大(或足够接近)。

解决细节

“过程内容生成”是指生成内容的代码/应用程序。

如果任何游戏在运行时通过其指令集的一部分动态生成新内容,则可以将其视为PCG游戏。

如果您(或您的引擎)使用其他一些生成内容的程序代码,然后在编译/构建时将该内容作为游戏的一部分包含在内,则您的游戏(及其代码)不是PCG。因此:

一个能够集成自动生成的植被的游戏引擎

...不是PCG,因为该引擎本身不会在运行时产生新内容,所以它仅使用其他地方生成的内容,这些内容已由艺术家,设计师或开发人员手动添加。

识别游戏地图

PCG与识别无关。它与创建内容的积极工作有关。通常,PCG应用程序会生成自己已经可以理解和使用的数据格式。它们通常不读外部资源,尽管当它们读时,这只是普通的旧程序逻辑,而不是PCG本身。PCG与生成有关。因此,PCG而不是PCR :)

历史观点

我们在这方面考虑“内容”是什么一般包括哪些,在过去,人类就这些东西由自己生产。例如,在70年代和80年代,几乎每个游戏(除了少数特殊游戏)都必须具有人类制作的艺术,故事情节,音乐,角色和星球名称等。 。那 PCG 截然相反

PCG开始于游戏程序员意识到,而不是雇用艺术家,音乐家,作家等的繁琐工作,然后仍然必须将其工作与代码集成在一起,或者更糟糕的是,他们自己完成所有工作以及编写代码,他们可以而是编写程序为它们生成所有东西。这些努力是一些最初真正的PCG功能,模块和程序。原始的XCom / UFO是一个很好的例子,其中的游戏代码在战斗前为您生成了一个完全独特的关卡。早在(1979年)就是Apshai神庙

精英游戏则不同:它的某些内容是在游戏开发时生成的;不仅这些代码是由完全相同的作者编写的,而且预先生成的内容通常在运行时elite.exe(即,当您运行游戏者时),由游戏代码其他生成器使用,从而为您创造世界玩了。

一个较新的例子就是我的世界(和其他游戏由它的启发),其中世界,你向地平线走在你身边字面上产生,这在很大程度上归功于现代的计算能力。将此与1980年代在PC-XT上玩过的Rogue或Moria进行比较,您可能需要坐在那里等待一段时间才能生成关卡!(取决于您选择的游戏设置)。

从历史上看,并非所有PCG都植根于游戏行业。例如,有些人写小说生成器。例如,肯·佩林(Ken Perlin)在图形和计算几何学领域创建了佩林噪声算法,并为此获得了学术奖。例如,音乐家布莱恩·埃诺(Brian Eno)长期从事音乐乐谱的程序生成。再举一个例子,像HeroQuest / Warhammer Quest这样的非数字桌面游戏很久以前就发明了程序动力学,可以在每个游戏中创建不同的游戏板。


6
一个非常小的技术例外-概念证明研究项目/游戏,其中游戏本身是程序生成的。也就是说,目标,规则和某种程度上的表示都是在运行时动态生成的。它模糊了内容和引擎之间的界限,但是“确实生成”的试金石测试仍然存在。出色的蒸馏。
皮卡列克

3
@Pikalek我完全同意这种思路。我们可以像Lisp所做的那样-最终在指令和数据之间没有区别。不想过分复杂的答案。感谢您的评论。
工程师

2
@Adocad:我想您错过了答案中的一小部分细节:“如果您(或您的引擎)使用其他一些生成内容的程序代码,然后在编译/构建时将这些内容作为游戏的一部分包含在内,并且它的代码)不是PCG”。如果您已经将该程序包含在游戏中,而不是该程序生成的内容,并且您的游戏会在需要时(本地,在玩家计算机上)触发该程序,则的确是离线PCG。但是,当您仅包括PCG生成的结果(现在是静态的)时,情况并非如此。
平坦

2
@AC:我认为将其标记为过程生成的内容过程生成的内容时,区别更加明显。
平坦

4
@Flater谢谢,这是放置它的更好方法-程序生成的内容可以脱机和/或在运行时生成,但是程序内容的生成显然是在运行时。(请注意,一个工具,其产生稍后将被编译内容做PCG,但是之后的内容已被预生成和编译,游戏中使用的内容是不是做PCG)
AC
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.