涌现与自生性游戏性
精品文章引言——侠盗猎车手赢在哪里?2004 年全美最畅销的PS2游戏是什么?是《侠盗猎车手》,英文简称《GTA》。它推出的时间是2004年10月26日,据2005年4月21日的新闻报道,其累计总销量已经逼近1000万套。在媒体的宣传上,《GTA》因为涉及到枪击、暴力、黑社会以及性而出名,甚至因为内部黄色片断被破解而引起渲染大波,但是《GTA》为数以千万计的玩家所接受,仅仅是因为这些不良因素么?美国每年含有不良因素的游戏数以百计,为什么单单只有《GTA》大获成功呢?
如今电脑游戏、网络游戏的发展迅速,3D图形技术的突破使得人们可以搭建丰富多彩的游戏世界;网络游戏的普及使千千万万的玩家可以形成空前规模的互动,但是,游戏的下一步将去向何方?除了更绚、更大、更快之外,游戏能不能在某些更加深刻的地方得到突破呢?
这里涉及到游戏设计里的一个新理念:涌现。
上帝怎样创造世界
1.涌现——复杂性科学 VS 还原理论
涌现,Emergence,也译为突现。这个词来源于系统科学。由于涌现在商业、经济、计算机和游戏娱乐等方面都有体现,现在已经广泛的流行。涌现性是指那些高层次具有而还原到低层次就不复存在的属性、特征、行为和功能。一个最明显的例子就是:在大量的无生命物质相互作用的过程中形成最古老的原生生命。
对涌现的揭示,是随着三论(系统论、控制论和信息论)的发展以及对复杂系统的研究而逐渐推进的。在此之前,我们一般使用还原理论来解释问题,它的基本观点是整体是由局部组成的,所以局部决定整体。整体的任何一个变化都可以在局部找到其原因,还原理论分析的方式符合我们的思维习惯,并且在很多地方都可以快速的,行之有效的解决问题。但是在遇到复杂系统的时候会产生一些无法解释的现象,比如生态、人脑、经济系统等等。因此人们开始引入复杂系统并展开研究。
在本世纪80年代,在美国圣塔菲(Santa Fe)这个地方,一群离经叛道的科学家(包括夸克之父盖尔曼、经济诺贝尔奖得主阿罗以及遗传算法之父霍兰等人)成立了叫做圣塔菲的研究所(Santa Fe Institute)开始正式讨论复杂系统中的问题,标致着复杂性科学的诞生。这里的科学家来自多个领域,他们打破了学科间的界限,用一种全新的,统一的视角来认识生命系统、神经系统、经济系统、计算机系统等等,不再关注每个领域的细节,而是大量运用隐喻和类比的方法,寻找不同系统之间的共性。
在这些复杂系统的共性中,“涌现”是一种最引人注目的普遍现象。所谓“涌现”,就是指系统中的个体遵循简单的规则,通过局部的相互作用构成一个整体的时候,一些新的属性或者规律就会突然一下子在系统的层面诞生。涌现并不破坏单个个体的规则,但是用个体的规则却无法加以解释。关于涌现,我们只能理解为“系统整体大于部分之和”。 比如说,生命是一大堆分子作用的产物,每个分子必然遵循固定的物理规律,但是当分子聚合到一起的时候,原生生命却在整个分子群体的基础上诞生。分子构成的这个整体活了,它可以为自己的利益控制低层次的分子个体,它具备了自己的生命。在这个过程中,我们无法把生命这一现象还原到单个分子的物理规则上去,并且也没有哪个“领导”分子给其它分子下达命令。所有的过程和奥秘,都只存在于系统的相互作用之中。另一个例子就是蚂蚁,蚂蚁的神经系统非常简单,只能进行简单的思考。然而大量的蚂蚁相互作用的时候就会形成等级森牙的蚂蚁王国。研究证实,蚁后并没有直接给所有的蚂蚁下达命令,每只蚂蚁也没有整个蚂蚁王国的地图,每个蚂蚁只遵循简单的规则交互,大量的蚂蚁就能够聪明的觅食,建巢,分工等等,蚂蚁王国就是在整个蚁群之上的一种“涌现”现象。
2.计算机中的涌现实例
计算机天生就是一个模拟各种复杂系统的工具。由于涌现过程中单体的行动规则非常简单,在利用计算机的时候,人们发现只需要写一些简单的程序,就可以观察到神奇的“涌现”行为。这些行为,常常会超出编程人员的想象。在这里,每一个小的程序就是一个个体,而大量的小程序的组合,就会突然在系统层面上出现了超出编程人员想象的,不可预料的“涌现”行为。让我们来看几个实例:
生命游戏
生命游戏是计算机中 “涌现”程序最著名的例子。这个模型非常简单,但是寓意丰富。它是1970年由剑桥大学的约翰•康韦编制的。在这个程序里,生命是由一个二维的方格世界上运转,每个方格可以看作一个生命体。它有两种状态:生存或者死亡。任何一个方格周围的8个方格称为它的邻居,每个方格都会发生颜色的转变,并且它从上一带到下一代的变化依赖于它自身的状态以及它的8个邻居的状态,这些变化遵循3个非常简单的规则:
1. 生存。一个活的生命方格要继续生存,至少需要2-3个活着的邻居,因为生命需要其它生命的支持。
2. 死亡:如果一个生命方格的活的邻居不足2个或者超过3个,它就死亡。因为生命的资源有限,缺乏支持与过度的
拥挤导致细胞没有生存下去的足够的资源。
3. 出生:如果一个未被占据的方格恰好具有3个活的邻居,生命就会在那里出现。
http://school.ogdev.net/upload/img/3752058801.gif
图1 生命游戏中一个特定实例
对于每一个生命,我们根据它当前的颜色以及它邻居的颜色,运用上面3个规则,可以很容易的确定它下一代的颜色。所有的方格都根据这些规则发生了一代到下一代的变化。人们很快就发现,初始条件不同,结果也非常不同。有时候,所有的生命体会很快死亡,有时候,一些细胞体像晶体一样固定下来,停留在一种固定的模式下面,在很多情况下,我们将看到一些瞬间的结构,比如花朵,蝴蝶,桃心等等。这些结构看似随机,却有着高度的对称性和秩序。
http://school.ogdev.net/upload/img/3759994945.gif
图2 生命游戏进化过程中出现的一些瞬间结构
在生命游戏中还有一种有趣的结构被称为“滑翔机”(glider),在4个周期的一个循环中,它会不停的沿着对角线的方向在方格上爬行,转换自己的位置。它虽然结构轻巧,但是本事却很大,它能够被当作一种信号在虚拟的宇宙方格中传递。
http://school.ogdev.net/upload/img/3760319153.gif
图3 滑翔机一步移动的动态变化
康韦指出:这种信号传递机构实际上可以用来构造组合出非常复杂的结构。甚至可以建造一个内嵌于“生命”游戏世界的虚拟计算机!康韦大胆预言:只要有足够大的方格空间并且等待足够长的时间,从原则上讲,“生命游戏”可以创造任何你要的东西,包括宇宙天体,进化的生物,甚至诞生出可以写Ph.D论文的智慧生命。生命游戏里变化的结构仿佛正在用自己的语言,表达着发生在这个方格宇宙中的深奥规律。生命游戏到现在已经有了将近40年的历史,但是科学家们依然没有明白其中的所有奥秘。
Boid
Boid是最广泛的用于游戏中“涌现”模型。这个模型是1986年由美国人Craig W.Reynolds发明,用于模拟鸟类群体的飞行。在这里,每一个点都代表了鸟的个体,每个鸟只能关注到固定范围内的邻居,Craig发现只要用三条非常简单的规则就可以让这些Boid活起来,而且这个群体的 动态行为可以和真实世界中的鸟群行为相比拟。这三条规则如下:
1) 靠近——每个Boid都尽量靠近它的邻居所在的中心位置。
2) 对齐——每个Boid的方向尽可能与周围邻居的飞行方向保持一致。
3) 避免碰撞——每个Boid与某些邻居靠的太近的时候就会尽量避开。
http://school.ogdev.net/upload/img/3766517781.gif
图4 Floy图例
当每个Boid都遵循以上的规则,屏幕上的动点就会体现出类似于真实鸟群飞行的飞行行为。如果加入一条规则让Boid能够避开障碍物,把障碍物理解成一种距离越近斥力越强的磁铁,那么Boid将很聪明的避开障碍物并且重新组织飞行的姿态和方式。
Tierra——进化的数字生命
进化,是大自然中最重要涌现现象之一。如果生物能够完成自我繁殖,把基因码拷贝给自己的后代,同时以微小的概率发生变异。那么新生的个体就会被自然选择并发生筛选,经历足够长的时间,就会发生进化,创造出各种动植物来。这种现象,在计算机中也可以发生。
1990年,Thomas Ray开发了一个叫做Tierra的进化系统。Tierra在西班牙语里就是地球的意思。Ray打算用这样一段程序来模拟地球生命进化的过程。一个个只有几十行的小程序体就是一个个生命,内存空间就是这些程序的生存空间,Ray把这些内存空间称为原生生物汤,汤的大小是有限的,因此,大量被复制出来的程序体为了竞争生存空间就产生了自然选择的压力。自我繁殖、变异、自然选择这三个条件就逐渐形成了。
Ray把一段祖先程序投入到了“内存汤”中,随着繁殖和变异生物的增多,它们彼此之间就开始生存竞争。在大约几百万行指令后,开始出现了不具有自我繁殖能力的寄生生物,寄生生物代码小,占用CPU时间短,繁殖快,生存优势大。然后,不久以后,宿主有逐渐进化出具有免疫寄生能力的生物,寄生生物逐渐被排除出去。之后又出现了超寄生生物,再之后是超超级寄生、社会性寄生、共生生物群体、大规模的物种爆发、物种的大灭绝、进化的军备竞赛,差不多地球生态系统自然演化过程忠的所有特征全部都出现在Tierra中。
可以说,Tierra系统中程序进化出来的种种现象早已超越了建模者的设计和想象。并且这种进化是一种开放式结局的,进化永远会不知疲惫发生下去。
这里是Tierra的主题网站:http://www.his.atr.jp/~ray/tierra/index.html。
3.涌现的共性
局部环境下的简单运算。
在以上的例子中,每一个个体它们都只是感知了周围的局部环境并且进行着相当简单的计算,每个“生命游戏”中的方格不需要知道相邻8格以外的运行情况来进行颜色变化的判断;Boid也不需要知道整个鸟群的飞行动态,;Tierra中的程序生物体也不会去探索整个空间内所有的程序。也因为如此,这些程序的代码都非常简单,基本都在几百行左右。
如果给予个人以更全局的观察能力,不仅仅会使得程序变得极其复杂,而且很有可能得不到涌现行为。在复杂情况下,这些程序甚至会变得不知道该如何行动,这也是做传统AI程序的时候很容易陷入的僵死状态。
大量个体的非线性相互作用
产生涌现的第二个条件是要存在大量的个体,并且个体之间必须发生非线性的相互作用。如果生命游戏中的方格数目只有10*10,那么很难看到甚至是最简单的结构。
大气分子足够多,但是却不能产生涌现现象。这是因为气体分子之间是简单的线性作用,符合牛顿力学的定律,个体的运动可以通过整体的求和来求解,并且很多因素会因为线性求和而抵消掉。要产生涌现,个体之间的相互作用虽然简单,却不能通过简单的线性数学方程来描述。
混沌的边缘
进一步,什么样的程序和代码能够产生涌现现象呢?目前还没有统一的答案,但是目前人们已经找到了产生“涌现”的一些必要条件,其中最重要的一个就是混沌的边缘。
所有的“涌现”系统中的个体规则都必须介于混沌和秩序的边缘,如果我们把混沌看作是一种破坏系统的张力,而秩序的力量则是维持系统,只有当两股力量相互斗争,形成平衡的时候,系统才刚好能够发生“涌现”并且创造出层出不穷的复杂结构。
例如:在生命游戏里,规定了每个方格周围恰好有3个活着的邻居时才能诞生生命。如果我们把规则修改成1个或者7个时,整个过程很快就会处于死一般的寂静或者过于混乱的情况。Boid里如果鸟的观测范围太小,就会变成一个个没有关联的例子。Tierra里的计算机程序必须按照小概率进行变异,如果没有变异,将是无意义拷贝,如果变异过于频繁,将最后失去了程序本身。
关于涌现还有很多非常多的示例,这里还可以举出蚂蚁寻找食物,以及L系统迭代的例子。
要让蚁群寻找到食物,以及生成如此结构复杂的图形,并不需要多么复杂的规则。事实上,它们的程序都没有超过200行。由以上的示例可以看到,只要制定了合适的规则,即使它非常简单,也可以在衍生出非常复杂多变、丰富多彩的结果,甚至可以创造出整个世界,因此,有句话说:愚蠢的上帝制造细节,聪明的上帝制造规则。
http://school.ogdev.net/upload/img/3775877039.gif
图5 蚁群寻找食物图例
http://school.ogdev.net/upload/img/3777135640.gif
图6 Lindermayer图形生成示例
4.自生性游戏性
一、自生性游戏性的兴起
自生性游戏性是本世纪初以来在欧美比较流行的游戏设计理念。自生性游戏性的基本思想来自于自然科学的“涌现”。最早对自生性游戏性产生兴趣,并进行系统分析的西方游戏游戏策划者,比较突出的是Ion Storm设计团队。2001年,Ion Storm的Harvey Smith就指出:“未来的游戏将拥有高度仿真的世界,产生更多的自生性行为和不可预知的玩家交互!”Randy Smith则更从实际设计的角度,于2003年提出“游戏设计要减少预制脚本(pre-scripted)的成分,增加交互的自由度,给玩家一种在游戏中任何事情都可以发生,任何交互都有可能的感觉。并强调游戏设计师是间接性的设计玩家的体验,而玩家应该是设计和实现这种体验的著作者之一”。自生性游戏性方面最早的理论分析和实践,就是由Ion Storm这批人完成的。
在自生性游戏性的探索过程中,还有两位重量级的大师,一个是Will Wright,另一个则是Peter Molyneux。他们都擅长于非故事性,非线性,open-end的游戏 ,都对游戏以外更广泛的科学技术领域的前沿比较熟悉。他们的大作《模拟人生》和《神鬼预言》也分别成为自生性游戏性的典范。当然,要说自生性游戏性的典范之作,那就不能不提到本文开始所提到的《GTA》,他的成功在很大程度上要归功于高自由度和很强的交互性,可惜媒体一般只看到游戏的暴力、血腥、色情,却不见其内在设计的精巧和创新。
二、一个与一千个哈姆雷特
游戏就本质来说是对现实世界的模拟。就单机游戏而言,不同的游戏对于模拟和剧情的重视程度不同。注重故事情节(story-based)和注重仿真(simulation)是游戏设计的两个基本主流。前者是线性(linear)的游戏,讲究的是预制脚本,硬码以及基于个例,游戏策划都是事先设定了固定的代码和脚本,玩家虽然可以看到各种各样逼真的画面和栩栩如生的角色,但是就游戏整体而言,仍然是相对静态的,固定死的。100万个玩家去玩《DQ8》,他们所经历的过程,始终是类似的。而后者,则是基于涌现(emergent),讲究仿真,系统设计以及基于规则。最近一批成功的作品,包括《模拟人生》、《GTA》以及更早的《神偷》等等,都自觉的运用了自生性游戏性的概念,在游戏的交互性上面取得了重大的突破。两者的关系如下图:
http://school.ogdev.net/upload/img/3784586251.gif
随着电脑以及游戏主机的机能不断增强,制作线性游戏的成本急剧提高。由于其基本结构是线性的,所以当世界的复杂度增加时,所需要的三维模型、材质、环境效果和动画等等都会急剧增加,由此引起制作人员数量和成本的增加都是非常高的,但是就玩家而言,却只得到了更好的视觉效果,而不是全新的游戏体验,在游戏性上并没有得到相同比例的提升。曾经有媒体预测,在PS3推向市场之后,许多基于PS游戏平台的小型厂商都将无法生存,原因便在于此。
自生性游戏性要解决的,就是在新的技术条件下如何有效增强游戏交互性的办法。因为与电影,小说等媒介相区别,游戏最大的特点就在于交互性。Warren Spector指出:未来游戏设计的关键,就在于能否自觉地意识到并利用到游戏的这种特性。他列举了这种特性的几个重要特点:
■ 换位魔力
■ 置入感
■ 参与和反应
■ 自生性游戏性
■ 共同创作
http://school.ogdev.net/upload/img/3792028779.gif
在WarrenSpector看来,自生性游戏性是游戏本身的特质之一。
在当今的游戏设计师看来,游戏对于虚拟世界的模拟包含了三个步骤,一是表层的,图像性的模拟,随着3D建模、贴图、材质技术的研究,这部分已经得到了突飞猛进的发展,下一步,需要建立虚拟世界的物理法规,物体要有重量,有质量,有特性,才能带给玩家真实的感觉,目前物理引擎的发展非常迅猛,可以说已经跨越了门槛,那么,下一步就是利用游戏性的设计去突出真实性。缺乏了更好的互动性,所搭建的游戏世界再复杂华美,也只能是虚有其表而已。
《哈姆雷特》只有一部,但是一千个人看戏剧,就有一千个哈姆雷特,这就是自生性游戏性的作用。
附:Boid的演示:http://www.bekkoame.ne.jp/~ishmnn/java/boid.html
蚂蚁寻食演示:http://www.bekkoame.ne.jp/~ishmnn/java/ants.html
游鱼演示:http://www.bekkoame.ne.jp/~ishmnn/java/fishes2.html
均需要Java Runtime Environment. 通过游戏规则探讨隐藏的玄妙哲学课题,引人入胜,赞一下。 :)
我曾经贴过生命游戏的程序
没想到,你比我搜集的东西更详细
更精彩
页:
[1]