WEBVTT 00:00:00.000 --> 00:00:01.175 译者:tkchu 00:00:01.625 --> 00:00:03.300 这里是《游戏制作工具箱》 00:00:03.300 --> 00:00:04.400 我是马克·布朗 00:00:04.800 --> 00:00:07.950 如果问什么是我玩得最多的游戏 00:00:07.950 --> 00:00:09.175 那就是《洞穴探险》了 00:00:09.175 --> 00:00:11.325 ——它是一个极端困难的平台跳跃游戏 00:00:11.325 --> 00:00:15.300 继承了马里奥和恶魔城这样卷轴游戏的紧张 00:00:15.300 --> 00:00:22.525 但每次死亡都会改变地图,使你无法记忆关卡的布局和敌人的位置 00:00:22.975 --> 00:00:28.250 但让《洞穴探险》出彩的是,即使关卡是随机组合的 00:00:28.250 --> 00:00:30.375 它们仍然公平有趣 00:00:30.375 --> 00:00:32.425 即使是打了100次 00:00:32.425 --> 00:00:34.675 我也没有遇见一个糟糕的关卡 00:00:35.275 --> 00:00:38.675 它们感觉并不是像算法的产物 00:00:38.675 --> 00:00:43.575 而在游戏游戏中,分割再组合的关卡混乱别扭,充满了死胡同 00:00:44.100 --> 00:00:45.525 在《洞穴探险》中 00:00:45.550 --> 00:00:51.550 程序生成的关卡和手工打磨的关卡一样有趣动人 00:00:52.225 --> 00:00:58.600 那是因为制作人Derek Yu很好地平衡了随机和预设内容 00:00:59.825 --> 00:01:03.750 他在他的新书《洞穴探险》中解释了这点 00:01:03.750 --> 00:01:06.925 我推荐任何对设计感兴趣的人阅读 00:01:07.325 --> 00:01:09.575 但在你等待这本书寄到时 00:01:09.575 --> 00:01:16.375 我准备使用这本书中的部分内容,解释《洞穴探险》是如何半生成半预设 00:01:16.375 --> 00:01:21.975 然后我们会看看无尽的独特关卡为什么对游戏很重要 00:01:22.575 --> 00:01:25.350 但首先,我们得回到一切的开头 00:01:25.425 --> 00:01:28.700 虽然你认为《洞穴探险》长的是这样 00:01:28.700 --> 00:01:33.750 在最开始它实际是一款免费的像素风格游戏,现在叫做《洞穴探险经典版》 00:01:37.050 --> 00:01:42.750 《洞穴探险》中的每一关都由代码按固定大小和形状生成: 00:01:42.750 --> 00:01:45.850 四乘四的十六个格子 00:01:46.350 --> 00:01:50.200 代码做到第一件事是选择第一行的某个随机房间 00:01:50.200 --> 00:01:51.675 将其作为入口 00:01:52.250 --> 00:01:56.825 之后随机选择这个房间的左、右、下方放置房间 00:01:56.825 --> 00:01:59.775 这个过程重复发生在一个又一个房间上 00:01:59.775 --> 00:02:02.500 如果生成路径碰到了关卡的边缘,那就向下 00:02:02.500 --> 00:02:06.950 直到最底层,当它再尝试向下时,就将其作为出口 00:02:07.400 --> 00:02:10.375 每一个在主线上的房间都有向左或者向右的开口 00:02:10.375 --> 00:02:13.700 但指向下一层的房间有底部开口 00:02:13.700 --> 00:02:16.450 而掉入的房间有顶部开口 00:02:16.800 --> 00:02:19.875 这样的关卡结果是保证有条路径 00:02:19.875 --> 00:02:23.575 无需炸弹和绳索就能闯关 00:02:24.100 --> 00:02:26.275 其它的房间不在关键路径上 00:02:26.275 --> 00:02:27.300 也许可以抵达 00:02:27.300 --> 00:02:29.650 也许不能,这取决于它们的自身设计 00:02:30.050 --> 00:02:33.000 下一步,每个房间都随机给了一个模板 00:02:33.525 --> 00:02:37.700 Derek Yu使用不同的布局,做了一系列房间设计 00:02:37.700 --> 00:02:39.400 包括你掉出去的房间 00:02:39.400 --> 00:02:40.800 掉入的房间 00:02:40.800 --> 00:02:42.350 传过的走廊 00:02:42.350 --> 00:02:44.350 以及不在关键路径上的房间 00:02:44.350 --> 00:02:46.900 但这些模板不是一成不变的 00:02:46.900 --> 00:02:48.825 它们也有随机生成的部分 00:02:48.850 --> 00:02:52.775 有时候一整个格子都是随机生成的 00:02:52.775 --> 00:02:56.325 这就意味着你会看到类似的预设 00:02:56.325 --> 00:02:58.725 但又有独特之处 00:02:59.550 --> 00:03:03.525 之后,代码检查地图上的每个格子,投骰子决定 00:03:03.525 --> 00:03:06.750 是不是需要放置怪物、宝藏或者别的什么 00:03:07.250 --> 00:03:08.850 同样的,这并不是完全随机的 00:03:08.850 --> 00:03:12.800 珠宝和箱子更多地出现在被墙壁包围的空间 00:03:12.800 --> 00:03:15.225 敌人通常不会在狭小的空间里生成 00:03:15.775 --> 00:03:17.075 每件事物都有个权重 00:03:17.075 --> 00:03:20.675 所以关卡中不会充满火焰青蛙或者装满背包的箱子 00:03:22.475 --> 00:03:26.000 Derek Yu将他的关卡制作算法描述为 00:03:26.050 --> 00:03:29.825 “这套系统不会制作最自然的洞穴 00:03:29.825 --> 00:03:33.325 玩家很快会发现特定重复的地标 00:03:33.325 --> 00:03:36.300 甚至会意识到关卡是按照网格生成的 00:03:36.600 --> 00:03:39.100 但有了足够的模板和随机变化 00:03:39.100 --> 00:03:40.925 游戏中充满了不同之处 00:03:41.300 --> 00:03:46.525 更重要的是,这样创作了有趣、不会让玩家卡关的关卡 00:03:46.525 --> 00:03:51.200 比现实性更重要的是制造一次难忘的体验” 00:03:52.125 --> 00:03:54.375 当然《洞穴探险》的关卡还有更多值得一提的 00:03:54.925 --> 00:04:00.025 那些不在关键路径上的房间可能包含会释放石块的金色雕像 00:04:00.025 --> 00:04:03.300 或者可以用死尸换物品的牺牲祭坛 00:04:03.800 --> 00:04:07.750 房间也能是购买或者偷窃物品的商店 00:04:08.100 --> 00:04:12.350 “难以从商店购买所有想要的物品,而物品又对最终分数有影响” 00:04:12.400 --> 00:04:15.475 你的最终分数由你的发现的物品决定 00:04:15.475 --> 00:04:18.250 “强烈地促使你从商店盗窃”,Yu这样说道 00:04:18.300 --> 00:04:19.900 如果你盗窃了 00:04:19.900 --> 00:04:22.675 店主不但会试着用他的猎枪干掉你 00:04:22.675 --> 00:04:25.900 他的朋友也会在每关的最后出现 00:04:25.900 --> 00:04:28.325 会以不可预料的狂暴方式攻击你 00:04:29.200 --> 00:04:31.675 每一关都有被被困者 00:04:32.200 --> 00:04:34.125 会奖励你额外的生命上限 00:04:34.925 --> 00:04:37.000 在其他游戏中增加血量的物品 00:04:37.000 --> 00:04:39.850 可能是蘑菇或者鸡腿或者披萨 00:04:39.850 --> 00:04:41.350 会立即生效 00:04:41.350 --> 00:04:44.150 《洞穴探险》里你需要带着落难者到出口 00:04:44.175 --> 00:04:48.300 某些棘手的地方,你需要把物品抛到一个未知的迷宫中 00:04:48.675 --> 00:04:50.175 最后,还有鬼魂 00:04:50.175 --> 00:04:55.175 在一关待太久,会出现一个一触即死的幽灵 00:04:56.225 --> 00:04:59.350 这些东西都是作者设定的 00:04:59.350 --> 00:05:01.650 但是被过程式生成世界打乱了 00:05:01.650 --> 00:05:04.400 它们迫使你作出决策,进行衡量 00:05:05.025 --> 00:05:08.925 Derek Yu说“我想迫使[玩家]作出艰难的抉择 00:05:08.925 --> 00:05:13.375 体验到正确抉择的快乐和错误抉择的悔恨” 00:05:13.925 --> 00:05:17.050 所以你会为商店中的物品花钱,降低你的分数吗? 00:05:17.050 --> 00:05:19.400 还是直接抢走、面对后果? 00:05:19.400 --> 00:05:23.300 你会冒险把姑娘扔下去,还是把猎枪留在后面? 00:05:23.300 --> 00:05:26.925 你会冒着被石头压死的风险,拿走金色雕塑吗? 00:05:27.000 --> 00:05:29.300 你能在鬼魂出现前收集所有的珠宝吗? 00:05:29.500 --> 00:05:34.100 如果你已经玩过关卡 00:05:34.100 --> 00:05:38.525 知道正确的路线或是拿走金色雕塑的后果,那么做决定就缺少了很多乐趣 00:05:39.000 --> 00:05:41.425 但由于你永远不知道地图布局 00:05:41.425 --> 00:05:45.300 游戏迫使你审视环境作出计划 00:05:45.300 --> 00:05:47.375 而不是一头扎进去酿成大错 00:05:47.375 --> 00:05:51.225 而当你知道你会被送回游戏开头 00:05:51.225 --> 00:05:53.250 重新面对新关卡,这就更加痛苦了 00:05:53.250 --> 00:05:55.625 在这个游戏中的代价非常大 00:05:55.950 --> 00:06:00.475 此外,不允许你掌握地图意味着你需要掌握游戏机制 00:06:00.950 --> 00:06:05.125 你需要理解你奇怪的跳跃范围和鞭子的狭小攻击距离 00:06:05.125 --> 00:06:07.775 你需要学习每种敌人的不同属性 00:06:07.775 --> 00:06:10.075 这样你才能预测进入它们领土会发生什么 00:06:10.225 --> 00:06:12.300 而且你需要了解物品和秘密 00:06:12.300 --> 00:06:14.600 还有能让你活得更久的技巧 00:06:14.950 --> 00:06:19.500 所以《洞穴探险》证明算法不一定带来的都是没有灵魂的关卡设计 00:06:19.500 --> 00:06:24.150 在预设和随机内容间取得平衡能够带来愉快游玩的关卡 00:06:24.150 --> 00:06:26.775 通过删除对关卡布局的学习能力 00:06:26.775 --> 00:06:30.725 无论是第二次死或者第1000遍玩 00:06:30.725 --> 00:06:33.925 这个游戏鼓励你学习底层的机制 00:06:33.925 --> 00:06:38.500 让你在作出艰难决策前查看周围环境 00:06:40.350 --> 00:06:42.050 感谢观看 00:06:42.050 --> 00:06:44.750 《洞穴探险》是我最喜欢的游戏之一 00:06:44.750 --> 00:06:48.625 因此很高兴能深挖造就它独特的某个层面 00:06:48.625 --> 00:06:50.625 我肯定会回顾其他部分 00:06:50.625 --> 00:06:53.275 比如紧张的游玩和疯狂的秘密 00:06:53.275 --> 00:06:55.950 如果你想要帮助这个节目 00:06:55.950 --> 00:06:59.750 请在YouTube上订阅以便在消息里获得最新的一集 00:06:59.750 --> 00:07:02.850 或者在Patreon上,为每集花上两三个小钱 00:07:02.850 --> 00:07:05.550 就像这些顶级支持者做的那样……