名字问题
在虚拟世界里,你被一个个体所代表,你代表着一个个体,或者你就是那个个体。世界的虚构设定也许会装作不是这样,比如允许蜂巢式心智(例如蚁巢)或者共享心智的伴侣(例如特威德顿和特威德迪),但这些只是故作姿态。你与一个单一的、有知觉的游戏对象相关联:你的角色 1。为了让人们能在交谈与命令中提到你的角色,这个角色必须有一个标签,换句话说,一个名字。
《MUD1》允许玩家使用相同的名字,只要他们不同时在线。这很快就带来了认错人的问题(以及程度稍轻的冒名顶替问题)。只允许某个特定名字的一个人在任一时刻身处虚拟世界,这也解决不了问题:玩家可能因此发现自己被关在门外。最终采用的办法是:在整个虚拟世界里,任何一个名字只允许有一个实例。偶尔还是会出问题:一个角色被杀之后,还没等原来的玩家缓过来重返世界,就有人把它的名字抢走了;但这只是零星的个别事件,可以由管理员逐案处理。
总的来说,今天的虚拟世界仍然是按这个思路设计的。两个同名角色 2 不应被允许同时进入一个虚拟世界,是有实现层面的理由的(这会让解析与通信容易得多);而就连离线的角色也不允许重名 3,本质上是一项客户关系上的要求(尽管它还有别的好处,比如有助于培养身份感)。
玩家数量庞大的虚拟世界很快就会用光像样的名字。当然,这不是只有虚拟世界才有的问题——URL、AOL 账号名和 Hotmail 电子邮箱地址的情况要糟得多——但这并不意味着它不算问题。《网络创世纪》(Ultima Online)的设计者预见到名字会供不应求,于是决定允许重名。为了不让玩家被关在门外,同名的人可以同时游玩。随之而来的,是冒名顶替和沟通方面的种种弊病。在保留重名的前提下,这两者都是可以解决的,但只有靠破坏沉浸的方案才行。紧随其后出现的图形化虚拟世界没有再犯同样的错误,从一开始就采用唯一的名字。
当然,这仍然意味着名字供不应求:如果你有 40 万名玩家,他们就需要 40 万个名字(如果还有多个角色,就需要更多)。一个显而易见的折中办法,是把唯一性限制在服务器集群范围内(也就是限制在某个单一实例/分片内)。有 40 台服务器,玩家的想象力只需要凑出 1 万个不同的名字,这就好处理得多了。诚然,在别的服务器上,可能有人正好也用着你的名字,但你的朋友们都在这台服务器上。
怎么选名字?如果能让玩家自己选名字,他们对角色的认同感会更强;起名是玩家就自己的虚拟身份所要做的第一个、也可以说是最重要的决定。不过,如果放手让他们随便起,又可能烦人地破坏虚构设定(精灵罗宾汉驾到)。这是个问题:随便挑一个允许自由起名的虚拟世界,里面很可能就有人叫“甘道夫”——不管这世界是什么题材。
前面暗示过的一个办法,是采用限制性的命名政策。管理员审核将要采用的名字。在角色扮演要素很强的虚拟世界里,这既可行又非常有效,因为玩家为了解释自己的角色为什么叫这个名字,必然要把这个角色充实起来。但这同时也是一道进入门槛:如果有人想玩你的虚拟世界,却发现光等你批准角色名字就要拖上 10 分钟,他们就会去别的没有这 10 分钟延迟的地方。对每天都有成千上万新手涌入的虚拟世界来说,这种做法实施起来也贵得离谱。
既要保留一点选择余地,又要限制玩家随便取个糟糕名字的自由,一个办法是使用名字列表。做法是给玩家列出一份名字清单,比如 10 个或 20 个可用名字,让他们挑一个。如果这些都不太合适,或许可以再给一份清单,直到所有选项都用完为止。玩家仍然可以选择自己输入一个自由形式的名称,然后等待审核,但他们不必这么做。
名字列表的生成办法有好几种。最显而易见的一种是随机生成。这种办法必须做得好才管用:《无尽的任务》(EverQuest)试过,但它的随机生成做得不好,也就没管用。
另一种办法是利用虚拟世界的背景来给出可选的名字。纸笔角色扮演游戏里有时会用到这一套。其想法是:角色的名字由若干音节拼成,这些音节在角色的族人所讲的某种古代语言里各有含义。典型的安排是一个开头音节、一到多个中间音节,以及一个收尾音节。于是,一个精灵可能选“Ard-la-shi-sa”,意思是“树-沉默之灵”;而一个矮人(用的是一套不同的音节与一套表面上的含义)可能挑“Khad-rak-uz”,意思是“石-强须”。设计者设计起来、玩家玩起来都很有意思,但你得当心——有一次,我就用这类办法凑出了 Fu-qu-az-ole。
利用这类伪文化式的名字含义,就有可能重新引入一点点非唯一命名。如果按角色的种族/职业/性别/其他什么给玩家配一个姓氏,那么他们也许就能选用与另一个姓氏不同的人相同的名字。如果厄克·狼头和厄克·锐矛同时在线,部落里的其他成员,或者与他们大致处于同一地点的人,都可以只管他们叫厄克。只有当另一个部落的人想特指其中一位而不是另一位时,才需要(以形容词的方式)用上姓氏。这是个很巧妙的办法,既留出一定程度的选择自由,又维护了虚拟世界的体面。
名字是一种指称,但并不是唯一的指称。嘿,你认识那位在 1800 年代初征服半个欧洲的、矮个子、有魅力的法国将军吧?当然认识——他是拿破仑·波拿巴。不过,我并没有先告诉你他的名字,你就已经知道他是谁了,对吧 4?有一种主张认为,虚拟世界应当允许对角色作这种相对描述,而且在真正有人把你介绍给某人(或者由某个已经“认识”他的人告诉你他是谁)之前,应当优先采用这种描述。其理由是:在现实世界里,人们不会把自己的名字纹在额头上到处走,因此虚拟世界里的角色也不该如此。反方的论点是:不得不一直用“高个子陌生人”来称呼某人,会妨碍互动——哪怕它最终会促成人们互相询问名字,从而更多地互动。和许多现实与虚拟之争一样,双方都有道理,最终要由设计者决定,在自己的虚拟世界里想怎么处理这种局面。大多数人选择了直接显示名字的做法,因为这对新手更友好。如果有人抱怨,他们总能编出一套虚构设定来把事情圆过去(“所有玩家角色按定义都是英雄,所以也都很有名,所以每个人早就知道别人是谁了”)。
相对名字说明了一点游戏设计者常常忘记的事:名字归个人所有,却由其他所有人使用。如果“高个子陌生人”不肯告诉我他的名字,我大可以决定管他叫瘦竹竿:我可以给别人起名字。在《MUD1》里,杀手型玩家会给自己取像 Mmnmnnmn 这样难打的名字,好让人们很难对他施法、偷他的东西等等。我用代词绕开了这个麻烦,不过代词本身也不是没有问题。尤其是,你可能打了“sleep him”这样的命令,可就在你按下回车的那一刻,一个朋友出现了,把“him”的绑定对象换掉了。《MUD2》加入了为玩家和物体创建同义词的功能,于是只要你(或者任何其他人)打上“syn Mmnmnnmn as ‘Mm’”,此后就可以把 Mmnmnnmn 称为 Mm。
不过,为什么止步于此呢?为什么不允许玩家互相加注呢?大多数人看到的是“Jay 说:‘你好’”;你看到的则是“无聊的讨厌鬼 Jay 说:‘你好’”。
这就引出了玩家如何为自己加注的问题。