# 地形

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

---

地形是地貌的构成材料。地形也有抽象层级，与主题的抽象层级相对应。设计一个地带的人，也许会决定放一片森林；设计一个区域的人，也许会决定放一片树林；设计一片树林的人，也许会决定放一棵树。地形就是颜料，拿它画出设计者想传达的那幅图像。

一个虚拟世界可以使用哪些地形类型，当然取决于那个世界。比方说，一个大体上完全设在室内的虚拟世界就用不着沼泽地。虽然很想直接翻开车用地图册看它常用的符号，但要确定地形，有更科学、也更能带来真实感的办法。对一个通用的、户外的、大陆尺度的虚拟世界来说，以下几个维度大概更有用：

- 海拔

- 地表地质（岩石、土壤、水、沙，等等）

- 植被（无、草、灌木丛、耕作地、树木，等等）

- 覆盖物（无、雪、灰，等等）

- 介质（空气、水、雾，等等）

于是你可以有一座丘陵、一座长满林木的丘陵、一座覆雪又长满林木的丘陵，如此等等。具体是哪种林地，取决于抽象层级（丛林、红树林沼泽、松树、橡树，诸如此类）。

把每一层都显式表示出来，虚拟世界就能给不同地形不同的属性。图形世界从中获益最多，因为它们需要纹理贴图，但这些属性也能用在别的方面（移动速度、脚印／脚步声、环境音）。不过，就连文字世界也能从「给房间一个地形属性」中获益：举个最简单的例子，你把一个玻璃瓶掉在铺好的路上，它会摔碎；掉在沙滩上就不会。多层地形还能让你发现不协调之处，比如水下的积雪——不过说实话，蠢到会做出这种事的人，也不至于蠢到会去检查这种地方。

啊，对了，天气……

我第一次去圣迭戈的时候，美国海关把我的包从 X 光机里拽出来，让我打开，因为他们搞不清里面是什么。让他们困惑的那件东西，原来是我的雨伞。

我是英格兰人。英格兰是有天气的。天气会影响地形。平静的海面会变得汹涌，森林里的树会摇摆，雪会化成雪泥，草地会变成沼泽，街道会变成河流，高尔夫球大小的冰雹会在七月中旬毫无预警地落下，让方圆一平方公里内每一辆车的报警器都响起来 [^31]。一个气候与其地理相称的持久世界，比一年到头都一个样的世界更可信 [^32]。你不需要一套复杂的模型来决定盛行风、气温，进而决定云量与可能的降水。你住的地方也许总是阳光灿烂，但这并不意味着你的虚拟世界也该如此。那些郁郁葱葱的牧场，总得从什么地方弄到水。

我第二次去圣迭戈，把雨伞留在了家里。雨大得把广告牌上的纸都冲掉了。当地人却毫不在意，因为这场雨两周前就预报过了。呃啊！

用系统化的办法处理地形，会让天气带来的影响容易调节得多。它还有另一种同样不错、目前用得还不算多的做法——不过它很可能正是某些设计者求之不得的答案：隐式地形。

在《指环王》里，所有情节都只发生在少数几个地带。中土的大片区域并没怎么受到那场冲突的影响。如果你要以这个设定设计一个虚拟世界，你会想略过玩家不会感兴趣的那些地方，把精力集中在他们感兴趣的地方。可惜，结果会相当零碎。在玩家心里，地图至少应当是矩形的；如果他们读过《指环王》，还会期望虚拟世界与书中的地图吻合。

内容是要花钱的。哪怕平淡无奇的内容也要花钱。迷雾山脉里也许只有一两处有意思的地点，但如果整张地图都要在虚拟世界里表示出来，那就还得有设计者去给那条山脉里每一座嶙峋山峰前的每一面山坡都摆上每一棵树。费这么大劲，只是为了安抚偶尔路过的那一个玩家。

整体地图会显示一个地带的大致地形，甚至细致到区域层级。只有当地图必须做成一个个实际的多边形时，建造它才变得繁琐。隐式地形就是在这里登场的。

隐式地形用一个引导地形类型（即该处所属区域的地形）加上一个随机数种子（基于它的坐标），即时生成实际地形。只有当玩家进入某个区域时，该区域的内容才会被创建出来。玩家做出的任何改动（比如埋下宝藏）都会被记录下来，用以取代隐式定义，但其余的东西在玩家离开后都可以丢弃。从实现的角度说，它不如显式表示高效，但在设计效率上足以弥补回来。可以为某个区域生成随机的活动体来添点滋味，不过总的来说，它们之所以在那儿，只是因为不生成的话，玩家路过时会注意到它们不在。用分层方式来定义地形，比用自然语言词条来定义地形更容易做分形化的区域生成 [^33]。

大多数设计者不会遇到地图过大的问题。不过，这并不意味着隐式地形对他们就没有用。尤其是，当玩家走出地图时，可以用它来生成内容。可以靠加入越来越难对付的活动体来劝阻玩家走得太远，但这样一来，他们真要一直走下去也没什么关系——总能按他们的坐标生成地形。当然，这不会是引人入胜的内容，但它除掉了边界这个俗套问题。如果你做的是一个设定在太空里的虚拟世界，想要一个无限的宇宙，那么好吧，你就能有一个。


[^31]: 我可不是在说自己有过亲身体验什么的。
[^32]: 即便这个世界并不完全可信，玩家也会喜欢它带来的变化。《阿瑟龙的召唤2》里的湖泊会在冬天结冰，角色可以在上面行走。
[^33]: 《星球大战：银河》有一套地形生成工具，能把一个基本模型展开成显式的地形，让设计者只需专注于摆放那些与玩法相关的有意思的特征。
