1 00:00:00,000 --> 00:00:01,175 译者:tkchu 2 00:00:01,625 --> 00:00:03,300 这里是《游戏制作工具箱》 3 00:00:03,300 --> 00:00:04,400 我是马克·布朗 4 00:00:04,800 --> 00:00:07,950 如果问什么是我玩得最多的游戏 5 00:00:07,950 --> 00:00:09,175 那就是《洞穴探险》了 6 00:00:09,175 --> 00:00:11,325 ——它是一个极端困难的平台跳跃游戏 7 00:00:11,325 --> 00:00:15,300 继承了马里奥和恶魔城这样卷轴游戏的紧张 8 00:00:15,300 --> 00:00:22,525 但每次死亡都会改变地图,使你无法记忆关卡的布局和敌人的位置 9 00:00:22,975 --> 00:00:28,250 但让《洞穴探险》出彩的是,即使关卡是随机组合的 10 00:00:28,250 --> 00:00:30,375 它们仍然公平有趣 11 00:00:30,375 --> 00:00:32,425 即使是打了100次 12 00:00:32,425 --> 00:00:34,675 我也没有遇见一个糟糕的关卡 13 00:00:35,275 --> 00:00:38,675 它们感觉并不是像算法的产物 14 00:00:38,675 --> 00:00:43,575 而在游戏游戏中,分割再组合的关卡混乱别扭,充满了死胡同 15 00:00:44,100 --> 00:00:45,525 在《洞穴探险》中 16 00:00:45,550 --> 00:00:51,550 程序生成的关卡和手工打磨的关卡一样有趣动人 17 00:00:52,225 --> 00:00:58,600 那是因为制作人Derek Yu很好地平衡了随机和预设内容 18 00:00:59,825 --> 00:01:03,750 他在他的新书《洞穴探险》中解释了这点 19 00:01:03,750 --> 00:01:06,925 我推荐任何对设计感兴趣的人阅读 20 00:01:07,325 --> 00:01:09,575 但在你等待这本书寄到时 21 00:01:09,575 --> 00:01:16,375 我准备使用这本书中的部分内容,解释《洞穴探险》是如何半生成半预设 22 00:01:16,375 --> 00:01:21,975 然后我们会看看无尽的独特关卡为什么对游戏很重要 23 00:01:22,575 --> 00:01:25,350 但首先,我们得回到一切的开头 24 00:01:25,425 --> 00:01:28,700 虽然你认为《洞穴探险》长的是这样 25 00:01:28,700 --> 00:01:33,750 在最开始它实际是一款免费的像素风格游戏,现在叫做《洞穴探险经典版》 26 00:01:37,050 --> 00:01:42,750 《洞穴探险》中的每一关都由代码按固定大小和形状生成: 27 00:01:42,750 --> 00:01:45,850 四乘四的十六个格子 28 00:01:46,350 --> 00:01:50,200 代码做到第一件事是选择第一行的某个随机房间 29 00:01:50,200 --> 00:01:51,675 将其作为入口 30 00:01:52,250 --> 00:01:56,825 之后随机选择这个房间的左、右、下方放置房间 31 00:01:56,825 --> 00:01:59,775 这个过程重复发生在一个又一个房间上 32 00:01:59,775 --> 00:02:02,500 如果生成路径碰到了关卡的边缘,那就向下 33 00:02:02,500 --> 00:02:06,950 直到最底层,当它再尝试向下时,就将其作为出口 34 00:02:07,400 --> 00:02:10,375 每一个在主线上的房间都有向左或者向右的开口 35 00:02:10,375 --> 00:02:13,700 但指向下一层的房间有底部开口 36 00:02:13,700 --> 00:02:16,450 而掉入的房间有顶部开口 37 00:02:16,800 --> 00:02:19,875 这样的关卡结果是保证有条路径 38 00:02:19,875 --> 00:02:23,575 无需炸弹和绳索就能闯关 39 00:02:24,100 --> 00:02:26,275 其它的房间不在关键路径上 40 00:02:26,275 --> 00:02:27,300 也许可以抵达 41 00:02:27,300 --> 00:02:29,650 也许不能,这取决于它们的自身设计 42 00:02:30,050 --> 00:02:33,000 下一步,每个房间都随机给了一个模板 43 00:02:33,525 --> 00:02:37,700 Derek Yu使用不同的布局,做了一系列房间设计 44 00:02:37,700 --> 00:02:39,400 包括你掉出去的房间 45 00:02:39,400 --> 00:02:40,800 掉入的房间 46 00:02:40,800 --> 00:02:42,350 传过的走廊 47 00:02:42,350 --> 00:02:44,350 以及不在关键路径上的房间 48 00:02:44,350 --> 00:02:46,900 但这些模板不是一成不变的 49 00:02:46,900 --> 00:02:48,825 它们也有随机生成的部分 50 00:02:48,850 --> 00:02:52,775 有时候一整个格子都是随机生成的 51 00:02:52,775 --> 00:02:56,325 这就意味着你会看到类似的预设 52 00:02:56,325 --> 00:02:58,725 但又有独特之处 53 00:02:59,550 --> 00:03:03,525 之后,代码检查地图上的每个格子,投骰子决定 54 00:03:03,525 --> 00:03:06,750 是不是需要放置怪物、宝藏或者别的什么 55 00:03:07,250 --> 00:03:08,850 同样的,这并不是完全随机的 56 00:03:08,850 --> 00:03:12,800 珠宝和箱子更多地出现在被墙壁包围的空间 57 00:03:12,800 --> 00:03:15,225 敌人通常不会在狭小的空间里生成 58 00:03:15,775 --> 00:03:17,075 每件事物都有个权重 59 00:03:17,075 --> 00:03:20,675 所以关卡中不会充满火焰青蛙或者装满背包的箱子 60 00:03:22,475 --> 00:03:26,000 Derek Yu将他的关卡制作算法描述为 61 00:03:26,050 --> 00:03:29,825 “这套系统不会制作最自然的洞穴 62 00:03:29,825 --> 00:03:33,325 玩家很快会发现特定重复的地标 63 00:03:33,325 --> 00:03:36,300 甚至会意识到关卡是按照网格生成的 64 00:03:36,600 --> 00:03:39,100 但有了足够的模板和随机变化 65 00:03:39,100 --> 00:03:40,925 游戏中充满了不同之处 66 00:03:41,300 --> 00:03:46,525 更重要的是,这样创作了有趣、不会让玩家卡关的关卡 67 00:03:46,525 --> 00:03:51,200 比现实性更重要的是制造一次难忘的体验” 68 00:03:52,125 --> 00:03:54,375 当然《洞穴探险》的关卡还有更多值得一提的 69 00:03:54,925 --> 00:04:00,025 那些不在关键路径上的房间可能包含会释放石块的金色雕像 70 00:04:00,025 --> 00:04:03,300 或者可以用死尸换物品的牺牲祭坛 71 00:04:03,800 --> 00:04:07,750 房间也能是购买或者偷窃物品的商店 72 00:04:08,100 --> 00:04:12,350 “难以从商店购买所有想要的物品,而物品又对最终分数有影响” 73 00:04:12,400 --> 00:04:15,475 你的最终分数由你的发现的物品决定 74 00:04:15,475 --> 00:04:18,250 “强烈地促使你从商店盗窃”,Yu这样说道 75 00:04:18,300 --> 00:04:19,900 如果你盗窃了 76 00:04:19,900 --> 00:04:22,675 店主不但会试着用他的猎枪干掉你 77 00:04:22,675 --> 00:04:25,900 他的朋友也会在每关的最后出现 78 00:04:25,900 --> 00:04:28,325 会以不可预料的狂暴方式攻击你 79 00:04:29,200 --> 00:04:31,675 每一关都有被被困者 80 00:04:32,200 --> 00:04:34,125 会奖励你额外的生命上限 81 00:04:34,925 --> 00:04:37,000 在其他游戏中增加血量的物品 82 00:04:37,000 --> 00:04:39,850 可能是蘑菇或者鸡腿或者披萨 83 00:04:39,850 --> 00:04:41,350 会立即生效 84 00:04:41,350 --> 00:04:44,150 《洞穴探险》里你需要带着落难者到出口 85 00:04:44,175 --> 00:04:48,300 某些棘手的地方,你需要把物品抛到一个未知的迷宫中 86 00:04:48,675 --> 00:04:50,175 最后,还有鬼魂 87 00:04:50,175 --> 00:04:55,175 在一关待太久,会出现一个一触即死的幽灵 88 00:04:56,225 --> 00:04:59,350 这些东西都是作者设定的 89 00:04:59,350 --> 00:05:01,650 但是被过程式生成世界打乱了 90 00:05:01,650 --> 00:05:04,400 它们迫使你作出决策,进行衡量 91 00:05:05,025 --> 00:05:08,925 Derek Yu说“我想迫使[玩家]作出艰难的抉择 92 00:05:08,925 --> 00:05:13,375 体验到正确抉择的快乐和错误抉择的悔恨” 93 00:05:13,925 --> 00:05:17,050 所以你会为商店中的物品花钱,降低你的分数吗? 94 00:05:17,050 --> 00:05:19,400 还是直接抢走、面对后果? 95 00:05:19,400 --> 00:05:23,300 你会冒险把姑娘扔下去,还是把猎枪留在后面? 96 00:05:23,300 --> 00:05:26,925 你会冒着被石头压死的风险,拿走金色雕塑吗? 97 00:05:27,000 --> 00:05:29,300 你能在鬼魂出现前收集所有的珠宝吗? 98 00:05:29,500 --> 00:05:34,100 如果你已经玩过关卡 99 00:05:34,100 --> 00:05:38,525 知道正确的路线或是拿走金色雕塑的后果,那么做决定就缺少了很多乐趣 100 00:05:39,000 --> 00:05:41,425 但由于你永远不知道地图布局 101 00:05:41,425 --> 00:05:45,300 游戏迫使你审视环境作出计划 102 00:05:45,300 --> 00:05:47,375 而不是一头扎进去酿成大错 103 00:05:47,375 --> 00:05:51,225 而当你知道你会被送回游戏开头 104 00:05:51,225 --> 00:05:53,250 重新面对新关卡,这就更加痛苦了 105 00:05:53,250 --> 00:05:55,625 在这个游戏中的代价非常大 106 00:05:55,950 --> 00:06:00,475 此外,不允许你掌握地图意味着你需要掌握游戏机制 107 00:06:00,950 --> 00:06:05,125 你需要理解你奇怪的跳跃范围和鞭子的狭小攻击距离 108 00:06:05,125 --> 00:06:07,775 你需要学习每种敌人的不同属性 109 00:06:07,775 --> 00:06:10,075 这样你才能预测进入它们领土会发生什么 110 00:06:10,225 --> 00:06:12,300 而且你需要了解物品和秘密 111 00:06:12,300 --> 00:06:14,600 还有能让你活得更久的技巧 112 00:06:14,950 --> 00:06:19,500 所以《洞穴探险》证明算法不一定带来的都是没有灵魂的关卡设计 113 00:06:19,500 --> 00:06:24,150 在预设和随机内容间取得平衡能够带来愉快游玩的关卡 114 00:06:24,150 --> 00:06:26,775 通过删除对关卡布局的学习能力 115 00:06:26,775 --> 00:06:30,725 无论是第二次死或者第1000遍玩 116 00:06:30,725 --> 00:06:33,925 这个游戏鼓励你学习底层的机制 117 00:06:33,925 --> 00:06:38,500 让你在作出艰难决策前查看周围环境 118 00:06:40,350 --> 00:06:42,050 感谢观看 119 00:06:42,050 --> 00:06:44,750 《洞穴探险》是我最喜欢的游戏之一 120 00:06:44,750 --> 00:06:48,625 因此很高兴能深挖造就它独特的某个层面 121 00:06:48,625 --> 00:06:50,625 我肯定会回顾其他部分 122 00:06:50,625 --> 00:06:53,275 比如紧张的游玩和疯狂的秘密 123 00:06:53,275 --> 00:06:55,950 如果你想要帮助这个节目 124 00:06:55,950 --> 00:06:59,750 请在YouTube上订阅以便在消息里获得最新的一集 125 00:06:59,750 --> 00:07:02,850 或者在Patreon上,为每集花上两三个小钱 126 00:07:02,850 --> 00:07:05,550 就像这些顶级支持者做的那样……