《游戏大师Chris Crawford谈互动叙事》一9.6 互动小说机理剖析

9.6 互动小说机理剖析

游戏大师Chris Crawford谈互动叙事
所谓“开发环境”,就是让作者制作软件的程序。程序员使用的开发环境一般都功能强大。我们固然也可以把文字处理软件称为“文档开发环境”,不过这听起来就有些言过其实了,因为“开发环境”这个术语通常特指用来制作软件的程序。IF是交互式的,自然需要在开发环境里通过编程来实现。要了解一种技术的能力大小,最简单的办法就是去了解其开发环境。只要我们看一看艺术家创作时使用的工具,就能对作品的发掘潜力获得比较清楚的认识。

9.6.1 Inform 7

最流行的IF开发环境是Inform 7。它始于1993年,是一款功能强大的复杂软件。在Inform 7里编写的程序读起来与普通英语差不多。

"Feline Behavior"
The Kitchen is a room. The cat is an animal in the Kitchen. In the Kitchen is a bowl,
a ball of wool, a newspaper. The bowl contains a quantity of cream.
The cat is wearing a silver collar. The description of the cat is "It is wearing [a
list of things worn by the cat]."
The player carries a closed openable container called a bag. The bag contains catnip.
The cat behavior rules is a rulebook producing an object.
A cat behavior rule when the cat can touch the catnip:
     say "The cat frolics with the catnip until nothing remains of it.";
     rule succeeds with result catnip.
A cat behavior rule when the cat can touch the cream:
     say "The cat laps up the cream.";
     rule succeeds with result cream.
A cat behavior rule when the cat can touch the ball of wool:
     say "The cat makes the ball of wool into a useless tangle which must be
       discarded.";
     rule succeeds with result ball.
A cat behavior rule when the cat can touch the newspaper:
     say "The cat bats playfully at the newspaper until all the nasty boring articles
       are destroyed.";
     rule succeeds with result newspaper.
A cat behavior rule:
     say "The cat looks miffed at the lack of ready entertainment, and glares at you
       with yellow eyes as though wondering whether your pants leg is good for claw-
       sharpening.";
rule fails.
Every turn:
     let the destroyed object be the object produced by the cat behaviour rules;
     if the destroyed object is not nothing:
     remove the destroyed object from play;
     say "[line break]Good thing you have no use for [the destroyed object]
       yourself.[paragraph break]".
Test me with "z / z / open bag / z / z".

这个小程序创建了一幅完整的场景:一间厨房、一只猫、玩家,以及几个可供猫玩耍的物品。这只猫会玩弄这几个物品,直到所有物品都被弃置,然后猫会对玩家投去淘气的目光,游戏就此结束。

当然,这个小例子无法体现Inform 7的强大功能,只是用来说明它采用的语言非常易懂。与所有其他编程语言一样,这种语言编写起来也并不容易,因为用词并不是随意的。Inform 7的语言使用一组明确定义的关键字,每个关键字实现特定的功能。IF作者必须记住所有关键字,并且学会熟练运用它们进行创作。这当然也算不上什么特别的难度,毕竟所有开发环境都是如法炮制的。Inform 7是笔者见过的最简单易用的开发环境。

9.6.2 Inform 7的表达能力

与其他所有开发环境一样,Inform 7对完成特定的任务进行了优化处理。Inform 7也可以用来实现其他未进行针对性优化的任务,只不过实现起来自然就麻烦一些。Inform 7对下列任务进行了优化。

1.空间
作者可以创建任意数量的舞台(在Inform 7中称为“rooms(房间)”),舞台之间可以任意相连。舞台之间的切换通常是即时的,但是也可以人为地进行延迟。舞台被组织在一张地图上,方便作者进行编辑。玩家可以通过“Go X”(其中X指代某一方向)指令进行舞台切换,还可以用“Go to Y”(其中Y指代某一舞台)指令实现同样的操作。在可能的情况下,Inform 7还能自动带玩家穿过必要的舞台,以便达到目的地。

2.时间
IF游戏是回合制的,玩家每个回合可以输入一条指令,作者可以设计指定回合数的延迟。

3.输入
所有指令都是通过键盘输入的,形式类似英语。作者可以定义任意多个词汇供玩家使用,每个词汇都对应特定的意义。Inform 7能自动辨识特定词汇的基本属性,比如“room”会被自动视为可以包含玩家角色和各种物件的地点。玩家有时候必须猜测应该使用什么词汇,如果系统无法识别玩家输入的词汇,就会给出错误信息。

4.输出
回显给玩家的输出同样是文字信息。Inform 7号称能够根据作者的想法让文字描述变得生动自然,会自动修订文本,安插相应的代词,以使其与上下文搭配。Inform 7的文本处理是其最出众的能力之一。

5.道具
作者可以创建任意多的道具,并且将其安置在房间(舞台)里,还能指定其归属。道具的内建属性颇丰,可大可小、可轻可重,可以嵌套(在道具里放入其他道具)。作者可以对道具赋予自定义的特殊属性,用于控制游戏的运作。Inform 7的道具控制也是其另一个出众的能力。

6.行为
作者几乎可以为任何道具或者房间定制响应行为。这些行为可以由作者设立的任何条件触发:之前的特定活动、特定道具是否存在,以及数字变量的当前值都可以作为条件来触发响应行为。

9.6.3 优缺点分析

计算机科学家曾经证明过这样一个问题:任何能够付诸编程实现的操作(operations)都可以在电子表格程序中实现。换句话说,作为一种计算环境的电子表格能够处理任何可编程的问题。当然,没有人会因此就转而使用电子表格来解决所有编程问题。

虽然一项计算任务也许在理论上完全可以用电子表格来实现和执行,但是如果这样做非常繁琐的话,那么也就不太实际了。假设我们给电子表格程序安装一个“读取二维数组绘制像素图形”的插件,用单元格来代表像素,然后编写公式来控制每个单元格如何显示,那么我们也就能够通过电子表格来绘制任何图形了!

开发环境也具有相同的特点。任何计算机程序都可以用汇编语言来编写,因为汇编语言是针对CPU设计的底层语言。然而,采用汇编语言编写程序是非常繁杂和困难的,因此绝大部分程序都是采用高级语言来编写的。不到万不得已的情况,没有人会主动选用汇编语言。

无论是编程语言还是开发环境,所有编程工具的设计目标之一都是减轻解决特定类型的问题所需的工作量。古老的FORTRAN语言是针对科学计算而优化设计的,BASIC、Pascal和Pilot等语言都特别适合用于教授编程概念。如今,C#是Windows平台上桌面程序开发的首选语言,而JavaScript或PHP则主要用于开发Web程序。

有优点则必有缺点:针对特定问题优化过的程序在处理其他问题方面必然就会相对差一些。Inform 7自然也是如此。

Inform 7有其强项:自然语言格式、强大的文本处理能力、道具相关的任务自动化处理能力等。现在来谈谈它的不足。

1.数值计算
以笔者的拙见,Inform 7的一大弱点是数值计算能力不足。虽然它可以处理加减乘除这4种基本操作,还可以进行平方根计算,但是它对计算公式的支持则相当粗糙,而且对数值变量的管理也相当困难。另外一款名为TADS的IF开发环境在数学计算方面就比Inform 7强多了。

2.过度依赖布尔计算
与对数值计算支持不足密切相关的另一个弱点是对布尔计算的过度依赖。诸如道具是否被损坏、孰轻孰重、可见还是不可见之类的状态的确可以用布尔值来实现,然而用它来表达人际关系就多少有点相形见绌了。珍妮对约翰是否非爱即恨?弗莱德是否要么友好要么冷漠?汤姆是否不是英雄就是狗熊?人际关系从来都不是黑白分明的,而是具有连续的程度差异。Inform 7所推崇的布尔值系统迫使作者不得不把所有事情都分出黑白来。

诚然,Inform 7是针对作者而不是科学家设计的,我们当然不应该期望它具备强大的科学计算能力。尽管如此,对计算能力的过度简化仍然是一个弱点。

3.结构缺失
对高级编程架构的支持不足是Inform 7的第二大弱点。现代编程语言的设计体现了历代程序员在编写大型程序时获得的经验教训,这些现代语言为结构化提供了良好的支持,使得编写大型程序变得相对更容易,而不至于让程序员迷失在复杂的程序指令当中。尽管Inform 7提供了相当优雅的结构化系统,但是要想创建足够大的故事世界以使其具备最基本的吸引力,做起来仍然是相当令人头痛的。

以一款名为Alabaster1的优秀互动小说为例,其源代码由12个条目组成,到了第二级至少有60个条目,在第三级还有更多条目。每个条目下的指令代码占用大概一页的篇幅,所以总共大约有2000行指令代码—以计算机编程的行业标准来看,也算是中等规模的程序了。阅读这些代码如同探索迷宫一样困难,其中充斥着各种对其他位置的引用。查找这些引用并非易事,整个程序梳理起来可谓是一团乱麻。

时间: 2024-10-25 05:06:40

《游戏大师Chris Crawford谈互动叙事》一9.6 互动小说机理剖析的相关文章

《游戏大师Chris Crawford谈互动叙事》一1.3 故事的本质

1.3 故事的本质 游戏大师Chris Crawford谈互动叙事对故事本质的探讨已汗牛充栋,若我再来"补充两句"似乎也是在班门弄斧了.尽管如此,笔者还是希望强调几个基本要点,以便读者更好地理解贯穿全书的核心概念. 1.3.1 健壮的结构 故事必须满足一些结构上的要求,才能称为故事.我见过的许多对故事概念的定义都太过宽泛和学术化.虽然任何陈述性的语句序列都可以用来构造故事,但是这样的界定仅仅从学术角度来看才是有意义的.虽然我也无法明确地界定所谓故事的结构,但是我敢说,就连4岁小孩也对故

《游戏大师Chris Crawford谈互动叙事》一1.2 两种思维方式

1.2 两种思维方式 游戏大师Chris Crawford谈互动叙事人类思维方式存有两种截然不同的机制.占主导地位的是基于模式(pattern)的机制.神经系统最初就是由此发展出来的.基于模式的思维方式又快速又强大:由外界输入的模式一旦进入大脑,大脑就利用既有的模式来处理新输入进来的模式,从而产生反应模式.比如说,一只小动物从眼前看到的场面当中辨识出"巨齿.大眼.利爪"的模式,它的大脑便立刻处理之,然后立即确定反应模式,即激活不同的肌肉组织,实现转身,迅速逃离是非之地. 基于模式的思维

《游戏大师Chris Crawford谈互动叙事》一1.7 本章小结

1.7 本章小结 游戏大师Chris Crawford谈互动叙事本章并没有大谈故事叙述理论,而是探讨了几个关于故事概念的独立观点,这些观点是互动叙事的重要考虑因素.故事叙述与人类本性和文化密不可分,或许我们永远也不能把所谓的故事本质完全想清楚.但如果要创建互动叙事系统,那么在我们考察交互性(interactivity)概念之前,就必须对本章谈到的观念具备清楚的认识.

《游戏大师Chris Crawford谈互动叙事》一导读

前 言 游戏大师Chris Crawford谈互动叙事互动叙事(Interactive Storytelling)1是一个新兴的领域,于20世纪80年代末提出,于90年代得到了试验性的实践,在21世纪之前并未获得过高度关注.时至2010年,互动叙事已然成为热门话题.该领域的不成熟体现在诸多千差万别的发展思路和各执己见的激烈讨论当中.这种情形恰如盲人摸象:每个人都从自身特定的角度来考察互动叙事.影视制作人将它看作电影形式之一:电子游戏业内人士声称它是电子游戏领域的延伸:计算机科学家觉得它是范畴更宽

《游戏大师Chris Crawford谈互动叙事》一9.9 本章小结

9.9 本章小结 游戏大师Chris Crawford谈互动叙事互动小说一直被认为是通向互动叙事的可能的方向.然而,历经30多年的发展演化,成千上万人的探索,它还是没能产出可以被笔者称为互动叙事的成果.互动小说有自身的优势:我们可以在其中创作有趣的谜题,还可以将其精化为一种文学形式.然而归根结底,它仍然只是以房间(舞台).道具,以及对它们的操作为代表.尽管互动小说可以在字里行间倾注感情,但是从交互性的方面来看,它只是徒有其表.没有灵魂的空壳.

《游戏大师Chris Crawford谈互动叙事》一22.2 消极的预测

22.2 消极的预测 游戏大师Chris Crawford谈互动叙事说坏话比说好话容易(不过该说不准的还是说不准),所以笔者先从比较有把握的预测入手,谈一谈消极的预测. 22.2.1 互动叙事不会发展自既有领域 笔者对此非常有把握:从既有的研究或专业领域当中无法发展出优秀的互动叙事.现今的电子游戏世界可以用固步自封.作茧自缚来形容.整个产业的商业模式已经固化,专注于推出制造感官刺激的产品:同时,玩家也对产品的期望也因此固化,不断追求制造感官刺激的游戏产品.电子游戏产业的商业大局已定,无法分散精力

《游戏大师Chris Crawford谈互动叙事》一第 6 章 数学之苦劳

第 6 章 数学之苦劳 游戏大师Chris Crawford谈互动叙事万事万物是经由复杂的因果关系网络联结起来的,人生的目标之一就是尽可能地理解这个知识网络,而理解的途径就是动词思考方式.对于实现互动叙事而言,我们必须把精力集中在因果关系及其本质上面.我们需要一种语言来精确.明晰地表述所发现的每一种因果关系的确切机理.好消息是这种语言已经被确立了,坏消息是这门语言是数学. 一提起数学,有些人就会像泄了气的皮球一样一蹶不振,愤怒和厌恶的情绪溢于言表-实现艺术创作竟然还要动用数学,这样的想法不免会遭

《游戏大师Chris Crawford谈互动叙事》一9.1 文字冒险游戏

9.1 文字冒险游戏 游戏大师Chris Crawford谈互动叙事互动小说始自1976年推出的游戏<Adventure>1.这款游戏通过传统的计算机终端2进行游戏,而且没有图像效果,是全文字的游戏.玩家通过终端输入文字指令,游戏显示相应的回应文字在屏幕上.这种基本的交互模式在互动小说中一直延续至今. 在这款游戏中,玩家须要在洞穴迷宫当中探索,通过细碎的线索解决各种难题.游戏经过精心设计,玩家只有以特定的顺序进行特定的操作,才能深入洞穴深处并获胜. 1979年推出的<Zork>3进

《游戏大师Chris Crawford谈互动叙事》一6.1 拥抱数学

6.1 拥抱数学 游戏大师Chris Crawford谈互动叙事拒绝通过引入数学来探索因果关系,这不是智力问题,不是先天能力问题,不是心理障碍问题,也不是任何其他如此种种的问题.以"脑子比较笨"为借口来拒斥对数学的运用,其实只体现了情感上的不接受.对数学思维情不自禁地抵触是完全可以理解的,因为数学的思维方式就是非自然的.人脑是以非线性的关联和模式来运作的:而数学思维则是线性.步进式的,并不是人脑自然演化所针对的方式:数学思维要求人脑以其不擅长的运作方式来实现思考活动.因此,对"

《游戏大师Chris Crawford谈互动叙事》一1.6 时间的不连续性

1.6 时间的不连续性 游戏大师Chris Crawford谈互动叙事正如故事中的空间被打散为离散的舞台,故事中的时间也被动了手脚:故事中的时间可以间断,可以来回跳跃,甚至可以被完全跳过.演员扮演的角色在启程之后直接就可以抵达目的地,旅行的时间则被跳过去了:一句"许多年之后--"就能跳过大段时间:一句"与此同时--"就能表现同时发生的事情:回闪(flashback)能让我们穿越到过去之后再跳回到现在.故事时间与物理时间在运作方式上大不相同,完全是按照故事的需要来展开