非玩家角色
非玩家角色是干什么用的?他们可以做的事有:
买东西、卖东西、打造东西。
提供服务。
看守地方。
被杀掉取战利品。
发放任务(或者其他 NPC 任务所需的线索)。
提供背景信息(历史、传说、文化观念)。
替玩家做事。
让这个地方显得热闹。
在买东西、卖东西、打造东西这几件事上,他们通常只是虚构设定上的便利,跟自动贩卖机没什么两样。同样地,在提供服务(训练、修理、治疗法术等等)时,他们是一种界面上的幌子:设计者想让玩家得到那些服务,而 NPC 就是演化出来的机制,用来把正在发生的事情包装得符合情境。他们待人亲切是有帮助的;这样他们看起来才不像自动贩卖机。
守卫的存在出于大致相同的理由:设计者一向选择用他们来强制执行某一类玩法规则,而这些规则如果不加解释,就会显得随意。举例来说,假设要阻止玩家在城墙之内互相攻击,一种做法就是干脆告诉他们不能这么做。这不能令人满意,因为它是情境之外的——为什么不能?给一个“你绝对逃不掉”之类的解释稍微好一些,但仍不理想:让玩家自己判断自己逃不逃得掉,而不是让某个隐形评论员来判定。引入守卫之后,玩家就能亲身发现:自己确实逃不掉。守卫几乎无一例外地强得离谱。那些平时能砍倒成群巨人的角色,面对守卫照样无能为力,哪怕那些巨人横冲直撞。这是因为一个拦不住人的守卫,跟没这个人一样。那些常被打败的守卫,本来就是设计成常被打败的,因此他们并不看守任何设计者真不想被人违反的地点或状态。所以这些“守卫”就落进了“被杀掉取战利品”那一类。这类 NPC 基本上就是长得像玩家角色(PC)的普通怪物。他们也许比自己的怪物同胞稍微聪明一点,但本质上就是待宰的。这些 NPC 很少有名字。
发放任务的 NPC 可能兼具其他某一类 NPC 的身份,但总的来说他们有特殊的地位。确实,他们甚至可能被抬举到拥有独立个性的地位。即便如此,他们主要还是让玩家在跟虚拟世界打交道时不至于觉得自己很傻。他们的工作是给玩家找事情做,然后在玩家做完之后给予报酬。除此之外,他们就只是凑数的文字。
发放任务的 NPC 让玩家替他们做事。伙伴 NPC 正相反:他们替玩家做事。虽然名义上是独立的,伙伴本质上只是玩家角色的延伸。尽管伙伴以男随从或女随从、仆人或魔宠/宠物的面目出现 1,他们其实只是一种扩展玩家能力的手段。要带的东西太多?雇一个搬运工或者一头役用动物。打完之后找不到人给你治疗?用牧师的形式把必要的技能雇来。伙伴 NPC 通常不用于较大的游戏,因为玩家自己就该承担这些必要的角色。再说,如果一组 25 名玩家和他们的 25 个伙伴想要一致行动,那点组织的表象很快就会荡然无存。玩家确实仍然需要骡子,但在那种情况下,他们会改为创建次要玩家角色。
知识提供者就像在线手册。玩家可以向他们查询自己想弄清的事情,或者被他们找上,被告知一些自己不想知道、但天哪,知道了对自己有好处的事情。知识提供者可以独立存在,但他们往往还兼有别的功能(比如发放任务)。
最后一类 NPC 是背景人物。他们在周围游荡,构成背景的一部分。玩家只要想把他们拉到前台(比如与他们交流、偷他们的东西、朝他们射箭),得到的要么是一成不变的回应,要么干脆毫无反应。背景人物在虚拟世界里戏份不高;因为玩家平时就能互相交往,所以当他们面对这些没有明显存在理由的 NPC 时,会感到失望。
好吧,我承认这份 NPC 类型的总结也许有点刻薄。有的虚拟世界里,连怪物都能有个性 2,更别说 NPC 了。问题在于这样的世界太少了。当一个虚拟世界因为真实玩家而充满生气时,设计者就觉得没必要把 NPC 做得比「与虚拟世界交互的密码原文」更多。玩家把 NPC 物化的程度,只有杀手型玩家物化 PC 时才比得上。
不过,情况又在变。虚拟世界技术是由大型图形游戏推动的,而大型图形游戏又是由它们的硬核玩家推动的。硬核玩家也玩别的电脑游戏,尤其是单人角色扮演游戏。当他们在这些游戏里看到的 NPC 超出自己在虚拟世界里遇到的 NPC 时,他们就觉得虚拟世界落伍了。
他们说得也有道理。虚拟世界的寿命比普通电脑游戏长得多。五年前的一款游戏按现在的标准看当然会显得很过时,但这不只是画面问题:五年前走在最前沿的玩法,如今也可能显得过时(只不过没那么明显)。虚拟世界要想跟上时代,就必须适应并演化。有一种论点认为,文字游戏不会过时,因为人的想象力不会过时 3;J·C·赫尔茨在 1994 年那部对互联网的精彩发掘之作 4 中断言,没有任何图形虚拟世界能比得上《LambdaMOO》里的意象——许多文字世界的玩家都会同意这个看法。就意象而言,这也许是对的,但就玩法而言,还不对。
NPC 是玩法要素的化身;因此,如果玩法显得过时,与之相关的 NPC 也会显得过时。玩家不想要过时的内容。
当然,仅仅因为玩家想要某样东西,并不构成把它给他们的理由。设计关乎后果,而玩家并不总是接受后果。自从史蒂夫·梅雷茨基的《Planetfall》里的 Floyd 那时候起,为非玩家角色创造一个丰满完整的个性就已经被证明是可行的 5,但那要费很大功夫。在图形虚拟世界里,还有一个给不同个性做动画的问题。黏糊糊、爱拍马屁的谋士,身体语言跟自信而残忍的暴君不一样。
给这些差异做动画是一门精雕细刻的手艺。动作捕捉能帮上忙,但对龙不管用。
换句话说,创造丰满完整的 NPC 是件昂贵的事,在图形世界里尤其如此,如果你想要 10,000 个这样的 NPC 就更是如此。要求智能 NPC 的玩家,就得预期为此多掏钱。
然而同一套道理也适用于许多单人角色扮演游戏。《博德之门2》6 有几百个 NPC;其中一些丰满到可以(表现得像)坠入爱河,但大多数要么是情节钩子,要么是本地色彩。不过,和他们所有人说话都是可以的,即便他们实际上没有什么有意义的话可说。交互机制很简陋——跟最早的《创世纪》系列用的一样,都是从菜单里选回应——但这总比从一维的虚拟世界 NPC 那里什么也得不到要好。文字虚拟世界有时会实现一种类似的做法,把实际可选的范围藏起来(你可能得输入 “ask guard about prisoner”,而不是从列表里把它选出来),但只对少数特定的 NPC 这么做。除此之外,还有模式匹配方案 7——它们基于约瑟夫·魏岑鲍姆的经典之作 Eliza 8——以及迈克尔·莫尔丁的 Julia 这样极其精巧的机器人 9(虽然它们并不承担玩法上的功能)。
人工智能研究一直在推进。指望虚拟世界设计者要求程序员把最新技术赋予 NPC 是不合理的,但哪怕是一些 20 年前的想法也能带来很大不同。那么,虚拟世界为什么没有更多智能 NPC 呢?
常见的解释如下:
它们不需要,因为它们有真玩家。(可它们又需要笨 NPC?)
把 NPC 变聪明太贵了。(那单人角色扮演游戏又是怎么做到的?)
在虚拟世界里给 NPC 加上 AI 太费时间。事先要放进去的东西那么多,它只是没必要的锦上添花。(可一小队 AI 专家难道不能从一开始就做这件事?)
人工智能 NPC 从来都不可信,总是破坏沉浸。(比起人工愚蠢的 NPC,是更多还是更少?)
设计者和程序员都不熟悉 AI。(难道他们就不能变得熟悉它 10?)
玩家不喜欢太聪明的 NPC。(那就别把它们做得太聪明 11?)
对这个特定的虚拟世界不合适。(终于有一条站得住脚的理由。你也许有套虚构设定能解释 NPC 为什么愚蠢——比如时间旅行到尼安德特人时代)
大多数情况下,虚拟世界没有智能 NPC 的原因,与自满、缺乏经验,以及(对免费虚拟世界而言)资源不足有关。不过,也还有一种“没坏就别修”的看法。不让 NPC 更丰满,也许只能找到很少的理由,但这几乎算不上把它们变得不扁平的动机。虚拟世界为什么该有更多智能 NPC 呢?
只有两个理由。
第一个理由是,哪怕 NPC 身上只有一点小小的个性怪癖,也能给玩家一些在意它的理由。玩家很善于把 NPC 拟人化,而且在虚拟世界里也乐意这么做。这并不是说 NPC 本身有什么内在意义,而是玩家能为它们注入意义。
举个例子,假设某个 NPC 小男孩的 NPC 妈妈请你帮她把一只平底锅从他头上取下来。这只是个小任务。下一次,她请你把他从爬上去的树上救下来。也许他在被救下来时她揍他一顿,也许她抱着他松一口气、哭出来;那仍然只是又一个任务。再下一次,他把头卡在了栅栏里;再下一次,他把自己锁进了地窖。你渐渐认识了这两个 NPC——莽撞的孩子和自我苛责的母亲——如果你需要一个小任务来填时间,往往会去看看他们。然后有一天,母亲跑来找到你。她的儿子在她眼前被某种红眼睛的恶魔拖走了。她歇斯底里。他一直在哭喊“妈妈!”,她想救他,但那头野兽打了她,看在众神分上,求求你,你能不能帮帮她?
这时情况有了意义。你和这两个 NPC 之间有了历史。母亲没有去找别的 PC,她来找了你。你打算让她的儿子被活活吃掉吗?绝对不行!
所以这就是第一个理由:它让玩家能对虚拟世界里的对象形成情感依恋;这些关系随后可以被拉伸,用来增添戏剧性,也让玩家有理由反思自己的行为。这些关系自然远不如真实的人之间那么牢固,但它们确实存在。它们给玩家一个理由,觉得自己是虚拟世界的一部分。
第二个理由,你要么立刻领会,要么需要一次顿悟。它是这样的:想象一下!想象一个虚拟世界,里面有成千上万的虚拟人过着虚拟的生活——每个人都有自己的目标、自己的人际关系、自己的存在。一个活生生的、会呼吸的、自我维系的造物!那难道不让你心生敬畏吗?你难道不想去那里吗?你难道不想看看他们会做什么,并且和他们一起做吗?那难道不才真的是一个虚拟世界吗?
如果是,那你就懂了:我不必再解释。如果不是,我再怎么解释也几乎没有意义!我能做的只是提出下面这个问题:没有一位神的动机的人,该不该拥有一位神的力量?
拥有智能 NPC 还另有好处,但它们的效果也可以靠别的机制达成。其中最重要的一点是:哪怕最大的虚拟世界也没有足够的 PC 来支撑它们的体系;而且就算有那么多 PC,也没有多少玩家愿意去做那些占满 NPC 时间的琐碎事情。谁渴望当一名城市守卫?玩家来虚拟世界,是因为这里有他们在现实世界里得不到的体验;他们不想要虚拟世界里的“真实生活”。而 NPC 就生活在虚拟世界里,所以他们的“真实生活”就是去做那些玩家在真实的“真实生活”里会做的事。
举例来说,有些人想要权力。在这个语境里,“权力”指对他人的支配。玩家不会长期忍受听别的玩家使唤,因此需要有 NPC 来充当办事员和士兵。同样,玩家的交易量不足以支撑一个经济体,因此 NPC 应当参与商业,确保价格适当地涨落。NPC 的集体行为可以用来调节声望系统,以及地位/时尚高低带来的后果、流言的传播与消散、居民点的兴衰、公职选举,以及许多别的有用的“背景”事务——这些事务对玩家的体验有突出的贡献,玩家自己却不愿卷入其中。如果 NPC 被问起时能说出自己的感受,还能带来更多:我可能不在乎某个 NPC 想告诉我那座我已经去过五次的废墟,但我肯定很想知道那个 NPC 打不打算在即将到来的雇佣兵公会选举中投我一票。
赋予 NPC 个体更强的自决能力,是实现这些行为的一种办法。另一种办法则是把 NPC 的行为作为整体来建模,而不是逐个建模。举例来说,与其让每个 NPC 各自决定什么时候需要买一件新长袍、愿意为它出什么价钱,不如用一套 NPC 购买习惯的一般模型来计算长袍的总体需求曲线,以及它对价格的影响。这比微观经济学的对应做法更容易设计、编程开销更低、也更好微调,虽然它也更可预测、不那么稳健。想用大批彼此独立的 NPC 取得同样效果时,它是一种可行的替代方案。不过,如果你出于别的理由已经拥有了那批 NPC,那么让它们的集体行为从各自的个体行动中自然涌现,而不是另做一套行为模拟、任由两套机制越走越远,才是合理的。
有人可能会说,如果一个虚拟世界需要智能 NPC,把它们做成人工智能就是走错了路。为什么不雇演员来控制 NPC,得到自然产生的智能呢?在好莱坞开个办公室(那里到处都是想当演员的人),甚至都算不上太贵。
对此我有两点反对意见,一点是实际的,一点是哲学上的。
实际的那点我之前已经讲过了。亲力亲为对小而亲密的虚拟世界管用,对玩家数量庞大的世界不管用——与 200 个人维持非表面的关系是很难的。玩家对挟私报复、偏袒偏心以及其他想象出来的作弊方式深怀戒心;如果他们发现你派去对付他们的怪物比派去对付另一个群体的多了一只,他们就会没完没了地抱怨 12,不管他们当时玩得多开心。他们就算心情最好的时候,一般也不喜欢跟客服人员说话——那些人语气居高临下,还始终端着入戏的架子。再说,哪怕在好莱坞,大量雇演员也很贵。
哲学上的那点反对意见是:虚拟世界的主要目标之一就是自足。为物理建模的是计算机,不是人的头脑;虚拟居民也是同样的道理。如果你的虚拟世界设计依赖人作为组件,它也许超前于时代,但它毕竟跨过了一条界限,因此不再是一个虚拟世界。玩家是必需的;社区管理者是可以接受的;由 PC 来担任的 NPC 本身就是一个自相矛盾的说法。
设计者会依据他们需要 NPC 填补的角色来决定 NPC 的数量与人口密度。这就引出了一个问题:作为一般规则,PC 应当能做到 NPC 能做的任何事吗?对虚拟世界的虚构设定稍作限定之后,答案应当是肯定的;这能保证设计上的灵活性。而在大多数虚拟世界里,答案并不是肯定的,这恰恰说明那些设计有多么不灵活。这个问题也可以反过来问:作为一般规则,NPC 应当能做到 PC 能做的任何事吗?答案同样必须是肯定的。为什么是肯定的?玩家通常不难把其他玩家的角色与 NPC 区分开来,但这并不意味着 NPC 彼此之间也应当能区分:如果一个 NPC 提供了一个任务,那么理论上没有理由说另一个 NPC 就不能承接它。这只会给虚拟世界增添深度与多样性——两件都是好事。
从上面的讨论应当可以很明显地看出怪物在这个等式里的位置:它们只是按另一套 AI 规则运作的 NPC 13。那么玩家呢?他们是不是仅仅由自然智能而非人工智能控制的 NPC?
但愿如此……
DikuMUD 里备受喜爱、此后在图形世界中成为标配的设定。 ↩︎
《MUD2》里有个小矮人,玩家们出奇地不愿意杀它,除非它嚎叫起来、把附近另外 50 个矮人叫来。 ↩︎
还有一种论点认为,它们不会过时,是因为它们一开始就过时了。 ↩︎
Herz, J. C., Surfing on the Internet. New York, Little, Brown, 1995. ↩︎
Steve Meretzky, Planetfall. Cambridge MA, Infocom, 1983. ↩︎
James Ohlen and Kevin Martens (lead designers), Baldur’s Gate II: Shadows of Amn. Irvine CA, Black Isle Studios, 2000. ↩︎
正式的名称是“案例推理”。 ↩︎
Joseph Weizenbaum, ELIZA—A Computer Program for the Study of Natural Language Communication between Man and Machine. New York, Vol. 9 no. 1, Communications of the ACM, January 1966. ↩︎
Michael L. Mauldin, Chatterbots, Tinymuds, And The Turing Test: Entering The Loebner Prize Competition. Menlo Park CA, Proceedings AAAI 12, 1994. ↩︎
我读 AI 方向的博士,就是因为它能应用于虚拟世界,虽然我不一定会向所有人推荐这种程度的热情。 ↩︎
我在《MUD2》里放了一个简单的专家系统来控制活动体打架,后来把它调弱了,因为它比许多玩家都强。这只是个平衡问题。 ↩︎
永远不要低估抱怨的力量! ↩︎
通常,它们还在不同的环境条件下运作:怪物受生态支配,NPC 受经济支配。我们后面会看到,这两者(就像怪物与 NPC 本身一样)其实只是同一枚硬币的两面。 ↩︎