地理
地理
写史诗奇幻小说的人常常从一张地图开始。虚拟世界的设计者同样常常把地图当作自己梦想第一次具体成形的载体。在任何以地点或旅行为核心的事业里,地图都是天然的起点。在构建一张地图的过程中,人们不仅给想法赋予了形体,还会引出新的想法。设计者不太可能造出一张地图,过后又反过来改它,去迁就充实地图时冒出来的那些细节。设计流程很少反过来再改地图,因此从地图入手是开始开发内容的绝好方式。
先做地图,对虚拟世界来说还有一个更实际的理由:有技术上的约束在起作用。举例来说,如果程序员坚持采用分区式做法,那就会直接影响世界的地貌;如果设计者想要 200 个分区,那又会影响运维团队必须支撑的网络结构。
因此,地理通常就是设计者着手把概念变成(虚拟)现实的切入点。
地理一致性
往空白画布上泼颜料,并不会造就一个虚拟世界的地理。要做到沉浸,每样东西都应当出于某个理由待在它所在的地方。设计者也许很向往自己规划的那家“魔店”(Magic Shoppe)——里面比外面还大 1——但在眼下这个阶段,也只能拿它当个原型,演示一下里面涉及的原理。这本身并不是坏事(其实,它还挺不错——我一般会向新手开发者推荐这种做法),但东一处西一处地逐个搭建单体建筑,并不是得到一个完整世界的办法。要得到完整的世界,你得像自上而下的做法那样,逐级走过各个抽象层级。
这些层级(从最概括到最具体)依次是:
世界
分区
地带
区域
房间
尽管从技术上说,可能存在一个由彼此平行的世界(也就是不同的 shard/化身)组成的多元宇宙,但这并不会直接影响其中某一个世界的地理。
一个世界的布局,自然取决于它的类型。一部太空歌剧的“世界”也许由若干行星组成;一款禁酒令时代黑帮题材的游戏,其“世界”可能只是一座城市。在这个层级上,主要地理特征的摆放都合乎道理。视尺度而定,这可能意味着恒星、卫星、海洋、大陆、河流、山脉、沙漠、森林、公园、高速公路、道路,如此等等。设计者的主要目标是
造出一张可信的整体地图。河流从山脉流向大海;森林不会出现在沙漠里;城市不会建在冰川上。
划分世界,以便把玩家聚拢起来。世界也许很大,但你仍然希望人们能碰上面(又不会频繁到他们哪儿也不去)。
为世界的扩展留出余地,既有内部的扩展(“新赞助商那家咖啡店我该放在哪儿?”),也有外部的扩展(“资料片该往哪儿放?”)。
为你自己想加进去的一些点子留出空间。“我想要一座沙漠边缘的城市,那么我猜我还得配一条河,或者一片大绿洲,否则没人会把城市建在那儿。”
支撑起一套有意义的生态,并通过资源的分布支撑起经济。
对不止一种玩家类型有吸引力。一个地方是混战场,并不意味着那里就不能长着有意思的花。
给设计者自己提供灵感。“嘿,那片山间湖泊,用来建一个武术高手的神秘王国再合适不过了!”
有意思的是,这些目标(除了外部扩展这一条)在其余各个抽象层级上同样成立。“嘿,那片牛轭湖用来开一家出租小划艇的铺子再合适不过了!”
地理一致性可以通过若干办法达成。如果花上几个小时了解板块构造学,能帮你更准确地摆放山脉与火山,那就去了解——玩家会欣赏这份用心。如果某样东西不合道理,那就应当有一个非常重要的理由让它不合道理。玩家要是纳闷一片安静的住宅区中间怎么会有家香水厂 2,他应当能琢磨出那是私酒蒸馏点的幌子,而不是设计者干活潦草。如果某样东西不合道理,那这个不合道理也该有一个合乎道理的原因。
一个保证地理一致性的直截了当办法,是把真实世界的局部在虚拟世界里复制一份。这对非游戏类应用特别有用——那里,讲授或探索某个真实地点可能就是首要目标(“欢迎来到虚拟威尼斯!”)。而使用真实世界设定的虚构世界就麻烦得多。可以说,把玩家本来就熟悉的环境描画出来对沉浸有好处(玩家已经知道并理解它);然而,除非描画得高度准确,描画得不准反而可能坏事(错误或缺失的细节会与玩家对现实的认识相冲突)。这里存在数据采集与数据维护上的问题,两者开销都不小;而且,如果出现人们认得出来的真实建筑,还可能牵涉法律问题(在一栋虚拟建筑里开一家虚拟妓院,而这座虚拟建筑在真实世界里的孪生体是一座清真寺,就会招致现实世界里各种法律的追究)。用真实世界为虚拟世界提供真实感的另一个问题是:它在具体情境里可能并不真实。比方说,末日之后的华盛顿特区,不太可能还留着它那些最著名的纪念建筑。
除非设计者想表达某种艺术观点,把真实世界里人们认得出来的局部复制进虚拟世界通常是个坏主意。一条经验法则是:别让现实世界的专有名词跑进虚拟世界。
如果你想要地理一致性,就用地理的抽象层级。
地理抽象层级
地理学家有许多不同的办法来看待这个世界以及别的真实世界。毕竟他们是专家。而虚拟世界的玩家大多不是地理学家,他们只会注意到比较显眼的错误。当然,设计者拥有超出普通玩家的知识总是好事,但玩家一旦不再注意到你在做什么,你就可以停下来。沉浸关心的是别把玩家打回现实,而不是教他们了解沉积岩的侵蚀模式 1。从这个角度来看,上一节列出的那些抽象层级,已经足够让一个虚拟世界获得它所需要的全部地理一致性。下面我们逐一细看。
分区是对虚拟世界的一种功能性划分,出于技术理由强加上的。并不是所有虚拟世界都会有分区。分区通常的影响,是把地理特征归并成便于分区的块状。山脉会在分区边界前止步,而不是让几座山麓伸过界去;河流会穿过一个分区,而不会越过边界来回绕;半岛只伸出刚好那么远,远到走到尽头也用不着换分区。
分区就像公路地图册的页面,只不过你可以改动地理特征,让它们正好合页。
地带是成片的大块领土,在战略层面上有各自鲜明的主题差异。比如“北境”可能寒冷,住着粗壮、多毛、扩张成性的蛮族;“群岛”可能是美丽的慵懒天堂,居民却嗜好人祭;“西区”(Westside)可能是片有大房子、泳池和长长车道的街区,住着对河对岸出生的人只有鄙夷的富人。
地带与自然地理边界相吻合。如果它们越过这样一条边界,那就是冲突的起因。在有分区的世界里,这两者常常重合;这是因为玩家对分区边界的感受,和(如果不是更强的话)对纯粹地理边界的感受一样强烈。分区与地带的关系并不必然是一对一(一个地带可以有几个分区,一个分区也可以有几个地带),但通常还是一体化的;一个地带只有一个分区的情形不常见。
区域是地带再往下细分出来的部分:它们在战略层面上主题相近,在战术层面却各有主题。“北境”可能由“群山”“谷地”“冰原”“众神之岛”“熔岩坑”等等组成。常常是由个别设计者把某个区域完整地定义下来,以保证该区域内部的氛围一致。
区域由房间组成。玩家正是在这个层级上体验虚拟世界。“房间”具体指什么,取决于虚拟世界向玩家呈现的方式。可选的做法有:
节点
坐标(格子)
坐标(多边形)
节点是点,与其他点之间可以有(潜在的)无限多条连接。这是文字虚拟世界的主流范式,尽管有些文字世界也用坐标系统。通常,单个节点代表玩家可共享的最小位置单位,在建筑里就是一个房间——「房间」这个名字就是这么来的。
从形式上说,格子坐标是一种节点系统,只是强制规定了节点之间的刚性关系;理论上你可以把格子表示成自由形式的节点。不过实践中之所以用铺砌,是因为用数组实现起来很容易。往往还有别的促成原因,但主要的原因是它映射到一种支持快速随机访问的数据结构。数组还便于自动生成内容,便于做快速的最短路径寻路,以及(最重要的一点)便于以(2D)图形方式显示。
使用格子坐标的文字虚拟世界,通常会给格子与其他节点同等的地位——也就是说,把每一个格子都当作一个房间,一个房间可以有多个玩家占据。图形化虚拟世界则追求更小的粒度,一个格子代表单个角色占用的空间;正因如此,格子只能单人占用,而一个主观意义上的“房间”由若干相邻的格子组成,周围是含有墙壁、门、窗以及其他建筑特征的格子。
节点与格子两种做法都以空间来定义虚拟世界。多边形则以围合来定义它。角色确实占据坐标,但角色的世界是用屏障——他们无法穿过的平面——来定义的。打个比方,想象一张方格纸:节点靠给方格编号来定出线;多边形靠给线编号来定出方格。
使用坐标系统的虚拟世界可以用图形方式显示。多边形系统里坐标的分辨率比格子系统还要小,因为角色本身就是由多边形拼成的。“房间”这个概念依然存在,指一个可以容纳许多角色的封闭空间,但它不再是原子的:角色可以处在房间与房间之间,处于某种过渡状态;而在节点系统里,这样一个位置本身就构成一个房间。
这三者当中,铺砌系统是最不灵活的。它没有处理细节所需的分辨率;尤其跟曲线合不来。精心绘制的纹理贴图能造成曲线的错觉,但玩家一旦对这些曲线做点什么(比如走上一段看起来是缓弯、实际是一级台阶的地方),这错觉就露馅了。
之所以采用 2D,通常是因为它实现起来相对容易,做动画 2 和升级 3 也容易;它往往是 Furcadia 4 这类业余爱好者虚拟世界的首选。随着廉价或免费的全 3D 引擎越来越容易得到 5,这种情况也许会改变,但有些人就喜欢“棋盘上的棋子”那种观感,以及它提供的清晰空间划分;所以 2D 这套做法不太可能消失。
由多边形平面构成的世界能更好地表现环境的不同侧面,因为它的细节更细。你可以轻松地把大型物体旋转任意角度,而不只是 90 度。曲线仍然有棱角,但这些棱角小到可以藏在纹理贴图后面而不显得假 6。
基于节点的系统是所有做法里最灵活的,因为它允许非欧几里得几何。在一个节点世界里,你可以从房间的北面出去,却从东面进来;你可以走进一个衣柜,发现那里是纳尼亚;你可以待在一个包含自身的房间里;你可以让多条出口通向同一个入口;你可以重新连接或销毁节点,留下一片封闭的虚空。
节点做法最直接的好处,是你用不着保持恒定的比例尺。走到一座塔的顶层,花的时间可以跟翻越一条山脉一样长。重要的细节因此可以得到近距离的关注,而不重要的细节可以一概略过。世界可以聚焦于要紧的东西,与玩家心里逐步建立起来的认知地图吻合。建立在坐标系统上的世界受限于真实世界的物理,没有这种精细度。另一方面,它们可以用图形方式呈现,而不受约束的节点系统就做不到这一点。
影响上述所有做法的一个问题是:在它们的边缘该怎么办?如果你一直往东走,会发生什么?应对这种情况,有一些久经检验的可靠办法:
绕回。如果你一直往东走,最后会回到起点——就像真实世界那样。
物理边界。路上有一道爬不上去的峭壁、一条游不过去的河、一片行不了船的海洋、一座过不去的森林。
大棒。如果你往沙漠里走得太远,不管你以为自己准备得多充分,太阳都会把你烤死。
情感边界。你的角色“不想”再往前走了。你可能想,但控制角色的不是你。
提示。如果你试图走得太远,会收到一条客气的消息,解释说设计者没能提供必要的内容。
隐形墙。没有任何解释,你就是走不出这块棋盘。
在以上这些办法里,物理边界最受欢迎,因为它处在虚拟世界的情境之内,又为日后的扩展留着一扇门。可惜它受欢迎到了其表达方式容易落成俗套的地步。“嗯,大海。看来我已经走到地图的西边了。”这里其实大有发挥想象力的机会。
地形
地形是地貌的构成材料。地形也有抽象层级,与主题的抽象层级相对应。设计一个地带的人,也许会决定放一片森林;设计一个区域的人,也许会决定放一片树林;设计一片树林的人,也许会决定放一棵树。地形就是颜料,拿它画出设计者想传达的那幅图像。
一个虚拟世界可以使用哪些地形类型,当然取决于那个世界。比方说,一个大体上完全设在室内的虚拟世界就用不着沼泽地。虽然很想直接翻开车用地图册看它常用的符号,但要确定地形,有更科学、也更能带来真实感的办法。对一个通用的、户外的、大陆尺度的虚拟世界来说,以下几个维度大概更有用:
海拔
地表地质(岩石、土壤、水、沙,等等)
植被(无、草、灌木丛、耕作地、树木,等等)
覆盖物(无、雪、灰,等等)
介质(空气、水、雾,等等)
于是你可以有一座丘陵、一座长满林木的丘陵、一座覆雪又长满林木的丘陵,如此等等。具体是哪种林地,取决于抽象层级(丛林、红树林沼泽、松树、橡树,诸如此类)。
把每一层都显式表示出来,虚拟世界就能给不同地形不同的属性。图形世界从中获益最多,因为它们需要纹理贴图,但这些属性也能用在别的方面(移动速度、脚印/脚步声、环境音)。不过,就连文字世界也能从「给房间一个地形属性」中获益:举个最简单的例子,你把一个玻璃瓶掉在铺好的路上,它会摔碎;掉在沙滩上就不会。多层地形还能让你发现不协调之处,比如水下的积雪——不过说实话,蠢到会做出这种事的人,也不至于蠢到会去检查这种地方。
啊,对了,天气……
我第一次去圣迭戈的时候,美国海关把我的包从 X 光机里拽出来,让我打开,因为他们搞不清里面是什么。让他们困惑的那件东西,原来是我的雨伞。
我是英格兰人。英格兰是有天气的。天气会影响地形。平静的海面会变得汹涌,森林里的树会摇摆,雪会化成雪泥,草地会变成沼泽,街道会变成河流,高尔夫球大小的冰雹会在七月中旬毫无预警地落下,让方圆一平方公里内每一辆车的报警器都响起来 1。一个气候与其地理相称的持久世界,比一年到头都一个样的世界更可信 2。你不需要一套复杂的模型来决定盛行风、气温,进而决定云量与可能的降水。你住的地方也许总是阳光灿烂,但这并不意味着你的虚拟世界也该如此。那些郁郁葱葱的牧场,总得从什么地方弄到水。
我第二次去圣迭戈,把雨伞留在了家里。雨大得把广告牌上的纸都冲掉了。当地人却毫不在意,因为这场雨两周前就预报过了。呃啊!
用系统化的办法处理地形,会让天气带来的影响容易调节得多。它还有另一种同样不错、目前用得还不算多的做法——不过它很可能正是某些设计者求之不得的答案:隐式地形。
在《指环王》里,所有情节都只发生在少数几个地带。中土的大片区域并没怎么受到那场冲突的影响。如果你要以这个设定设计一个虚拟世界,你会想略过玩家不会感兴趣的那些地方,把精力集中在他们感兴趣的地方。可惜,结果会相当零碎。在玩家心里,地图至少应当是矩形的;如果他们读过《指环王》,还会期望虚拟世界与书中的地图吻合。
内容是要花钱的。哪怕平淡无奇的内容也要花钱。迷雾山脉里也许只有一两处有意思的地点,但如果整张地图都要在虚拟世界里表示出来,那就还得有设计者去给那条山脉里每一座嶙峋山峰前的每一面山坡都摆上每一棵树。费这么大劲,只是为了安抚偶尔路过的那一个玩家。
整体地图会显示一个地带的大致地形,甚至细致到区域层级。只有当地图必须做成一个个实际的多边形时,建造它才变得繁琐。隐式地形就是在这里登场的。
隐式地形用一个引导地形类型(即该处所属区域的地形)加上一个随机数种子(基于它的坐标),即时生成实际地形。只有当玩家进入某个区域时,该区域的内容才会被创建出来。玩家做出的任何改动(比如埋下宝藏)都会被记录下来,用以取代隐式定义,但其余的东西在玩家离开后都可以丢弃。从实现的角度说,它不如显式表示高效,但在设计效率上足以弥补回来。可以为某个区域生成随机的活动体来添点滋味,不过总的来说,它们之所以在那儿,只是因为不生成的话,玩家路过时会注意到它们不在。用分层方式来定义地形,比用自然语言词条来定义地形更容易做分形化的区域生成 3。
大多数设计者不会遇到地图过大的问题。不过,这并不意味着隐式地形对他们就没有用。尤其是,当玩家走出地图时,可以用它来生成内容。可以靠加入越来越难对付的活动体来劝阻玩家走得太远,但这样一来,他们真要一直走下去也没什么关系——总能按他们的坐标生成地形。当然,这不会是引人入胜的内容,但它除掉了边界这个俗套问题。如果你做的是一个设定在太空里的虚拟世界,想要一个无限的宇宙,那么好吧,你就能有一个。
移动
严格来说,虚拟世界里的移动只是物体状态转换的一种特定形式。然而,因为它是玩家用来构建环境认知地图的工具,所以它有格外重要的意义——至少对玩家来说是这样(而设计者设计的正是玩家心里的那个东西)。虚拟世界的地理必须考虑到玩家会如何在脑子里把它搭建起来,而这不仅取决于他们看到什么,也取决于他们怎么看。因为虚拟世界的地理太大,无法在一次游玩中走完,所以移动会强烈地影响这两者。
那么,让我们简要看看在虚拟世界里移动的各种方式,并考虑它们在地理 1 上的含义。
基本的移动发生在相邻的地点之间。这些地点要么是节点,要么是坐标点。要从一个地点转到另一个地点,玩家必须发出移动命令(或者在少数情况下,是没能发出停止移动的命令)。做法主要有四种,它们并不互斥(也就是说,你愿意的话可以全都用上):
绝对方向。就是那些传统的罗盘方位。北、东北、东,等等。
相对方向。这些命令以角色为原点,与角色的视线方向对齐。左、右、前,等等。
情境方向。命令的含义随情境而不同。进、出、返回,等等。
地标方向。这些命令把角色移向一个具有某个显著特征的地点。沼泽、塔、商店,等等。
大多数文字世界与 2D 图形世界都偏好绝对方向。大多数 3D 图形世界则偏好相对方向。
文字世界偏爱绝对方向,理由有三:
房间描述不必考虑每个角色的视角。注意:如果你正是因为这一点才想要绝对方向,那你就不能同时又提供相对方向。
对玩家来说,用绝对方向画地图比用相对方向容易得多。在可以自由选择用哪种时,玩家更偏好绝对方向。
在英语里,四个主要的罗盘方位有各自独特的单字母缩写;四个居间的方位有各自独特的双字母缩写。它们与常见命令的其他缩写都不冲突。相对方向的缩写则笨拙得多(“slide left”缩写成 “sl”),而且确实会与其他常见命令冲突(“l” 既可能是 “left” 也可能是 “look”)。
2D 虚拟世界使用绝对方向,因为它们提供的是虚拟世界的固定视角。它们也许允许 90 度旋转,但北在哪个方向始终是清楚的。3D 虚拟世界给玩家呈现的是角色视角的环境,因此所有移动都相对于角色的视线方向。绝对方向也许可以从另一个“雷达扫描”面板上判断出来,不过玩家同样也可以在那个面板上用相对方向来移动。
当然,可以从相对方向推算出绝对方向,但那很麻烦。既然大多数玩家偏好绝对方向,图的就是画地图(真实的地图和认知地图)更容易,那么就通常应当把绝对方向作为一项便利提供出来 2。没错,相对方向更真实(没人鼻子上钉着一只罗盘),但如果你坚持要用它们,那就等着玩家迷路吧。
迷路是虚拟地理必须解决的主要问题。偶尔走错路并不一定是坏事(尤其是在探索的时候),但如果经常发生,那就意味着玩家没能在脑子里建立起一个能用的虚拟世界布局模型。这种困惑会带来挫败感(这已经够糟了),而且还会让新手觉得整个系统都让人糊涂(那就更糟了)。如果一个虚拟世界设计得如此糟糕,以至于你连从 A 走到 B 都会迷路,那你还有多大指望能弄懂法术、战斗,或者弄明白马蹄铁是怎么打造出来的?
为了不迷路,玩家需要衡量两件事:距离和方位。在节点世界里,距离是个问题,因为它是以房间数、而不是以单位长度来衡量的。你可能向北、向东、向南走,结果到达的地点跟向东走五次之后到达的地点一样。更糟的是,你可能向东北再向西南走,最后却没回到原地。正因如此,人们才会用情境方向与地标方向,好让玩家能相对容易地回到自己知道的某个地方。大多数地标命令是写死在虚拟世界里的,但其实没有理由不让玩家创建自己的地标。路径查找算法又快又高效,只要它们不去查玩家不可能知道的东西(比如中间那扇门是开着还是锁着),就应当允许把任何有可能被用到的静态地理特征用作地标。
图形世界满足了“不迷路”的距离条件,但它们对方位这一条处理得不太好。此外,它们通常没有适当的界面来提供明确的防迷路的情境命令或地标命令,因为它们靠的是鼠标与方向键 3。如果它们想要这类命令,就得在环境里隐式地提供出来。玩家之所以会“进入”一个房间,是因为那里只有一扇门。那座塔之所以是“地标”,是因为它是方圆几英里内最高的建筑。
地标之所以重要,是因为玩家把它们当作参照点 4。不过,并非所有参照点都是那种“高度显眼”意义上的地标。旅店、地下洞穴、神龛、低洼处的绿洲——人们很可能把它们当作参照点,但要靠近了才看得见。这种情况下,图形虚拟世界应当给玩家提供指向某个方向的线索:道路、河流,以及(当然还有)路牌,这些都能帮上忙。
有些环境比其他环境更容易让玩家迷路。主要的罪魁祸首是:
毫无特征的地貌,比如沙漠。
塞满了相似特征的地貌,比如森林。
经常变化的地貌。“群山在歌唱!”
故意让人辨不清方向的“怪异角度”景观,用来传达异域感。
你必须高速穿越、方向又会突然任意改变的地貌。“迅猛龙!快逃命!”
蜿蜒曲折、拐来拐去、不规则的通路。躲不开的迷宫可不好玩。
如果你不想让人迷路,就避开这些。如果避不开,那就务必保证进入它们是可选的。
到目前为止,我只讨论了相邻地点的移动。角色也经常靠不相邻的移动来旅行——也就是传送。这跟用地标方向移动很像,只不过移向地标的过程是瞬间完成的。传送对虚拟世界的若干方面都有影响(尤其是经济),但我们眼下只看它在地理上的影响。
MUD1 最有影响力的早期玩家之一马克·朗利,以前相当有规律地坐火车去伦敦。到了之后,他会坐地铁到离他当天要去的博物馆、展览馆或科幻书店最近的一站,走一小段路到目的地,然后原路返回。他有一次跟我解释说,他对伦敦地面的地理认知,只由地铁站附近若干小片互不相连的区域拼成;当他看到地图、发现有些车站在现实中彼此那么近时,着实吃了一惊。
有传送功能的虚拟世界,就像马克脑子里那张地图中的伦敦。它们可能很大,塞满了有趣的东西,但如果人们能用传送门,就绝不会看到离传送门稍远的东西。大多数虚拟世界(不像伦敦)在传送门之间的路上难得有什么值得看的东西,这一点只会让问题更严重。与其说那是一个虚拟世界,不如说是一堆虚拟子世界的集合。
有些设计者也许觉得这样挺好。内容会像汉堡店聚在路口那样,聚在传送门附近。不过,这确实意味着大量凝聚力的流失,而且会大大削弱玩家第一次到访某地时体验到的敬畏感。氛围既靠呈现,也靠期待;入迷是惊喜在加强,而不是导游手册。
这些问题可以在某种程度上得到缓解(至少在图形世界里),办法是用更好的虚构设定,让旅行更快、但又不是瞬间完成。如果角色能靠骑马或乘船加快速度,他们就能看到当地的地形,抵达目的地时也会更清楚它在哪里。做不到这一点的话,也可以让旅行在玩家离线时进行:徒步穿过盐滩很无聊,但如果你在现实世界里睡觉时,角色正在做这件事,那又关你什么事?以这种方式旅行不必有危险——它实际上就是一种“慢速传送门”——但它至少能让人知道自己走了多远(哪怕并不确切知道走到了哪儿)。
所以,在设计你虚拟世界的地理时,记住人们得去亲身体验它。给他们地标,给他们地图,非要的话给他们坐标——只要确保无论你怎么做,他们都知道自己在哪儿。然后,他们才能决定要去哪儿。
居民点
许多虚拟世界里都有虚拟建筑。虽然其中一些也许是孤立的(农舍、小屋、法师的塔),但规模做得更大的世界会需要居民点。
这里的居民点指建筑的集合(或者一座内部有许多房间的巨型建筑——比如一座城堡,或者一座太空站)。多数时候它们有人居住,但废墟式的居民点也是可行的。
不用多说,居民点放在某个位置都是有理由的。如果虚拟世界的居民点建在说得通的地方,它就更可信。一座取不到淡水、也没有通往其他居民点的贸易路线的城镇,会让每个稍作思量的人挑起眉毛。可惜,许多设计者对这些讲究毫不在意。他们很乐意把一座废墟城市放在山腰上,说那是矮人屠杀人类的现场,却不太关心原本住在那里的人类吃什么。
真实世界里人口众多的城市建在它们所在的地方,原因很多。它们大多是从更小的居民点发展而来的,尽管也有一些是统治者建立的(比如巴格达、慕尼黑、圣彼得堡、华盛顿特区)。要繁荣起来,它们都需要
大片平坦的土地
能获取食物和水
附近有建筑材料
不构成威胁的气候/地质/地理
通信联系
人口
除了这些条件,如果它们还靠近自然资源,又处在易守难攻的位置,那就更好了。
要注意,对许多虚拟世界来说,从严格的玩法角度看,其中有些条件并不必要。只有当角色需要吃喝时,食物和水才是必需的;角色一般不受气候的影响;通信往往是瞬间完成的。确实,人们想要一栋房子,可能只是为了有个地方存放东西。而现实世界的居民点并不是这样形成的。
授权开发的虚拟世界,居民点必须出现在地图上说它在那里的地方。即便如此,在附近放上道路、泉水、森林和玉米地也不会有坏处。其他虚拟世界的设计者可以更自由地把城市放在他们想放的地方,但也就更有责任把它们放在不那么荒唐的地方。与虚拟世界设计的许多方面一样,关键在于做功课:花几个小时翻一翻城市规划专业一年级的教科书,就能得到居民点组织方式的入门知识(这些就够用了)。在虚拟世界里,你不仅能按自己想要的相对位置来安置居民点,还能改动地理来迁就它。实在没有理由粗心大意。打破规则的常规依然适用:如果一个居民点出现在平时找不到居民点的地方,那就得有一个情境之内的理由让它出现在那里(比如那里的居民出于宗教原因不愿与外界来往)。
要注意,规模较小的虚拟世界,尤其是那些持久性不高的,可以用旅店之类的社交场所作为枢纽(而不必诉诸完整的居民点)。这些场所的选址规则会有所不同,但规则仍然存在;别随手往哪儿一搁就算了。
有了这些关于居民点(或其他任何场所)选址的基本法则,接下来的问题就是运用它们,推导出设计者想要的配置。居民点总是服务于某种玩法用途;它们不只是为了再添一点背景色彩。有些位置天然到居民点非占不可(大河的河口、三角洲的顶端、重要商队路线上的沙漠绿洲),除此之外,其余居民点的位置取决于设计者想从它们那里得到什么——尤其是,他们是否想让玩家去那里。居民点常常是贸易中心,玩家可以到那里卖掉自己的东西、买进更好的东西。它们也常常是玩家接到任务的地方。因此,它们是焦点,能养成社区感;在允许拥有财产的世界里,它们还能成为社区的实体代表。
如果居民点太少,玩家就会把现有的几个挤爆。太多倒不成问题,因为玩家会向少数几个聚拢,其余的则留下来,见证设计者白费的时间。
理想情况下,居民点应当像适者生存那样自然地衰落或繁荣。表面上看,这很容易:玩家常去的那些应当扩张,并提供新的机会与服务;被遗忘的那些应当萎缩下去,变成鬼城。可惜,这事说起来容易做起来难:多数居民点里的居民以非玩家角色为主,而他们(哪怕只从实现上看)未必搬得动。更让人担心的是,他们也许看起来没用,却在间接地承担某项重要功能。比方说,玩家也许从不去那座矿业城镇,但如果城里工匠打盔甲用的铁全出自那里,那么把它关掉就是个错误。在一个经济、生态与社区彼此交织的复杂虚拟世界里,单看玩家住满的房屋有多少,不足以判断一个居民点的成败。
玩家应当能自己建造居民点吗?这会让居民点在设计者(有意或无意)留下的空处自发地冒出来。《网络创世纪》从一开始就允许这么做,但其他虚拟世界可以不这么做,理由是技术上的:比如《阿瑟龙的召唤》只让玩家购买已建好的房屋,因为它的长期故事线说不定会突然需要让一座火山从棚户区底下冒出来。不过总的来说,玩家自建的居民点作为留住玩家的工具实在太有力,不能不考虑;对长期持久的虚拟世界来说,只要玩家创建的居民点说得通,设计者就应当设法支持它们创建。
这事其实并不像听起来那么容易。虚拟世界既需要真实的居民,也需要虚拟的居民。没有 NPC 的居民点,作用比不上有 NPC 的居民点。那么,这些居民点从哪里获得居民呢?
主要有三种办法:
障眼法。居民点达到一定规模时,NPC 就出现了。除了划定居民点的边界(也就决定了它的规模)之外,这种做法唯一值得说的短板是不够可信,而且会导致 NPC 膨胀(也就是说,NPC 越多,每一个的价值就越低)。
随建随配。用这种办法,提供服务的建筑自带员工。如果你的社区合伙出资建起一家鞋匠铺,它自动就配上一个鞋匠。这略微更真实一些,也让城镇的种类可以更丰富,但依然会导致 NPC 膨胀。如果每个镇都建一家鞋匠铺,鞋子的价格会怎么样?
经济驱动。NPC 定期查看自己的生意如何,如果生意不好,他们就搬到生意会好的别处去。这是所有办法里最真实的,但它需要一套良好的经济模型作支撑——那套模型还要能用来做预测,好让 NPC 推测哪里市场好 1。
建造时间是另一个问题。如果重要建筑能一夜之间冒出来,那可不利于真实感。可惜,如果按真实的时间来建,那又不利于社区管理:盖起一座城堡要花整整一周,性急的玩家都会抱怨,更别说建一所不大的住宅了(不过,如果你让他们分阶段建造,这倒可以缓解)。即便虚构设定支持瞬间造房(“把房子种子种在你想要它长出来的地方,浇上水,然后退后”),也仍有理由安排一些延迟。等待可以抬高期待,尤其是在进度可见的时候。不过等得太久,就变成折磨了 2。这条线划在哪里,由你决定。
虚拟世界的居民点有个最扎眼的地方:它们实际上都没那么大。《无尽的任务》的城镇里大概有 50 栋建筑——那不过是些小村落罢了。大型文字世界可以多得多,但它们吃亏在“看上去”不大。如果图形世界能有 5,000 栋建筑,那才像样!可惜,这取决于它们是否有能力支撑大量 NPC,而它们中的大多数严重缺乏这种能力(因为控制这些小家伙所需的 AI 水平太高)。此外,许多设计者觉得,在一个能夸口有几千名真人的虚拟世界里放大量假人没什么意义 3。
尽管如此,我还是期待有朝一日能走进一座虚拟城市,那里住着成千上万的虚拟居民,每个人都有自己的日子要过,自己在虚拟社会里的位置。那可真了不起。