# 地理一致性

LLMS 索引： [llms.txt](/dvw/llms.txt)

---

往空白画布上泼颜料，并不会造就一个虚拟世界的地理。要做到沉浸，每样东西都应当出于某个理由待在它所在的地方。设计者也许很向往自己规划的那家“魔店”（Magic Shoppe）——里面比外面还大 [^23]——但在眼下这个阶段，也只能拿它当个原型，演示一下里面涉及的原理。这本身并不是坏事（其实，它还挺不错——我一般会向新手开发者推荐这种做法），但东一处西一处地逐个搭建单体建筑，并不是得到一个完整世界的办法。要得到完整的世界，你得像自上而下的做法那样，逐级走过各个抽象层级。

这些层级（从最概括到最具体）依次是：

- 世界

- 分区

- 地带

- 区域

- 房间

尽管从技术上说，可能存在一个由彼此平行的世界（也就是不同的 shard／化身）组成的多元宇宙，但这并不会直接影响其中某一个世界的地理。

一个世界的布局，自然取决于它的类型。一部太空歌剧的“世界”也许由若干行星组成；一款禁酒令时代黑帮题材的游戏，其“世界”可能只是一座城市。在这个层级上，主要地理特征的摆放都合乎道理。视尺度而定，这可能意味着恒星、卫星、海洋、大陆、河流、山脉、沙漠、森林、公园、高速公路、道路，如此等等。设计者的主要目标是

- 造出一张可信的整体地图。河流从山脉流向大海；森林不会出现在沙漠里；城市不会建在冰川上。

- 划分世界，以便把玩家聚拢起来。世界也许很大，但你仍然希望人们能碰上面（又不会频繁到他们哪儿也不去）。

- 为世界的扩展留出余地，既有内部的扩展（“新赞助商那家咖啡店我该放在哪儿？”），也有外部的扩展（“资料片该往哪儿放？”）。

- 为你自己想加进去的一些点子留出空间。“我想要一座沙漠边缘的城市，那么我猜我还得配一条河，或者一片大绿洲，否则没人会把城市建在那儿。”

- 支撑起一套有意义的生态，并通过资源的分布支撑起经济。

- 对不止一种玩家类型有吸引力。一个地方是混战场，并不意味着那里就不能长着有意思的花。

- 给设计者自己提供灵感。“嘿，那片山间湖泊，用来建一个武术高手的神秘王国再合适不过了！”

有意思的是，这些目标（除了外部扩展这一条）在其余各个抽象层级上同样成立。“嘿，那片牛轭湖用来开一家出租小划艇的铺子再合适不过了！”

地理一致性可以通过若干办法达成。如果花上几个小时了解板块构造学，能帮你更准确地摆放山脉与火山，那就去了解——玩家会欣赏这份用心。如果某样东西不合道理，那就应当有一个非常重要的理由让它不合道理。玩家要是纳闷一片安静的住宅区中间怎么会有家香水厂 [^24]，他应当能琢磨出那是私酒蒸馏点的幌子，而不是设计者干活潦草。如果某样东西不合道理，那这个不合道理也该有一个合乎道理的原因。

一个保证地理一致性的直截了当办法，是把真实世界的局部在虚拟世界里复制一份。这对非游戏类应用特别有用——那里，讲授或探索某个真实地点可能就是首要目标（“欢迎来到虚拟威尼斯！”）。而使用真实世界设定的虚构世界就麻烦得多。可以说，把玩家本来就熟悉的环境描画出来对沉浸有好处（玩家已经知道并理解它）；然而，除非描画得高度准确，描画得不准反而可能坏事（错误或缺失的细节会与玩家对现实的认识相冲突）。这里存在数据采集与数据维护上的问题，两者开销都不小；而且，如果出现人们认得出来的真实建筑，还可能牵涉法律问题（在一栋虚拟建筑里开一家虚拟妓院，而这座虚拟建筑在真实世界里的孪生体是一座清真寺，就会招致现实世界里各种法律的追究）。用真实世界为虚拟世界提供真实感的另一个问题是：它在具体情境里可能并不真实。比方说，末日之后的华盛顿特区，不太可能还留着它那些最著名的纪念建筑。

除非设计者想表达某种艺术观点，把真实世界里人们认得出来的局部复制进虚拟世界通常是个坏主意。一条经验法则是：别让现实世界的专有名词跑进虚拟世界。

如果你想要地理一致性，就用地理的抽象层级。


[^23]: 或者，为了更有新意：外面比里面还大。
[^24]: 这里假定你那个世界里至少有一处居民点大到有“安静的住宅区”。《无尽的任务》里的一座城镇，只要有 20 栋建筑，玩家就会觉得它“大”。
