计算机游戏(上)——开放的计算系统

本文作者:北京师范大学系统科学学院副教授张江,授权转载,原文地址。

一、计算系统的开放性问题

1、计算系统的开放性

无论是人工智能、涌现计算还是元胞自动机,这些已知的计算模式都存在着一个局限:它们都是封闭的计算系统。很多学者认为,正是因为这类计算系统不够开放,所以这些人工系统的复杂性还远远不能与真实世界中的复杂性相媲美[1]。

提到系统的开放性与封闭性,很多人会联想到热力学第二定律[2]。该定律指出,任何一个封闭系统必然会朝向最无序的熵增状态发展。但是,物理中的封闭系统是指不与外界进行能量、物质交换的系统。严格来讲,任何一个计算系统都不算封闭系统,因为计算系统需要外界的能量流注入以支持它完成计算。所以,我们不能简单套用物理中的热力学第二定律。

与能量和物质系统的开放性不同,计算系统的开放性是指程序在运行的过程中允许从外界输入信息,从而改变程序原始的运行轨迹的性质。比如Windows的“扫雷游戏”就是一个开放的计算系统,因为计算程序的运行必须要求用户的信息输入(操作);而“生命游戏”元胞自动机则是一个封闭的系统,因为一旦该程序运行起来之后,外界就不能再干预该系统的运作了。

我们通常所说的系统的外界环境往往指我们所面对的大千世界。然而,当我们考虑计算系统的外界环境的时候,情况可能不必要这么复杂。因为计算机都是人类的工具,任何一个计算系统的设计归根结底都是为了满足人类使用者的需要。所以,计算系统的外界环境通常是指它的使用者——人(或者称为用户User、玩家Player)。当我们提到计算系统的开放性的时候,实际上我们讨论更多的是一种人——使用者和机器——计算系统之间的关系。

2、计算机游戏

当我们把人-机关系看作开放计算系统的重要问题的时候,我们自然就会想到各种人-机结合方式。从机械四肢、人造器官,到人脑与外围硬件的神经连接,再到人-机“软结合”的定性与定量结合和专家系统、机器学习系统等等,真可以说是五花八门。然而,仔细分析这些人-机结合方式会发现,它们往往过于工程化、技术化,需要耗费大量的人力、物力。更重要的是,这些技术并没有给我们提供一种简单的原型,让我们从人与机器两个方面进行更多的理论思考。

本章我们将讨论一类特殊的人-机系统:计算机游戏。这类系统不仅小巧、灵活,而且同时具备了精巧性(从程序的角度说)以及娱乐性(从人的角度说)的要求。因此,计算机游戏很有可能作为分析人-机关系问题的一个原型。

让我们从一个最简单的游戏:“俄罗斯方块”(Tetris)出发来体会这种人-机系统的特点。

计算机游戏(上)——开放的计算系统_第1张图片
俄罗斯方块

首先,俄罗斯方块是一个开放的计算机程序。在每一个时间步,玩家需要输入信息来完成下落木块的旋转和位移,而计算机程序则要决定开始下落的木块形状,以及当物块落地后,系统如何消去这一层的方块,还有对玩家的奖赏以及惩罚等等。因此,俄罗斯方块是一个开放的计算系统。

其次,俄罗斯方块的设计既考虑了程序运行的简单性,又考虑了用户的可玩性体验。也就是说,一个游戏必须做到好玩(从人类的角度讲),同时算法流畅、逻辑规则明确(从计算机程序的角度讲),它才是一个好的游戏。尽管人和人是千差万别,每一个人的内心感受又是如此非常复杂多变,但是当我们面对俄罗斯方块这个简单的游戏的时候,一切复杂的动作都会被简化成物块上下左右的移动操作。所以,这就为我们进一步从理论上分析游戏系统奠定了基础。

本章从计算机游戏这类开放性的计算系统出发讨论有关人-机关系的问题。

首先,我们将沿着历史发展的脉络简单介绍计算机游戏的发展以及分类,以图让读者对计算机游戏有一个初步的了解。之后,我们用一种开放式的动力系统模型概括了计算机游戏的逻辑内核。

其次,我们从人-机关系的角度分析了计算机游戏的特点:一方面,游戏设计中追求的可玩性使得游戏可以为人提供娱乐;另一方面,玩家的操作为计算机程序的进化与改进提供了可能,因此计算机程序与玩家构成了一种和谐共生的关系。

最后,我们从计算机游戏出发,对人-机关系所带来的哲学以及社会问题展开探讨:随着大型网络游戏的出现,人类社会即将面临一场消费与生产之间的边界、人类与机器之间的边界逐渐摸糊的转型;这种转型已经体现在了很多科幻影片之中;值得指出的是,这种转型很有可能会使得人类走向一种更高层的“人-机结合”的沉浸状态。

二、游戏——一种天然的开放计算系统

提到计算机游戏,人们首先想到的是现代年轻人热衷的网络游戏。然而,这些游戏的外表设计过于复杂,以至于我们很难把握游戏的本质。除了炫酷的3D画面和复杂的人工智能程序,我们完全可以从一种更广义的视角来定义游戏,它就是一种“有趣的、交互性的活动”。

按照这个定义,我们会发现,很多人类活动,包括体育竞技、球类竞赛都属于广义的游戏。可以说,游戏的历史甚至比人类历史还长因为,这是因为小猫小狗等动物都会通过玩耍或者相互追逐而游戏,那么很有可能,猿猴在进化成人之前就已经学会了游戏。
当然,这个定义可以扩充我们对游戏的理解,但是也会让讨论过于发散。在本章中,我们将主要集中讨论计算机游戏。下面让我们来简单回顾一下计算机游戏的历史。

1、计算机游戏简史

需要指出的是,严格来说,视频游戏(Video Game,通常是一种奔跑在控制台(Console)——与电视相连接的专为游戏而设计的机器——上的游戏)和个人电脑游戏(PC Game,专指奔跑在个人计算机上的游戏)还有网络游戏(Network Game,大量互联的计算机共同运行的游戏程序)不是一种东西,但它们在软件形式、运行原理以及设计理念上却几乎没有任何区别,所以,为了表达方便,在本文中我们统称它们为计算机游戏。

计算机游戏的历史堪与计算机的历史相媲美。早在1958年的时候,美国Brookhaven 国家试验室的物理学家W.Higinbotham就用示波器设计了一款非常简单的双人乒乓球游戏,他的目的纯粹是为了消遣那些参观实验室的科学家。如下图:

计算机游戏(上)——开放的计算系统_第2张图片
第一款用示波器做的计算机游戏“双人乒乓球”

虽然这款游戏不是奔跑在电脑屏幕上的,但它却是第一款地地道道的娱乐性电子设备。1961年,Steve Rusell设计了一款名为星球大战(Spacewar)的游戏,由于这款游戏随DEC计算机一起销售,所以它被称为史上第一款最流行的计算机游戏[3]。

1966~1969年间,Ralph Baer开发了一系列可交互式的视频游戏机器,人们可以在电视机上玩各类游戏,这为计算机游戏的普及奠定了基础,Baer也被称为控制台游戏(Console Game)之父[4]。

20世纪的70~80年代是计算机游戏业蓬勃发展的20年。随着各种游戏控制台以及个人电脑的普及,一大批计算机游戏被设计出来。例如前面介绍的俄罗斯方块,还有著名的吃豆人游戏(Pac Man),超级玛丽(Super Mariao)、魂斗罗(Contra)等等。这个时期的游戏虽然没有华丽的外表,但是凭借良好的游戏规则设计,创造了游戏史上的经典。

计算机游戏(上)——开放的计算系统_第3张图片
超级玛丽

20世纪的90年代是计算机游戏爆发式发展的十年。随着多媒体电脑的普及,越来越多形象逼真、丰富多彩的游戏进入了千家万户。另一方面,由于游戏设计引擎的出现使得大批量制作游戏成为了可能。这一时期的大发展诞生了很多耳熟能详的游戏类别[5]。下面仅就一些代表性的类型进行介绍

计算机游戏(上)——开放的计算系统_第4张图片
第一人称设计游戏:“反恐精英”、即时战略游戏:“帝国时代”
(1)第一人称射击游戏

这类游戏往往是从第一人称视角进入到一个全3D的游戏世界中,玩家仿佛身临其境一个虚拟的战场中。毁灭战士(Doom),半条命(Half-life)、反恐精英(Counter-Strike)等游戏均属于第一人称设计游戏。这类游戏的特点就是逼真、刺激,适合年轻人游戏。

(2)即时战略类游戏

如果说第一人称射击类游戏模拟的是局部的战场,那么,即时战略游戏就是对宏观战场的模拟。玩家需要操控、部署大规模部队完成全局的战略安排。红色警报(Red Alert)、星际争霸(Star Craft)、帝国时代(Empire Age)等游戏就属于这类即时战略游戏。

(3)角色扮演游戏

与前面两种打打杀杀的游戏不同,角色扮演类游戏模拟的不再是战争,而是一个一个故事。玩家就仿佛是游戏世界中的演员扮演着不同的角色。游戏的展开就是在讲一个故事。仙剑奇侠传、龙与地下城(Dungeons & Dragons)等就属于这种角色扮演游戏。

(4)模拟类游戏

无论是赢得一场战争还是展开一段故事,以上介绍的几类游戏都为玩家设立了明确的目标,而模拟类游戏则没有具体的目标。玩家完全可以把程序当作一个试验场,从而根据玩家自己的目标来操作程序。

例如,著名的游戏“模拟城市”就属于这一类。玩家充当一个市长对模拟的城市进行管理。虽然不同的玩家可以创造完全不同的模拟城市,但是游戏本身并没有为玩家设置具体的任务和目标。

“模拟人生”是另外一款非常著名的模拟游戏,玩家在游戏中可以过上与自己真实生活完全不同的人生。

模拟类游戏甚至还可以对玩家进行培训。例如,一个著名的例子就是美国一个十几岁的孩子在第一次试驾飞机的时候就开的非常熟练。飞行员教官惊奇地问他:“你以前开过飞机吗?”。“不,”孩子回答说,“没开过,但是我玩过‘飞行模拟器’(flight simulator)这款游戏”。目前,也有很多汽车驾驶学校利用游戏训练学员驾驶。

当然,除了上面列举的这四类之外,90年代发展起来的游戏类型还包括:冒险类、格斗类、体育竞技类等等。但是,所有这些游戏大部分都是单机版的,也就是游戏本身不包括联网功能。

进入2000年之后,计算机游戏朝两个趋势进一步发展。一个趋势是走向了更大规模的网络游戏[6],另外一个趋势是走向了更小规模的手机游戏

最早的网络游戏起源于一种被称为泥巴(MUD,Multiple User Dimension,多用户层面)的多人聊天程序。这种程序没有图形界面,玩家只能通过在网络上传递文本信息进行互动。随着多媒体电脑以及图形加速器的普及,人们将这种多人聊天程序扩展成为现在的大型网络游戏。第二人生(Second life)、魔兽世界(World of Warcraft)是两款最有影响力的大型网络游戏。

计算机游戏(上)——开放的计算系统_第5张图片
两款流行的网络游戏:“第二人生”与“魔兽世界”

与单机版游戏最大的不同点是玩家在游戏世界中不仅仅可以跟程序进行互动,而且还可以与大量其他玩家角色进行互动。因此,在这类游戏中,虚拟世界中的社交行为、协作行为都是真实社会的缩影。最近,越来越多的社会科学家开始关注网络游戏这个领域,科学家们认为这是一个非常好的试验场所,网络游戏为科学家们研究各种人类社会行为:从病毒的传播到虚拟经济系统提供了良好的试验平台
进入2000年以后,手机成为一种非常普及的电子类产品,越来越多的游戏商家看准了这块市场,开发了很多手机游戏。在这里,我们不对一般的手机游戏进行赘述,而专门考察一类比较特别的称之为手机定位类的游戏。

计算机游戏(上)——开放的计算系统_第6张图片
手机定位版的“吃豆人”游戏

手机定位游戏将每个安置了全球定位系统(GPS)的手机看作玩家的输入装置,利用玩家在地理空间上的移动就而实现游戏中的互动。例如,上图所示的就是一款手机定位版的“吃豆人”(Pac-man)游戏[7]。多个玩家在一个真实世界中行走,卫星定位系统将每一个玩家的信息映射到一台服务器上。这个服务器正在按照一个现实世界的迷宫运行吃豆人的游戏。这样,每个玩家通过扮演不同的吃豆人角色(吃豆人或者妖精),就可以通过真实世界的运动而完成游戏。
这种手机定位游戏大大拓展了人们对游戏概念的理解,它摆脱了游戏一定依赖于键盘和鼠标的传统观念。

2、计算机游戏的逻辑内核

在这一小节,我们透过各种眼花缭乱的游戏外形,从计算程序的角度来理解计算机游戏。可以不夸张的说,无论是炫酷的3D游戏,还是小巧的手机游戏,它们都共享一个非常基本的逻辑内核:一个开放的动力学系统(Open Dynamical System)

具体来说,我们可以把任何一个游戏看作一个模拟的世界。这样,随着CPU时钟的每一次嘀嗒跳动,这个游戏世界就运行一个仿真周期,游戏根据程序算法完成世界状态的更新。而游戏与模拟程序最大的不同就在于游戏允许玩家的输入,因此,我们可以把游戏的逻辑内核看作是一个简单的框图:

计算机游戏(上)——开放的计算系统_第7张图片
开放式的动力系统

每一个时间步,游戏程序根据用户的输入信息I以及游戏的状态x完成一次运算f(x,I),这个运算结果反映为游戏新一步的状态,而这个状态又会在下一步反馈给系统。游戏的进度就体现在每个周期的x变量的不同。而游戏的规则则体现为f的不同。通常情况下,f不能写出解析的函数形式,而必须用算法的语言进行表达:它往往包含了游戏逻辑、人工智能、物理模拟、图形渲染等功能

从数学上看,一个函数迭代:xt+1=f(xt)是一个标准的动力系统(Dynamical System)[8]。但是,该框图与动力系统最大的不同在玩家输入I的存在,因此我们称此框图表达的是一种开放式的动力系统(Open Dynamical System)。玩家输入信息I对于动力系统的设计者来说完全是不确定的(不包含在规则f之内),所以这种开放式的计算系统具有天然的不确定性

值得指出的是,在随机动力系统的研究中,系统的运行外界随机因素的干扰。但是,在游戏中,外界输入的信息是玩家的游戏行为,它显然不能等同于一种随机干扰因素。因此,开放动力系统与随机动力系统是不同的。

总之,无论计算机游戏的形式多么复杂多变,它的最小逻辑内核却是不变的,也就是一个包含了玩家更新信息的开放式动力系统。

本文版权所有,如需转载请联系本人和张江,禁止不获取授权的任何形式的转载,包括且不限于纸媒、微博、微信、公众号。

你可能感兴趣的:(计算机游戏(上)——开放的计算系统)