游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2795|回复: 2

一点点对“过程生成”的介绍

[复制链接]

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2010-8-5 19:35:00 | 显示全部楼层 |阅读模式

技术, 过程生成
翻译:Infinity汉化组heloc

当人们听说《无限星辰:失落的地球》 ( Infinity: The Quest for Earth ) 将是一个包含上千亿星系的虚拟宇宙世界时,一般都会问以下几个问题:




怎么可能以一己之力开发一个满是真实比例大小的星体的虚拟宇宙?


玩家怎么无缝的穿梭在宇宙空间和行星大气(地面)之间?


系统怎么保证每次我回来看到的星球还是原来的样子?


那么多星球,不用一些画好的模型来重复拼接,可能吗?


这么多运算要占用很多硬盘空间吗?


反正就一句话,你这东西用当今的科学技术可能实现吗?!



总有一些人因为以上的问题而怀疑《无限星辰》的可信度。这并不奇怪,任何听说这个包含如此多星体的虚拟宇宙世界是一个人编的人都有理由表示怀疑,这听起来确实像一个壮举。但究其原因是因为传统的游戏制作方式占据市场太久了:一群程序员和美工组成一个团队,设计每一个游戏内容,一点点编写程序和建模,最后再整合在一起……不过请一定要记住,《无限星辰》绝对不是用这种传统的制作方式创造的。

简单来说就一句话:这个游戏世界是由一种技术创造的,这个技术就叫“过程生成”。这不是什么神秘,空穴来风的东西,因为“过程生成”在1984年就有人提出了,然后1993年出现了它的先锋作品:Elite II。就像《无限星辰》一样,它们也是宇宙模拟器,包括成千上万的星系,每个星系都有自己完备的系统。这些在25年前就可以实现,更不用说现在了。现在就有个叫“Spore”(孢子)的游戏正在用“过程生成”生成中。

CutterJohn 写到:

我们身边就有个能简单解释过程生成的例子:Windows里自带的空当接龙。每次你点开“游戏”菜单,选择“选局”,只要你输入相同的数字,出来的牌也会是一样的。


那到底什么是“过程生成”?!简单的说就是一个连列方程组,里面有一个变量供用户输入来改变结果。这个变量就叫“种子”。下面用个例子来说明:

5 + x = y

如果你输入的x是5,结果y就是10,如果x等于10,结果就是15。这些结果永远都会是一样的!5+5永远是10,5+10永远是15。当然,用在过程生成里的等式比这个复杂多了。看上去结果是随机的,其实只要输入相同的“种子”,即使在不同的计算机上结果也肯定是一样的。

《无限星辰》就是用上千条这样的代码生成的。你只要输入些数字,这个系统就会生成一整个包含各种行星和恒星的虚拟宇宙。但如果输入的“种子”不同,生成的宇宙就大不一样。这套机制在各个层面都是一样的。生成宇宙的“种子”会再生成星系的“种子”。比方说你探索到了一个星系,以后不管你离开多少次,再回来的时候这个星系也还会是完全一样的。关键就是“种子”永远是一样的。

IA 写到:

不管是1000个星球还是1亿个,在过程生成中没什么区别


在物理层面,过程生成其实比传统编程用的物理存储空间要少。存在你硬盘里的只有舰船的模型和要用到的各种贴图,当然还有生成代码(最多只有几兆)。只要提供了“种子”,你的电脑就开始生成宇宙了。一旦你探索到了一个新的星系,你的电脑就会为你生成一个行星星系。所有和你一样在线的人都会有同样的代码和种子,所以他们看到的这个星系也会和你一样。所有的生成工作都是在你机器上运行的,只有种子是在网络上传递的,这样也就省了很多带宽。

当然这个技术也有不足之处,虽然每个行星和星系是不一样的,但它们之间会有很多相似处。当然这个也没什么好惊讶的。类地行星在大气组成和基本生物组成上是类似的,所以在远处看差不多。但细节上会完全不同,比如说地容地貌,大陆形状等等。从某种意义上说,这正是过程生成的一大优势:我们可以创造一个巨大的世界,虽然其中大多数是荒芜、重复的,但其中一定有亮点。说不定在无意中你就会探索到一片世外桃源。

希望本介绍可以让你相信《无限星辰》的虚拟宇宙是可能的。如果你还有其他问题,请随意提问,这里有很多热心玩家会回答你的各种问题!

相关游戏截图:


原帖:http://www.infinity-universe.com ... iewtopic.php?t=7426

7

主题

69

帖子

263

积分

中级会员

Rank: 3Rank: 3

积分
263
发表于 2010-8-21 14:15:00 | 显示全部楼层

Re: 一点点对“过程生成”的介绍

是挺好的技术 不过现在电脑扛不起游戏其他动作和生成过程同事的消耗吧。作网游不现实。
还有那个纹理算法很复杂吧,要自动生成个种地图怪物那个很多的纹理排列算法很复杂吧,有没有一点算法原理?
那个地形要自动生成恐怕物体至少要支持现实中各种的物理特性才能仿照现实生成各种随即的地形。这个现在电脑还是扛不住啊。

30

主题

422

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2010-8-22 12:59:00 | 显示全部楼层

Re:一点点对“过程生成”的介绍

Substance Air的纹理生成就用到过程生成技术了吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-18 20:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表