地理一致性
往空白画布上泼颜料,并不会造就一个虚拟世界的地理。要做到沉浸,每样东西都应当出于某个理由待在它所在的地方。设计者也许很向往自己规划的那家“魔店”(Magic Shoppe)——里面比外面还大 1——但在眼下这个阶段,也只能拿它当个原型,演示一下里面涉及的原理。这本身并不是坏事(其实,它还挺不错——我一般会向新手开发者推荐这种做法),但东一处西一处地逐个搭建单体建筑,并不是得到一个完整世界的办法。要得到完整的世界,你得像自上而下的做法那样,逐级走过各个抽象层级。
这些层级(从最概括到最具体)依次是:
世界
分区
地带
区域
房间
尽管从技术上说,可能存在一个由彼此平行的世界(也就是不同的 shard/化身)组成的多元宇宙,但这并不会直接影响其中某一个世界的地理。
一个世界的布局,自然取决于它的类型。一部太空歌剧的“世界”也许由若干行星组成;一款禁酒令时代黑帮题材的游戏,其“世界”可能只是一座城市。在这个层级上,主要地理特征的摆放都合乎道理。视尺度而定,这可能意味着恒星、卫星、海洋、大陆、河流、山脉、沙漠、森林、公园、高速公路、道路,如此等等。设计者的主要目标是
造出一张可信的整体地图。河流从山脉流向大海;森林不会出现在沙漠里;城市不会建在冰川上。
划分世界,以便把玩家聚拢起来。世界也许很大,但你仍然希望人们能碰上面(又不会频繁到他们哪儿也不去)。
为世界的扩展留出余地,既有内部的扩展(“新赞助商那家咖啡店我该放在哪儿?”),也有外部的扩展(“资料片该往哪儿放?”)。
为你自己想加进去的一些点子留出空间。“我想要一座沙漠边缘的城市,那么我猜我还得配一条河,或者一片大绿洲,否则没人会把城市建在那儿。”
支撑起一套有意义的生态,并通过资源的分布支撑起经济。
对不止一种玩家类型有吸引力。一个地方是混战场,并不意味着那里就不能长着有意思的花。
给设计者自己提供灵感。“嘿,那片山间湖泊,用来建一个武术高手的神秘王国再合适不过了!”
有意思的是,这些目标(除了外部扩展这一条)在其余各个抽象层级上同样成立。“嘿,那片牛轭湖用来开一家出租小划艇的铺子再合适不过了!”
地理一致性可以通过若干办法达成。如果花上几个小时了解板块构造学,能帮你更准确地摆放山脉与火山,那就去了解——玩家会欣赏这份用心。如果某样东西不合道理,那就应当有一个非常重要的理由让它不合道理。玩家要是纳闷一片安静的住宅区中间怎么会有家香水厂 2,他应当能琢磨出那是私酒蒸馏点的幌子,而不是设计者干活潦草。如果某样东西不合道理,那这个不合道理也该有一个合乎道理的原因。
一个保证地理一致性的直截了当办法,是把真实世界的局部在虚拟世界里复制一份。这对非游戏类应用特别有用——那里,讲授或探索某个真实地点可能就是首要目标(“欢迎来到虚拟威尼斯!”)。而使用真实世界设定的虚构世界就麻烦得多。可以说,把玩家本来就熟悉的环境描画出来对沉浸有好处(玩家已经知道并理解它);然而,除非描画得高度准确,描画得不准反而可能坏事(错误或缺失的细节会与玩家对现实的认识相冲突)。这里存在数据采集与数据维护上的问题,两者开销都不小;而且,如果出现人们认得出来的真实建筑,还可能牵涉法律问题(在一栋虚拟建筑里开一家虚拟妓院,而这座虚拟建筑在真实世界里的孪生体是一座清真寺,就会招致现实世界里各种法律的追究)。用真实世界为虚拟世界提供真实感的另一个问题是:它在具体情境里可能并不真实。比方说,末日之后的华盛顿特区,不太可能还留着它那些最著名的纪念建筑。
除非设计者想表达某种艺术观点,把真实世界里人们认得出来的局部复制进虚拟世界通常是个坏主意。一条经验法则是:别让现实世界的专有名词跑进虚拟世界。
如果你想要地理一致性,就用地理的抽象层级。