“动态生成”和“过程生成”之间有什么区别?


15

当我想到一个动态生成的游戏时,我会想到诸如暗黑破坏神之类的随机生成关卡。当我想到程序生成的游戏时,我想到了《飞扬的小鸟》和其他无限跑步者。

但是这两个都只是随机化一个级别。是程序生成的游戏不断被生成,而动态生成的游戏都被预先生成吗?还是这些术语可以互换?

动态生成的游戏程序生成的游戏有什么区别?

Answers:


21

“程序”是指某种算法制作的内容。这与人类手动创建的内容相反。

“动态”是指内容随时间变化。这与“静态”内容相反,后者在创建后不会更改,或者仅以预定义的方式(例如关键帧角色动画)更改。

您也可以在游戏中创建玩家创建的内容。这是一项游戏功能,允许玩家在玩游戏时更改级别或游戏,而无需使用外部工具修改游戏。为了接下来的几段,我假设我们不是在谈论玩家创建的内容。

您可以使用代码生成永不更改的内容。尽管具有程序性,但此类内容是静态而非动态的。所有动态内容都是程序性的,但并非所有程序内容都是动态的。

您也可以通过各种方式混合手动,过程,静态和动态内容。例如,艺术家可以手动创建建筑物模型,使用工具以程序方式为模型生成各种纹理贴图,然后为物理或游戏系统设置数据以动态破坏建筑物并在游戏过程中生成静态碎片。

注意:这些定义不是正式的。您可以永远争论这些单词的语义。您可能会遇到对这些词有不同定义的人,而我们俩都不一定是错的。甚至技术术语也远比我们程序员喜欢的流动性强。:)


1
“所有动态内容都是程序性的”-从其他玩家的行为创建的内容又如何呢?例如,在《夏娃在线》中,不断变化的轨道哨站完全是由玩家制作的。
Mołot

1
@Molot:这是我上一段的第一个示例。:)我想我只是真的在考虑开发人员发布的内容以解决此问题,并且我想您可以将开发人员与播放器创建的内容视为动态/静态或手动/程序化之外的另一个轴。例如,在许多游戏中,玩家可以在构建模式下构建结构,但是在其余游戏中地图是静态的,因此您可以拥有静态的玩家创建的内容。但是,再次重申,我对术语并不过于在意。:)
肖恩·米德迪奇

4

“动态”是指

“(过程或系统的)特征是不断变化,活动或进步。”

(谷歌说。)

为了区分这两个术语,我将使用“动态生成”,意思是“在您玩游戏的同时即时创建”。

“过程生成”是指算法生成的,可以是预先生成的,也可以是即时生成的。


1
那与我最初的想法相反?
Evorlor

2
@Evorlor:我会这么说。“过程式”仅表示某种算法可以完成内容。“动态”是指内容随时间变化。您可以使用代码仅生成一次内容,因此它是静态的而不是动态的。所有动态内容都是程序性的,但并非所有程序内容都是动态的。您也可以通过各种方式将两者混合使用。例如,动态地将静态内容填充到程序中。:)
肖恩·米德迪奇

@SeanMiddleditch请转换为回答:-)
Evorlor

@Evorlor:完成了,但是我不确定我说的比大卫范布林克已经做的要多。
肖恩·米德迪奇

@SeanMiddleditch也许不是,但是您的解释对我来说更清楚。谢谢!
Evorlor'Aug

1

这里是一个简短的概述。

  • 动态生成

“动态”一词意味着变化。“一代”一词意味着事物的创造,因此“动态一代”正在改变一代。因此,“动态生成”是指不断变化的内容。

  • 程序生成

“程序”一词是指由计算机算法而非人创造的内容。由于我们建立的“生成”是指创建,因此“过程生成”是指通过计算机算法生成的内容。

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.