栖息地:来自一个在线社区的报告
卢卡斯影业“栖息地”项目的教训
目录
栖息地:来自一个在线社区的报告
卢卡斯影业“栖息地”项目的教训
栖息地:来自一个在线社区的报告
卢卡斯影业“栖息地”项目的教训
上一页下一页
如果我们正在构建的是一个多用户环境,那么自然而然地,某种通信能力必须是我们系统的基础。然而,我们必须考虑到第二条原则:

运行这个世界

我们明白这一点是因为栖息地外部强加的一个糟糕设计限制,即玩家通过一个300波特串行电话链接就可以得到满意的体验(此外,一个人还可以通过商业分组交换网络路由,它对每个数据包传输施加了100~5000毫秒额外的、不可控的延迟)。
当这件事发生在我们身上时,我们把整个事件都放在了“死亡”这个角色上。我们给那个持枪的化身发了一条信息,威胁说如果她不把枪归还,就杀了她。她回答说,她所要做的就是待在城里,“死亡”无法接触到她(如果我们待在这个系统里的话,的确如此)。好吧,我们觉得她很聪明。我们通过谈判达成了一项协议,“死亡”支付10000代币赎回这把枪。我们做了一项精心安排,在城镇中心见面进行交易,由一个中立的化身充当中间人,以确保双方都不被欺骗。当然,消息传开了,交流的时候有许多观众。我们最大限度地扮演了“死亡”的角色,有大量夸张做作的滑稽场面。这件事引发了轰动,第二天早上便上了报纸,成了城镇上一连几天的热门话题。参与的化身留下了一个关于欺骗“死亡”的精彩故事,我们拿回了枪,每个人都高兴地离开了。
在线服务和通信网络的构建者在处理庞大的用户群体方面具有丰富的经验,但总体而言,他们并没有创建复杂的环境。此外,在设计用于传输信息或通信服务的系统中,庞大的用户只是一个负载问题,并不复杂。所有用户得到的都是相同的信息或服务,上文关于重复体验的评论同样适用于此。没有必要将信息空间的大小和复杂性与用户数量相匹配。尽管可能的结果是服务可用的信息量是用户数量的函数,但是这些信息通常可以被组织成一个系统的结构,仍然可以由少数人来维护。复杂性在于,它是用户自己的产品,而不是系统设计人员的——系统的操作人员无须创建所有这些材料(这是解决我们问题的第一个线索)。
接下来我们阐述一下系统的工作原理:栖息地设定的是一个面向对象的世界模型。

栖息地是什么?

世界中的建筑

栖息地是一个“多玩家在线虚拟环境”(其目的是成为一个娱乐媒介,所以,用户被称为“玩家”)。每位玩家使用自己的家庭电脑作为前端,通过商用的分组交换数据网络与一个集中的后端系统进行通信。前端提供用户界面,生成实时动画显示正在发生的事情,并将玩家输入的信息转化为请求发送到后端。后端维护世界模型,执行规则,并让每个玩家的前端了解不断变化的世界状态。后端让玩家不仅可以与世界互动,还可以与他人互动。
从表面上来看,这种主张不太可能引起争议,因为面向对象编程目前是软件工程行家所精选的方法。然而,我们在这里的意思是,你不仅应该采用面向对象的方法,而且你构建系统的基本对象应该或多或少与虚拟世界的用户概念模型中的对象相对应,即人员、地点和人工产品。当然,你可以使用面向对象的编程技术来构建基于多边形的系统,但是这对于解决根本问题毫无帮助。
这两种对普通操作问题截然不同的反应说明了我们的观点。在参与者的世界模型中的操作产生了一个非常令人满意的结果。另外,违反这一模型的权宜之计却引发了不安和失望。在这种情况下,在系统内部工作显然是首选。
实现平台相对而言并不重要。
一个技术上更先进的版本名叫富士通栖息地,最近开始在日本试点运营。这个版本最初的前端是富士通的新型个人计算机FM Towns,不过其他几个流行的日本机器端口也很受期待。该系统的这一版本得益于新平台的额外计算能力和图形功能,以及Towns内置的用于对象图像和声音的只读光盘。然而,系统的虚拟性本质上没有改变,富士通也没有对用户界面或任何潜在的概念进行重大的改动。

伟大的辩论

引言

在系统内工作。
栖息地提出了两种执行挑战。第一个挑战是开发一项技术——开发动画引擎、面向对象的虚拟内存、传输消息的伪操作系统,并将它们全部压缩到荒唐的Commodore 64中(后端系统也带来了一些有趣的技术问题,但它的约束并没有那么严重)。第二个挑战是栖息地世界本身的创造和管理。我们认为后一种挑战的经验对未来的网络空间设计师最为重要。
在世界的设计中也要小心谨慎。在我们的试用测试期间发生了一件事,一小群玩家在世界的数据库中利用了一个漏洞,他们将其解释为一个特性。首先介绍一些背景。化身在他们的银行账户里有2000代币,每天登录的时候,他们会收到另外100代币。化身可以通过参与商业活动、赢得比赛、发现埋藏的宝藏等来获得额外的代币。他们可以把自己的代币花在其他东西上,比如购买名为“贩卖机器人”的自动售货机里出售的各种商品。这里还有典当机器,可以把物品赎回(当然是折扣价)。
栖息地受到了历史悠久的“电脑黑客科幻小说”(尤其是弗诺·文奇的中篇小说《真名实姓》)的启发,还从许多儿时的虚构游戏、最近的角色扮演等游戏中得到了灵感。其他的影响因素还有很多,就不在这里一一列出了。
卢卡斯影业的栖息地是由卢卡斯影业游戏(卢卡斯艺术娱乐公司的一个部门)与量子计算机服务公司联合创建的。这可以说是创建大规模商业多用户虚拟环境的首次尝试。与许多基于复杂的接口硬件和每名专用计算机用户数万美元费用的实验室大不相同的是,栖息地建立在普通的商业在线服务上,使用廉价的(有人说是“玩具”)家用计算机来支持用户互动。尽管这有些平民化基础,但是栖息地的目标雄心勃勃。我们开发的系统可以在一个共享网络空间中支持成千上万名用户。栖息地呈现给用户的是实时动画,将他们带入到在线模拟世界中,在这里,用户可以交流、玩游戏、冒险、恋爱、结婚、离婚、创业、发现宗教、发动战争、反抗战争、尝试自治。
后端还维护着面向对象的世界。与前端一样,后端对象具有可执行的行为和内存中的状态信息。此外,由于后台维护着整个栖息地世界持续的全局状态,因此对象也由数据库记录来表示,这些数据库记录可以在“不使用”的时候存储在磁盘上。后端对象行为是由前端的消息调用的。这些后端行为的工作方式大致相同:后端从玩家的前端接收到了请求一些动作的消息,随后采取行动并使世界的状态产生变化;后端行为将响应消息发送回前端,通知它请求的结果,并将通知消息发送到同一地区其他玩家的前端,告诉他们发生了什么事情。
《真名实姓》的故事背景是“网络空间”(尽管《真名实姓》出版时,“网络空间”这个词尚未诞生),但这是一部虚构作品。栖息地是一个虚拟社区,使用了《真名实姓》中的一些比喻,并让它们成为现实。前两篇文章发表于20世纪90年代初,最后一篇在20世纪90年代中期发表于互联网上。
认清现实。
一旦我们开始在概念层面上而不是在表现层面上工作,我们就会被以下的观察所震惊:
通信对象定义似乎是一个非常重要的问题,而我们实际上没有机会在栖息地中解决这个问题。我们如果想要拥有一个动态系统,就必须解决这个问题。如果系统能够发展,那么随着时间的推移添加新的对象类型的能力至关重要。
再举一个在系统内部工作的例子,这一次是在社会意义上,下文对这次体验进行了详细的描述。栖息地中更受欢迎的活动之一发生在测试后期,这是一个较为活跃的参与者的想法,他最近成了量子通信的员工。这个活动被称为“死亡99lib•net地牢”。
可以创建自动化工具来帮助生成天生具有高度规律性和结构的区域,比如公寓大楼和道路网络。我们创造了许多这样的工具,它们的精神后代无疑将在未来网络空间设计师的标准袋中找到。然而,让这个世界上的某些地方适应这些技术的特性也使得世界上的那些相同的地方变得不再重要了。如果每一栋公寓楼看起来都像其他的一样,那真的不是问题。但如果每片魔法森林都是一样的,那就是一个大问题。那些价值在于其独特性的地方,或者至少是与周围不同的地方,这些都需要手工制作。这个过程所耗费的大量人力和时间,令人难以置信。此外,即使是极富想象力的人,他们的创造也会局限在一定范围内,特别是如果他们在一个没有受到其他设计师作品和反应影响的原始环境中工作。
化身可以移动,拾取、放下、操纵物体,相互交谈,打手势,每一个化身都在一名玩家的控制之下。控制是通过操纵杆,使玩家可以指向事物并发出指令。谈话是通过在键盘上打字来完成。玩家输入的文本出现在化身头顶上卡通风格的“文字气球”中。
福田和夫和他在富士通的同事把我们的愿景带到了日本,并将其作为自己的目标。我们在美国信息交换(AMiX)的老板菲尔·萨林让我们抽时间写了这篇论文,甚至资助我们参加首次网络空间会议,尽管这在当时与他业务直接关联似乎并不明显。我们还要感谢迈克尔·本尼迪克特、唐·福塞尔和他们的同伴组织了这次会议,从而促使我们开始把我们的想法和经验写到文章中。最后,迪恩·特里布尔、马克·米勒和埃里克·德雷克斯勒都为我们提供了宝贵的见解,我们期待着这一切将会引领我们走向何方。
当一个对象被实例化时,我们分配一个内存块来包含对象的状态。对象状态信息的前几个字节在所有对象中都采用相同的形式,包括对象的屏幕位置和显示属性等内容。当系统内核生成显示并管理运行时的环境时,该标准信息将被内核解释。状态信息的其余部分随对象类型而变化,只能通过对象的行为代码访问。
然而,我们对网络空间数据通信标准中心的关注更多地集中在传输数据的定义,而非较数据传输协议上。从A点到B点可靠地获取比特的机制对我们来说并不特别有趣。这并不是因为这些机制不重要(它们显然重要),也不是因为它们不会形成重大的研究和工程挑战(它们显然已经做到了),而是因为我们关注的是基于对象的网络空间的独特通信需求。我们关心的是在对象之间发送消息(通信行为而非表现)的协议,以及将对象定义从一个系统传递到另一个系统的协议。
鉴于上文的告诫,应该允许用户掌握控制权,我们需要告诉他们注意事项,并给出我们的下一个主张:
然而,即使在一个技术更先进的网络中,带宽仍然是稀缺的,用经济学家的行话来说就是:可用的承载能力不是无限的。供求法则表明,无论有多少容量,你总是想要更多。当通信技术发展到每家每户都链接了千兆波特光纤这种程度的时候,计算技术也会达到与之匹配的程度。我们的处理器对数据日益增长的需求意味着寻找更复杂的数据压缩技术仍然是一个热门的研究领域(尽管到了那时,我们压缩的可能是高分辨率的体积时间序列,或者更深奥的东西)。
在设计一款软件时,通常假定基础设施层是用户与被操纵的底层数据(可能多个应用程序将使用相同的数据,但原理仍然相同)之间的唯一中间层。通常,用户不需要知道数据是如何在应用程序内部编码和构建的。实际上,一个好的应用程序的目的就是不让用户再受到丑陋的技术细节的影响。可以想象,虽然一个技术牛人愿意投入时间和精力来破译事物的内部结构,但这是一件不寻常的事情,因为几乎没有什么优势可以获得。毕竟,应用程序本身的目的是让访问和操作数据相比于在比特和字节的级别上进行挖掘更加容易,不过也有例外。例如,大多数游戏程序故意在玩家的游戏中设置障碍,以使游戏具有挑战性。通过对这样一个程序的内部进行修补——转存数据文件并研究它们,拆卸程序并做可能的修改——“欺骗”便可能产生。然而,这种欺骗有在纸牌游戏中作弊的味道:后果只与作弊者自己有关。不同的是,拆卸游戏程序是一种独立的解谜练习,而纸牌游戏中的作弊是没有意义的,如果有的话,从中获得的满足感也完全属于个人。
栖息地最初的规格要求我们创建一个能够支持两万名化身的世界,并计划可扩张到五万。无论怎么看,这都是一项庞大的事业,复杂的问题肯定在意料之中。然而,在实践中,我们在开发的早期就超过了复杂性阈值。当我们网络社区的人口达到五十左右时,其复杂性就会超出我们的理解(这五十人是做好了容忍漏洞的准备的“内部人员”)。
我们在上文提到了我们的主要原则:
通信带宽是一种稀缺资源。
最后,我们开始相信,对网络空间开发人员来说,最重要的挑战是解决世界的创建和管理问题。虽然我们只是第一次尝试解决这些问题,但有一些事情已经变得很清楚了。其中最重要的一点是,管理一个网络空间世界并不像管理一个用户应用程序,甚至也不像管理一个传统的在线服务中的世界。相反,它更像是治理一个真正的国家。网络空间设计师将像从计算机科学中受益一样,从社会学和经济学原理的研究中受益。我们提倡对世界的构建采用一种进化的方式,而不是一种集中的、社会主义的方式。
前端由系统内核和对象集合组成。内核处理内存管理、显示生成、磁盘输入/输出、移动通信,以及其他“操作系统”功能。对象实现了世界本身的语义。每种类型的栖息地对象都有一个由一组资源组成的定义,包括用于驱动显示、音频数据和可执行代码的动画。对象的可执行代码实现了一系列标准行为,每个行为都由不同玩家的命令或系统事件调用。该模型与面向对象编程系统中的模型类似,如Smalltalk,分类、方法、消息都是如此。这些资源消耗了大量稀缺的前端内存,因此我们不能同时将它们全部保存在内核中。幸运的是,它们的定义是不变的,所以我们只需在需要的时候从磁盘中交换它们,丢弃最近使用的资源来腾出空间。

经验教训

如果所有玩家都有相同的目标、兴趣、动机和行为类型,那么这个世界设计问题可能仍然是容易处理的。然而,真人是千差万别的。对于普通游戏或模拟的设计者而言,人的多样性并不是一个主要问题,因为他(她)要为参与者设定目标和动机,并指定他们所能利用的活动,以便将事件引导到最优方向。然而,栖息地是刻意开放和多元化的。我们这个世界背后的理念刚好是,它并没有为它的居民设定一套固定的目标,而是提供了一种广泛可能的活动,让玩家可以根据自己的兴趣来选择。我们的目的是提供各种可能的体验,从有既定规则和目标的事件(如寻宝游戏),到由玩家的个人动机所推动的活动(创立公司、经营报刊),再到完全自由、纯粹的生存活动(同朋友闲逛、谈话)。然而,对我们来说,大部分活动都涉及一定程度的预先计划和安排——我们就像远洋航行中的巡航总监一样,但我们仍然像游戏设计师一样思考。
我们希望以一条警告作为结束,希望它不会有太大争议:
例如,在控制玩家的情况下,栖息地的世界将会变得比以前更大、更多样化,而我们自己不是一个技术“瓶颈”。所有新地区的生成和功能的实现都必须经过我们,因为没有一种方法可以让玩家自己创造世界的新区域。区域创造是一种深奥的专业技术,需要大量的模糊工具和对Commodore 64所施加的危险雷区限制具备较深刻的理解。它还需要大量的幕后活动,这可能会破坏许多人的幻想。下一代类栖息地系统的目标之一应该是允许参与者以更大的创造性进行参与,而不需要他们一跃成为做这些工作的成熟专家。
屏幕的最大部分专门用于图形显示。这是关
九九藏书
于玩家在栖息地世界的当前位置的动画视图。这个场景由屏幕上各种各样的物体组成。玩家们被我们称为“化身”的动画人物所代表。化身通常是人形的,但并不绝对。
我们认为网络空间的决定性特征是共享的虚拟环境,而不是用于将用户传输到虚拟环境中的显示技术。如果你能在没有头戴式显示器和其他昂贵的图形硬件的情况下生活的话,那么这样的网络空间在今天就是可行的。栖息地便是这一论点的证据。

结论

许多物品都是可以随身携带的,化身可以拿在手中或装在口袋里。其中包括各种容器、金钱、武器、工具和奇异的法器。这里列出了最重要的一些物品类别和它们的功能。完整表单中的物品类型有数百个。部分物体列表如下:
对于使工程师们陷入上述问题中的建构主义偏见,经济学家和社会学家的研究成果比软件工程界的要多。游戏和模拟设计师在为个人和小组创建虚拟世界方面经验丰富。然而,他们没有理由去学习如何处理大量同时使用的用户。由于每个用户或小组都与其他用户无关,所以可以重复使用同一个世界。如果你正在玩一场冒险游戏,在(真实的)世界其他地方的成千上万人也在玩一样的游戏,那么这对你的体验没有任何影响。对于这个世界的创造者来说,为了用户与世界交互的一个小时,花费几十甚至上个百小时创建环境也是合情合理的。因为成千上万的其他个人用户都能享受到这一个小时的体验。
其实,大型系统所带来的挑战,已经促使埃里克·德雷克斯勒和马克·米勒等研究人员质疑我们在这里所评论的集中的、以规划作为主导的态度,并提出基于进化和市场原则的替代方法。这些原则似乎适用于所有类型的复杂系统,而不仅仅是那些涉及人类交互的系统。
对象行为是由内核在响应玩家输入的信息时调用的。每个对象都响应一组标准动词,这些标准动词直接映射到玩家可用的命令。每个行为只是一个执行指定动作的子程序,为此,它可以调用其他对象的行为或向后端发送请求消息。除了标准的动词行为之外,对象可能还有额外的行为,这些行为是由从后端异步到达的消息所调用的。
我们的目标是使机器之间的通信主要发生在行为层面(人们和事物正在做的事情),而不是表现层面(场景如何变化)。对虚拟世界中某个地方的描述应该是那里有什么,而不是看起来像什么。对象之间的交互应该由功能模型而不是物理模型来描述。这些高级别表现和直接用户交互所需要的低级别表现之间的转换所需要的计算本质上是局部功能。在本地处理器中,显示渲染技术可能是任意复杂的,物理模型也是任意复杂的。然而,这种计算所需的数据通道容量不需要也不应该被压缩到本地处理器和远程处理器之间可用的有限带宽中。尝试这样做只会导致像北美表示级别协议语法(NAPLPS,一种发送数据的格式,用于可视图文系统)这样的灾难。
我们深信,网络空间系统的一个决定性特征是它代表了一个多用户环境。这源于一个事实:(在我们看来)人们在这样一个系统中寻求的是丰富性、复杂性和深度。没有人知道如何制造出接近真正人类复杂性的自动机器,更不用说制造一个社会了。那么,我们的方法甚至不是去尝试它,而是使用计算媒介来增强真实人类之间的通信渠道。
然而,我们想要交流的最重要的部分是人的行为。幸运的是,如果我们采用一种相对抽象的高级描述,直接处理行为概念,那么就可以很简洁地表示这些内容。这就引出了我们的第三条原则:
表现层和概念层不能(也不应该)彼此完全隔离。根据对象的配置和行为,而非它们的表现来定义虚拟环境使得我们能够跨越系统中参与者之间海量的计算和显示能力。这个范围既向上又向下延伸。作为一个极端的例子,一个典型的风景对象,如树,可以用一些参数值来表现。可以想象的事情的底端可能是一台古老的Altair 8800,它拥有300波特的ASCII简易终端,此处,界面被简化为文本片段,用户将看到文字冒险游戏玩家再熟悉不过的简陋字符串:“这里有一棵树。”在顶端,你可能有一个强大的处理器,它通过增加分形模型并以高分辨率在三个维度上进行渲染生成树的图像,实时绘制最细微的细节,在微风中飘扬的树枝和风的声音通过高保真数字立体声耳机传到你的耳中。两个用户可能会在同一个世界里的同一个地方看到同一棵树,并相互交谈。目前,这两种情况都是令人难以置信的,首先是因为当更好的界面变得可用时,没有人会继续忍受这种粗糙的界面,其次是因为计算硬件还不存在。然而,问题的关键在于,这种方法涵盖了已经过时的系统和那些在设计师眼中仍然闪烁着光芒的系统。它的两个后果是显著的。第一,我们今天可以建立有效的网络空间系统。栖息地的存在充分证明了这一原则。第二,你可以想象,只要有一点点的聪明和远见,你就可以开始用今天的技术建立一个系统,它可以随着未来的技术发展而顺利发展。在现实世界中,增长途径的可用性很重要,特别是如果网络空间要成为一种重要的通信媒介的话(正如我们所认为的那样)。
为了在有限的篇幅里尽可能多地叙述,我们将通过一系列的原则和主张来描述我们自认为学到的东西,这些原则和主张围绕着推理和事例展开。
广大公众把互联网视为各种各样的东西:商业机会、交流手段、公告牌……有时则是一个社区。但是在一般公众意识到互联网之前,在线社区就已经出现了,最有趣的早期实验之一是由卢卡斯影业赞助的“栖息地”(Habitat)。作为栖息地的共同创造者,奇普·莫宁斯达和兰德尔·法默提供了他们对在设计和实施这个迷人有趣的项目时发现的问题和解决方案的业内看法。这个项目的“神谕”兰德尔·法默同时还分享了他在与发展中的新兴社区成员互动时的观察。虽然栖息地是20世纪80年代末的一个项目,但是它的逸事报告在其对活跃的社会有机体的简要描述方面依然引人入胜。
几个星期以来,栖息地的报纸《咆哮》上出现了一则广告,宣布“恐惧二重奏”“死亡”“阴影”向所有人发起挑战,挑战者需要进入他们的巢穴。很快,在城镇的外围,一座地牢的入口出现了。入口前面是一个牌子,上面写着:“危险!后果自负!”两名系统操作员以“死亡”和“阴影”为名登录,他们配备了可以一枪使人毙命的特制枪,而不是通常的十二枪。这两个角色漫步在地牢里,向他们遇到的任何人射击。他们还装备了特殊的魔杖,可以治愈其他化身对他们的伤害,这样他们就不会被杀死。更糟的是,这个地方到处都是死胡同,各个区域之间病态的联系,以及各种各样令人讨厌的、通常是致命的特征。很明显,在掌握地牢之前,任何一个探索者最好做好“死”几次的准备。奖励是相当丰厚的:最少1000代币,并能访问一个出售瞬移魔杖的特殊贩卖机器人。此外,鉴于已经明确通知,玩家在进入之前要先清空自己的口袋将“被杀死”的代价降到最低。
我们想要感谢帮助栖息地成为现实的许多人的贡献。在卢卡斯影业,阿里克·威尔默写了大部分的Commodore 64前端软件;朗·吉尔伯特、查理·凯尔纳、诺亚·法尔斯坦也提供了宝贵的编程和设计支持;加里·温尼克和肯·麦克林负责了所有的艺术插画;克里斯·格里格负责声音;史提夫·阿诺德提供了出色的管理支持;乔治·卢卡斯给了我们开展这个项目的自由,尽管他知道这个项目既不切实际又非常疯狂。在量子公司,珍妮特·亨特写了后端的内核,肯·亨斯曼和迈克·费科在通信协议方面提供了宝贵的帮助。
突破基础设施层面和感知层面之间界限的冲动并不局限于玩家。系统运营商也会受到这种诱惑,尽管他们的动机是以权宜之计实现他们的合法目的,而不是获得非法利益。然而,在可能的程度上,我们大力支持以下原则:
我们为栖息地规划的第一个目标导向事件是一项相当复杂的寻宝活动,
藏书网
叫作“德纳利斯岛的冒险”。我们花了数个小时设计、数个星期构建(包括一百个区域的海岛),又花了几天来协调其中角色的行动。它的设计很像冒险游戏中的谜题。我们以为它会让我们的玩家玩上好几天。事实上,这个谜题不到八个小时就解决了,有一个玩家在最初的十五分钟里就找到了关键线索。许多玩家甚至没有机会进入游戏。结果是,一个人完成了一段奇妙的体验,而许多人都不知所措,花费在设计和时间设置上的巨大投资眨眼间就消耗完了。我们原本期望栖息地的观众会有各种各样的“冒险”技巧。直到后来才明白,大多数人都没有享受到快乐时光,因为他们压根儿就没真正参与进去,除此之外没有其他更合适的原因了。对于我们来说,经常做这样的事情显然愚蠢又不切实际。
开始时,我们强加给这个世界的规则很少。对于栖息地社会应该采取的形式,参与者之间的争议很大。争论的核心是一个尚未解决的哲学问题:化身是人类的延伸(因此就像对待一个真实的人一样),还是像吃豆人一样注定要死上千次的可怜虫,或是别的什么东西?栖息地中的谋杀是犯罪吗?所有武器都应该禁止吗?还是所有的一切都“只是一场游戏”?为了表明自己的观点,一个玩家难道就能随意射杀游走在他身边的人吗?这场辩论充满了活力,我们对玩家进行了系统的调查。结果模棱两可:一半人说栖息地中的谋杀是犯罪,不应该成为这个世界的一部分;而另一半人则说这是其中的一大乐趣。
最初,这项事业中的最大敌人是我们自己,我们工程师是危险的思维方式的受害者。这种思维方式的特点是,所有的事情都可以事先计划好,然后根据计划的详细说明直接实施。对于那些以简单、明确、易于理解为基础原则设计和构建系统的人来说,这是一种自然的态度。此外,在进行大多数工程项目时,这是完全合适的。这是一种思维框架,它是优秀工程师的概念工具的基本组成部分。正如马斯洛的主张“对于只有锤子的人来说,整个世界看起来就像钉子”,这是一种很容易超越其适用范围的工具。当一个系统超出复杂性的阈值时,人类的大脑就失去了维持完整和连贯模型的能力。

实现

物品类别功能
ATM自动柜员机;访问化身的银行账户
化身代表栖息地世界的玩家
袋子、盒子携带物品的容器
书籍供化身阅读的文档(如日报)
盒子中的官僚与系统操作员的通信
箱子、保险箱可存放物品的容器
棍棒、枪、刀各种武器
罗盘指向西方
从一个区域到另一个区域的通道;可以上锁
药物有不同类型;改变化身的身体状态,例如疗伤
电梯楼层间的运输工具
手电筒黑暗处的照明工具
喷泉景区亮点;为系统设计人员提供通信
游戏部分支持各种棋盘游戏:西洋双陆棋、跳棋、国际象棋等
垃圾桶处理不需要的物品
胶水系统构建工具;将物品连接在一起
地面、天空世界的基础
化身的头;有很多风格,可以定制
钥匙打开门和其他容器
小摆设一般的无用物品;用于装饰
魔杖各种类型;几乎可以做任何事情
纸张写笔记、制作地图等;用于邮件系统
典当机赎回以前购买的物品
植物、岩石一般景物
区域现实的基础
传感器各种类型;检测世界上其他看不见的情况
标志允许其他物品有文本附件
点击枪非致命武器
瞬移亭快速长途运输的方式;类似于电话亭
代币栖息地的金钱
售货机器人贩卖机;贩卖东西

现状

我们对ISO模型主要有两个争议:首先,它以一种与网络空间系统需求不匹配的方式划分了一般数据通信问题的方式;其次,也是更为重要的一点,我们认为这是混乱的放射源,因为它将系统设计者的注意力集中在一系列错误问题上,从而引导他们花时间去解决错误问题。我们之所以了解这些,是因为这件事在我们身上发生过。“表现”和“应用”只是网络空间通信协议的更高级别的错误抽象。“表现”协议假定显示的特征被嵌入到协议中。上面的讨论应该能说明为什么我们认为这样的假设既不必要也不明智。“应用”协议假设消息环境有一定的预知能力,这与我们设想的动态演进的对象系统不兼容。
此外,虽然我们已经使直接的盗窃变得不可能,但人们仍然可以通过拾取地面上的物品或其他不受关注的东西来间接盗窃。而在荒野仍然可能发生的暴力事件继续困扰着一些玩家。许多人认为这样的罪行应该被阻止或至少受到某种方式的惩罚,但他们不知道如何做。他们习惯了总是由别人提供法律和正义的世界。最终有人提出应该有一个治安官。我们很快就找到了建立投票机制的方法,并召集了一些志愿者来进行选举。在镇上的会议大厅里,一场公开的辩论受到大量关注,三个化身发表声明和回答问题。选举成功举行,“大众城邦”小镇选出了一名治安官。
栖息地世界由我们称之为“区域”的大量离散点组成。在鼎盛时期,原型栖息地世界大约由两万人组成。每个区域都毗连其他四个区域,只需将你的化身移动到屏幕的某一边缘即可完成区域的转移。门道和其他通道可以链接到额外的区域。每个区域都包含一组物品,这些对象定义了化身可以做的事情,以及玩家在电脑屏幕上看到的场景。
更好的模型是替换一对不同的顶层:信息层,它定义了对象彼此寻址的方法,以及封装结构化数据和编码低级数据类型(例如,数字)的标准方法;建立在信息层之上的定义层,它定义了对象定义的标准表示,以便对象分类可以在机器之间迁移。有人可能会说,这些只是用不同标签的简单表现和应用,但我们不认为这些差异可以轻易调和。特别是,我们认为ISO模式已经有意无意地系统性地让该领域的工作人员的思考与许多我们关心的问题偏离。
面向对象的数据表示是绝对必要的。
计算机科学家往往是还原论者,他们喜欢用原始元素来组织系统,这些元素可以在简单的正式模型的背景下轻松操纵。通常,你采用少量非常藏书网简单的基元,然后大量使用这些基元。对于面向图形的网络空间系统,其诱惑是建立在位图或多边形或其他图形基元上的。然而,这些类型的表现会招致灾难。它们源于对显示技术不恰当的痴迷,而非系统的潜在用途。
证据显示,栖息地项目为如何营造一个严肃的、具有商业价值的网络空间环境提供了丰富的事实依据。我们开发栖息地系统及管理生成的虚拟世界的经验,为未来的网络空间设计师提供了一些有趣而又重要的经验教训。本文的目的是讨论其中的一些经验教训。我们希望下一代虚拟世界的建设者可以从我们的经历和(尤其是)错误中受益。

保持“现实”的一致性

我们一次又一次地发现,基于经常无意识地假设玩家行为的活动会有意想不到的结果(当它们不是彻底失败的时候)。很明显,我们无法控制。某些事情牵涉到的人越多,我们就越难以控制。我们可以影响事物,可以建立有趣的情境,可以为事情的发生提供机会,但是我们无法决定结果。社会工程至多是一门不精确的科学(或者,正如一些人说过的,“在最精心控制的条件下进行的最精心设计的实验中,生物体会做任何它想做的事情”)。
事实证明,这并不是第一次发生这样的事情。在前一晚的混乱中,特制枪也同样被偷走了。这次扮演“死亡”的人是普通系统操作人员,他们习惯于操作常规的科灵Q-Link服务,只是命令玩家把枪放回去。玩家认为他是在正常的游戏过程中获得了武器,并对此犹豫不决,于是,操作员就威胁他,如果不服从就注销他的账号,并把他踢出系统。玩家只好把枪给了他,但对整个事件都很不满,因为玩家的许多朋友和同事都在这个系统上。他们的世界模型遭到了严重的侵犯。
多用户环境是网络空间概念的核心。
在新闻组关于网络空间的讨论中,该领域的一名工作人员解散了加勒比俱乐部(栖息地目前的化身),他认为这是一种无趣的行为,并评论说大多数活动都是空洞琐碎的交谈。事实上,这一观察在很大程度上是正确的。然而,我们希望上文所述的一些逸事能说明更多的事情正在发生,而不只是那些空洞又琐碎的谈话。此外,在此基础上解散该系统就是解散用户本身。他们花钱购买这项服务。对他们来说,这既不空洞,也不琐碎。这印证了另一条假设,即人们比他们更清楚他们应该做什么。这种假设是全知全能的中央计划者的另一种表现,它决定了所有发生的事情,这是整篇文章试图让你不去寻找的一个角色。真实的系统将会被真实的用户所使用,因此假定用户会承担你创建系统所需要的各种高尚活动是错误的。他们中的大多数人不会。网络空间也许确实会改变人类,但前提是要从真正的人类开始。
不要相信任何人。
我们假设,代币的急剧增加是由于软件中的某种缺陷。我们很困惑,没有任何漏洞报告提交上来。通过四处闲逛,我们发现一些人突然获得了巨额银行存款。我们给两位最富有的人发送了栖息地邮件,询问他们如何一夜之间弄来了这么多钱。他们的回答是:“这些钱是光明正大地得来的。我们不会告诉你钱是怎么弄来的!”在我们的再三恳求下,他们最终告诉了我们,我们纠正了错误的定价。幸运的是,整个骗局的结果是好的,因为暴发户化身用他们鼓鼓的腰包组织了一系列寻宝游戏,这些游戏是他们自己主动进行的,这在很大程度上让系统上的其他玩家享受了很多乐趣。
我们通过改变系统来折中,只允许在城市外进行偷窃和枪战。荒野将变得既野蛮又危险,而文明将会安全有序。然而,这并没有解决这场争论。反对暴力观点的杰出支持者之一想要开启第一座栖息地教堂。这将在本章后面讨论。
截至本文写作时,卢卡斯影业的栖息地的北美化身,量子通信的“加勒比俱乐部”已运营了近两年。它使用了我们最初的Commodore 64前端,以及Stratus后端软件的一个简化版本。现在,俱乐部的会员人数已经达到了15000人。
可以在感知层面的框架内完成的事情应该尽量满足一切可能。其结果是用户社区的操作更加流畅、和谐。这一警告既适用于系统的技术方面,也适用于社会方面。
我们很清楚,面向对象的世界模型是实现一切网络空间的关键要素。我们觉得我们已经对这种系统的数据表示和通信需求有了一些见解。虽然我们认为现在开始为这些事情制定详细的技术标准还为时过早,但现在是时候开始讨论了,这会对未来的标准产生影响。
一天晚上,我们中的一个人有机会扮演“死亡”角色。当我们登录时,我们发现他在一个死胡同里,还有其他四个被困在那里的化身。我们开始射击,他们也一样。然而,最后一个扮演“死亡”的操作人员并没有使用他的特殊魔杖来治疗累积的伤害,因此“死亡”角色在这次遭遇中突然意外“被杀”。就像我们之前提到的,当化身被杀时,他手中的所有物品都会掉落。此时,物品是特殊的“一击毙命”枪,它立即被一名普通玩家捡起,然后用它来射击。但这支枪并不是普通玩家应该拥有的。对此,我们该怎么办呢?
为了使这种自动化的经济更加有趣,每台贩卖机器人里的物品都有自己的价格。这样我们就可以了解当地的价格变化(例如,如果你在“杰克地方”买了一个小部件,而不是在商场里买的,那么价格就会低一些)。原来,城镇两端的两台贩卖机器人中各有一件待售商品,我们无意中为它们设置的售价低于典当机典当它们的价格:娃娃(出售75代币,典当100代币),水晶球(出售18000代币,典当30000代币)。自然,有几个人发现了这一点。一天晚上,他们拿着自己的全部财产,来到卖娃娃的贩卖机器人旁,尽可能多地买娃娃,然后把它们带到城里典当。他们在卖娃娃的贩卖机器人和典当机之间来回穿梭了好几个小时,直到他们积累了足够的资金来购买水晶球,于是他们用水晶球和几个数量级的现金流来继续这个过程。最终的结果是,至少有三个化身,每一个都拥有了几十万代币。我们直到第二天早上才发现这一点,当时我们的每日数据库状况报告显示,代币供应量一夜之间就翻了五倍。
人们经常听到,当系统超出复杂的阈值时,会变得非常庞大。例如,航天飞机和B-2轰炸机都是高于这一阈值的系统,需要格外复杂、烦琐和耗时的程序来保证设计在控制之下——这些程序十分昂贵,而且成功的只有部分。在一定程度上,复杂的问题可以通过砸钱来解决。然而,这种资本密集型的管理技术对于大多数项目来说都是一种奢侈。此外,尽管对于大多数项目而言,这些不靠谱的复杂问题的“解决方案”是遥不可及的,但是复杂性阈值本身并非如此。较小的系统也可能会遇到同样的问题。通过引入超出设计师控制范围或理解范围的混沌元素,在复杂性阈值上也可以推出更小、更简单的系统。这些混沌元素中最重要的是自主计算代理(例如,其他计算机)。这就是为什么即使是调试非常简单的通信协议也经常困难重重。此外,一个特殊的人间地狱等待着系统的实施者,其中包括了所有的、交互的人类群体的最重要的自动计算代理。这直接导致我们的下一个(可能也是最有争议的)主张:
几个星期以来,治安官只是个名义上的领袖,尽管他是一个受人尊敬的人物,并有一定的道德权威。我们困惑于应当给予他哪些权力。他有权在任何地方射杀任何人吗?是否要给他一把更厉害的枪?或是一根能把人送进监狱的魔杖?法院呢?法律呢?律师呢?我们再次对玩家进行了调查,最终解决了一系列问题,这些问题可以通过全民公决来解决。不幸的是,在实验结束和系统关闭前,我们无法对结果进行操作。然而很明显的是,有两个基本的阵营:一方支持无政府主义,另一方认为需要政府。这是一个需要由未来的网络空间设计师解决的问题。然而,我们的观点是,虚拟世界无须建立在“默认”的政府的基础上,但是可以根据需要成立一个政府。
这可能看起来像是和之前的许多观点相矛盾,但事实并非如此。网络空间系统的设计者和操作者必须同时生活在虚拟世界的两个层面上。第一个我们称为“基础设施层面”,藏书网也就是实施,即支配“现实”的规律的起源之处。第二个我们称为“感知层面”,即用户看到和体验到的东西。重要的是,这两层之间不存在“渗透”。第一个层面定义了这个世界的物理学。如果它的完整性被破坏了,其后果可能会从审美上的不愉快(观众看到了面具后面的脚手架),到精神上的破坏(有人做了一些“不可能的事”,从而违背了用户的期望,破坏了他们的幻想),再到灾难性的失败(有人破坏了系统)。当我们劝你把控制权交给用户时,我们指的是感知层面上的控制。当我们说不要相信任何人的时候,我们的意思是你不能让他们随意访问基础设施。栖息地中的一些故事就能说明这一点。
栖息地的最初版本使用Commodore 64作为前端。我们被问得最多的问题是:“为什么用Commodore 64?”不知怎的,许多人都认为这是一个技术决定,但真正的原因是商业,而非技术。栖息地最初是由卢卡斯影业用作量子通信(QuantumLink)的商业产品,量子通信是(当时)专门为Commodore 64的用户开发的一个在线服务。当我们在1985年启动项目的时候,Commodore 64是娱乐计算市场的中流砥柱。从那时起,它的商业和技术意义显著下降。然而,当时我们没有可选择的平台。交易的本质是,用Commodore 64作为前端和现有的量子通信主机系统(两个Stratus小型容错计算机)作为后端都是给定的。
鉴于我们将网络空间看作一种通信媒介,而不是简单的用户界面模型,并且考虑到我们提倡的面向对象方法的风格,另一点变得清晰起来:
我们为栖息地中的化身制作的可用的物品包括枪支和其他各种各样的武器。我们之所以把这些都包括进来,是因为我们觉得玩家对彼此的影响不应该只是通过简单的对话,还要通过那些需要做出真正道德选择的方式。我们认识到古老的故事讲述者的格言:冲突是戏剧的本质。栖息地中的死亡当然不等于真实世界中的死亡!当一个化身被杀死时,他(她)被传送回家里,双手抱头(字面意思),口袋空空,手里所有的东西都被扔在犯罪现场。当时的一切财产都会丢失。这更像是玩飞行棋时的一次挫折,而非真正的死亡。然而,死亡隐喻对人们的认知有着深刻的影响。委婉地讲,这种潜在的谋杀、袭击和其他破坏行为的可能性是有争议的。这一争议进一步加剧了犯罪的可能性。举例来说,一个化身可以偷另一个化身的东西,只要从它的主人手里拿下这个东西,然后跑掉即可。
当我们讨论通信标准的时候,我们想对开放系统互连的ISO参考模型(ISO Reference Model of Open System Interconnection)做一些评论。如今,这种多层模型已经成为大多数讨论数据通信标准的核心内容。不幸的是,虽然这个模型的底部四层或五层提供了一个还算完善的框架来考虑数据传输问题,但是我们认为,在考虑空间数据通信时,模型的表现层和应用层并没有太大的用处。
有些物体是结构,如地面和天空。许多只是风景,如树和邮筒。然而,大多数物体都有其功能。例如,门可以将化身从一个区域传送到另一个区域,并且可以打开、关闭、上锁、解锁。自动柜员机可以访问化身的银行账户。自动售货机出售商品以换取栖息地的金钱。栖息地有成熟的经济体制,包括货币、银行等。栖息地的货币单位是代币,因为它是一个代币经济体,并且承认了代币和计算机游戏之间长期可靠的联系。
此外,像栖息地这样的虚拟世界需要扩大人口规模。对于两万名化身,我们需要两万间“房子”,它们连同相关的交通要道、购物区以及休闲区共同构成城镇和城市。我们需要城镇之间的荒野地区,这样大家不会挤在同一个地方。最重要的是,我们需要两万多人做的事情。他们需要可以去的有趣的地方——因为他们不能同时都在同一个地方,因此需要很多有趣的地方——以及在这些地方做的事情。房子、城镇、道路、商店、森林、剧院、竞技场以及其他地方都是需要有人设计和创建的独特实体。我们试图扮演全知全能的中央规划者的角色,但却陷入了泥沼。
我们从栖息地的经验中提炼出的重要教训是:网络空间更多是由参与者之间的互动来定义的,而不是由实现它的技术来定义的。虽然我们发现,目前正在竭尽全力完成的接口技术方面的工作——数据手套、头戴式显示器、专用渲染引擎等——既令人激动又前途无限,但是目前围绕这一切硬件的近乎神秘的狂喜,在我们看来既过分又有点错位。我们不禁有一种不安的感觉,担心它会分散我们在真正紧迫问题上的注意力。我们愿景的内核是网络空间必然是一个多参与者的环境。在我们看来,对于这种环境中的居民而言,重要的是他们能得到的能力,他们在那里遇到的其他人的特点,这些不同的参与者相互影响的方式。除了基本的通信能力外,用于向参与者呈现这种环境的技术,虽然迷人而有趣,但却是一个次要问题。
数据通信标准至关重要。
奇普·莫宁斯达、兰德尔·法默

警告

然而,如果一个计算机游戏涉及多个玩家,那么深入研究程序的内部机制就能让一个人实现作弊,因为在某种意义上,一个人获得了不公平的优势,而其他玩家可能没有意识到这一点。栖息地就是这样一款多玩家的游戏。当我们设计软件时,我们的“最高指导原则”是“后端不应质疑玩家电脑告诉它的一切东西的有效性”。这是因为我们需要保护自己,避免一个聪明的用户使用他的前端程序来添加“自定义特性”的可能性。例如,我们不能实现传统视频游戏中的任何类型的“技能和行动”元素,其中,灵巧的操纵杆决定了武装战斗的结果,因为你无法防止别人修改程序副本来告诉后端他们进行了“打击”,无论他们是否进行了打击。实际上,我们在量子通信的合作伙伴甚至在我们开始之前就警告了这些——他们就已经有用户用自己的常规系统做了这样的事情。真的会有人为了修补而不辞劳苦地拆卸和研究100k左右、非常紧凑和怪诞的6502机器码吗?事实证明,答案是肯定的:人们会这样做。我们没有百分之百地遵循自己的规则。结果是,在我们看来,如果人们通过侵入自己的系统“作弊”,产生的后果不会很严重,而在这种情况下违反规则,一些功能的实现就会被大大减弱了。如果人们不以这些方式侵入系统作弊,那真的是见鬼了!
在这些经历的推动下,我们转变了运作方式,让玩家自行决定设计方向。事实证明这更有效。我们没有试图把社区推向我们认为应该去的方向,而是像放老鼠一样,我们试图观察人们在做什么,并帮助他们。我们成了推动者,就像我们是设计师和实施者一样。这通常意味着以疯狂的速度向系统添加新功能和新区域,但我们添加的几乎所有内容都得到了使用和赞赏,因为它与人们的需求和愿望相匹配。我们作为研究系统如何运行的专家,经常会建议人们尝试新的活动,或者做一些人们可能想不到的事情。通过这种方式,我们能够对系统的发展产生相当大的影响,尽管事实上我们并没有真正握住方向盘——但这比我们在幻想操控一切的时候所做的事情更有影响力。
详细的中央规划是不可能的,甚至都不要去尝试。
更多内容...
上一页