1 00:00:00,000 --> 00:00:03,675 在上期的《开发之旅》中,我挑选了要用的游戏引擎 2 00:00:03,675 --> 00:00:04,625 ——也就是 Unity 3 00:00:04,625 --> 00:00:07,000 ——而且我还开始学习它的用法了 4 00:00:07,000 --> 00:00:10,535 那么,时机已到,我也该聊聊自己对于未来游戏的灵感 5 00:00:10,535 --> 00:00:14,200 以及,正式开始做这款游戏了 6 00:00:14,200 --> 00:00:18,875 话说回来,开发游戏这条路,又该从哪里出发呢? 7 00:00:18,875 --> 00:00:25,300 我觉得这是个非常重要的话题,因为接下来我就要讲讲 8 00:00:25,300 --> 00:00:29,625 如果你在开发初期选择了错误的方向 9 00:00:29,625 --> 00:00:33,375 这种错误可能会毁掉你的整个游戏项目 10 00:00:33,375 --> 00:00:34,875 我们开始吧 11 00:00:44,725 --> 00:00:48,450 首先,我要聊聊我对这部游戏的想法 12 00:00:48,450 --> 00:00:49,825 我打算做的游戏是… 13 00:00:49,825 --> 00:00:52,550 仔细听好,可别被惊掉了下巴… 14 00:00:52,550 --> 00:00:55,400 一部 2D 的、横版的、平台跳跃游戏 15 00:00:55,400 --> 00:01:00,100 行吧,我承认,横版的平台跳跃游戏对独立开发者来说超级常见 16 00:01:00,100 --> 00:01:02,200 但对这个决定,我也有我的理由: 17 00:01:02,200 --> 00:01:04,250 我是这个类型的铁粉 18 00:01:04,250 --> 00:01:08,600 平台跳跃游戏是一种相对比较好做的游戏类型 19 00:01:08,600 --> 00:01:10,450 —— 至少比开发 MMO 简单 20 00:01:10,450 --> 00:01:15,375 而在此之前,我也做过好几期平台跳跃游戏中,关卡和角色设计的视频 21 00:01:15,375 --> 00:01:17,550 它们应该也能派上用场 22 00:01:17,550 --> 00:01:21,319 下一点,还是仔细听好,别吃惊: 23 00:01:21,319 --> 00:01:24,050 "一部有独特机制的平台跳跃游戏" 24 00:01:24,050 --> 00:01:28,975 我的想法是,这部平台跳跃游戏的主角将具有磁力 25 00:01:28,975 --> 00:01:34,800 也就是说,玩家可以被某些物体排斥开,也会被一些物体吸引 26 00:01:34,800 --> 00:01:38,550 而玩家则可以随时通过某个按钮改变自己的极性 27 00:01:38,550 --> 00:01:40,700 而我的灵感来源,则是这部游戏: 28 00:01:40,700 --> 00:01:42,800 《塞尔达传说:大地之章》 29 00:01:42,800 --> 00:01:45,875 这部游戏中,玩家会获得一对磁力手套 30 00:01:45,875 --> 00:01:50,600 这双手套可以让林克被某些物体排斥开,或者被吸附到一些物体上 31 00:01:50,600 --> 00:01:56,075 你也可以使用这双手套来举起大铁球,从而解谜或者战斗 32 00:01:56,075 --> 00:02:00,143 这套机制真的很酷,但我总感觉它没有被做到极致 33 00:02:00,143 --> 00:02:03,750 这款游戏的类型、视角 34 00:02:03,750 --> 00:02:06,900 还有 GB 当时的机能都限制了这个机制的发挥 35 00:02:06,900 --> 00:02:14,100 所以我就想…… 也许我可以借鉴这个机制,把它放进我自己的游戏中? 36 00:02:14,100 --> 00:02:16,650 一部快节奏的、2D 的平台跳跃游戏 37 00:02:16,650 --> 00:02:19,650 一部类似于《蔚蓝》或《超级肉肉男孩》那样的游戏 38 00:02:19,650 --> 00:02:22,478 在这部游戏中,你必须完全掌握磁力机制 39 00:02:22,478 --> 00:02:25,575 从而最大化自己操作的速度、流畅度、精度 40 00:02:25,975 --> 00:02:27,900 而这,就是我大致的想法了 41 00:02:27,900 --> 00:02:29,300 那么下一个问题是: 42 00:02:29,300 --> 00:02:30,600 我应该从何处下手,开始制作? 43 00:02:30,600 --> 00:02:33,650 我应该直接跳进引擎里,开始写代码吗? 44 00:02:33,650 --> 00:02:37,800 或者我应该先打开 PS,为游戏画些概念图什么的? 45 00:02:37,800 --> 00:02:41,175 我要不要先把游戏的故事和角色设计好? 46 00:02:41,175 --> 00:02:43,275 我的第一步,到底应该先干什么? 47 00:02:43,275 --> 00:02:44,950 我就实话实说了吧: 48 00:02:44,950 --> 00:02:48,425 其实这并不是我第一次做游戏了 49 00:02:48,425 --> 00:02:51,925 在我还是个孩子的时候,我脑子里的游戏点子就没停过 50 00:02:51,925 --> 00:02:57,325 在我人生的好几个阶段中,我都尝试过使用各种工具把这些点子做出来 51 00:02:57,325 --> 00:03:01,325 但做完了的游戏,却一款也没有 52 00:03:01,325 --> 00:03:06,300 而我放弃的理由基本也没变过: 53 00:03:06,300 --> 00:03:09,550 开局的方式不对 54 00:03:09,550 --> 00:03:10,550 让我细细道来 55 00:03:10,550 --> 00:03:14,750 最近我从父母的房子里翻到了这个文件夹 56 00:03:14,750 --> 00:03:19,525 里面装满了各种笔记、草图、点子 57 00:03:19,525 --> 00:03:23,725 在我还没开始做视频的时候,我想要做一部游戏,而这些东西因此而生 58 00:03:23,725 --> 00:03:28,000 这好像是《星际争霸:幽灵》的周边鼠标垫 59 00:03:28,000 --> 00:03:29,525 这部游戏后来好像是被暴雪腰斩了? 60 00:03:29,525 --> 00:03:32,919 把它挂到 eBay 二手交易上,说不定还值几个钱呢 61 00:03:32,919 --> 00:03:35,900 我当时给这个游戏取名叫《卡特的诅咒》 62 00:03:35,900 --> 00:03:39,150 游戏的主角是一位著名的考古学家,霍华德·卡特 63 00:03:39,150 --> 00:03:41,650 就是发现了 "图坦卡门墓" 的那哥们 64 00:03:41,650 --> 00:03:45,925 在我的游戏中,他意外激活了一个远古法老的诅咒 65 00:03:45,925 --> 00:03:50,860 导致自己不得不和僵尸、木乃伊、古埃及神灵大战 66 00:03:50,860 --> 00:03:55,825 我还记得,那时的自己花了数不清的时间来画这些东西 67 00:03:55,825 --> 00:03:58,500 我们宅宅是这样的~ 68 00:03:58,500 --> 00:04:01,275 那么,玩家和敌人该如何战斗呢? 69 00:04:01,275 --> 00:04:04,400 答案是,玩 "数织游戏" 70 00:04:04,400 --> 00:04:07,850 数织是一种基于网格的、逻辑解谜游戏 71 00:04:07,850 --> 00:04:09,225 和数独有点像 72 00:04:09,225 --> 00:04:11,050 任天堂做过一大堆数织游戏 73 00:04:11,050 --> 00:04:13,925 那是我的灵感来源则是《书虫大冒险》 74 00:04:13,925 --> 00:04:16,900 在这部游戏中,屏幕的下方是一个拼字谜题 75 00:04:16,900 --> 00:04:22,525 解开谜题,则会在屏幕上方的战斗中对敌人造成伤害 76 00:04:22,525 --> 00:04:24,150 而我当时的想法也差不多: 77 00:04:24,150 --> 00:04:26,300 屏幕的下方是一个数织网格 78 00:04:26,300 --> 00:04:29,950 而霍华德·卡特则会在屏幕上方和各种怪物大战 79 00:04:29,950 --> 00:04:32,200 然后,我就立刻开始开发了 80 00:04:32,200 --> 00:04:35,800 我当时使用的工具是 iPad 上一款叫做 Codea 的软件 81 00:04:35,800 --> 00:04:38,825 它可以让你轻松的用 iPad 制作 iOS 游戏 82 00:04:38,825 --> 00:04:43,450 在此之前,我已经用它在 iOS 上做了一款普通的数织游戏了 83 00:04:43,450 --> 00:04:45,575 所以我觉得自己多半能编程出计划中的游戏 84 00:04:45,575 --> 00:04:48,025 不过,我想保证游戏的画面看起来很好 85 00:04:48,025 --> 00:04:52,850 所以我启动了 PS,画了一大堆的美术素材和动画 86 00:04:52,850 --> 00:04:58,225 我的 Dropbox 中至今还存着这些素材和动画呢 87 00:04:58,225 --> 00:05:00,075 我做了一大堆,各种各样的角色 88 00:05:00,075 --> 00:05:02,375 我为霍华德·卡特画了终结技动画 89 00:05:02,375 --> 00:05:04,725 我画了游戏的开场动画 90 00:05:04,725 --> 00:05:08,125 我画了游戏的全套 UI,设计了按钮外观 91 00:05:08,125 --> 00:05:10,375 我当时真是非常投入 92 00:05:10,375 --> 00:05:13,200 但紧接着,我意识到了不对 93 00:05:13,200 --> 00:05:15,725 我意识到了一件很重要的事 94 00:05:15,725 --> 00:05:20,950 一件对整个项目造成毁灭性打击的事: 95 00:05:20,950 --> 00:05:22,525 这游戏一点也不好玩!! 96 00:05:22,525 --> 00:05:25,950 它玩起来很糟、非常的无聊 97 00:05:25,950 --> 00:05:28,875 而我编程的越多、开发的越深 98 00:05:28,875 --> 00:05:31,875 就越是意识到这游戏有着严重的问题: 99 00:05:31,875 --> 00:05:36,950 数织对于这类游戏来说,根本没有足够的深度 100 00:05:36,950 --> 00:05:39,675 玩家没法作出任何战术、策略上的决策 101 00:05:39,675 --> 00:05:44,800 玩家没法根据遇上的敌人改变自己的行为模式 102 00:05:44,800 --> 00:05:47,950 到了最后,在这部游戏的战斗场景中 103 00:05:47,950 --> 00:05:50,675 整个上方屏幕是可以被完全无视掉的 104 00:05:50,675 --> 00:05:54,225 这不会对游戏行造成任何影响,因为从始至终你只是在玩数织罢了 105 00:05:54,225 --> 00:05:56,500 这也意味着,我没法 106 00:05:56,500 --> 00:06:01,150 通过不同的敌人设计来让游戏更难、或者更有趣 107 00:06:01,150 --> 00:06:05,000 这也意味着玩家一直在做重复劳动 108 00:06:05,000 --> 00:06:09,675 我做了一款肤浅、单调、无聊的游戏 109 00:06:09,675 --> 00:06:11,400 也许它还有被挽救的机会 110 00:06:11,400 --> 00:06:15,500 但当时,我的进度已经太深了,这完全击溃了我的意志 111 00:06:15,500 --> 00:06:18,525 最终,我直接砍掉了整个项目 112 00:06:18,825 --> 00:06:21,200 那么,我犯了什么错呢? 113 00:06:21,200 --> 00:06:24,650 在这么多年之后,作为一个 "事后诸葛亮" 114 00:06:24,650 --> 00:06:26,675 经过了快十年的学习 115 00:06:26,675 --> 00:06:28,525 其实我犯的错还挺明显的 116 00:06:28,525 --> 00:06:29,250 是这样的: 117 00:06:29,250 --> 00:06:33,600 开发游戏的过程,由好几种不同类型的创作组成 118 00:06:33,600 --> 00:06:34,875 其中的大类有 119 00:06:34,875 --> 00:06:40,025 音乐、美术、游戏设计、叙事、以及编程 120 00:06:40,025 --> 00:06:43,225 尽管人们很容易平等的看待这几项内容…… 121 00:06:43,225 --> 00:06:44,850 事实却并非如此 122 00:06:44,850 --> 00:06:48,425 在大部分情况下,"游戏设计" 和其他元素并不在一级 123 00:06:48,425 --> 00:06:53,200 事实上,游戏设计更像是为其他几项内容打的地基 124 00:06:53,200 --> 00:06:57,975 如果这部分做错了,则整个房子都立不起来 125 00:06:57,975 --> 00:07:01,100 我是说,代码可以重写,美术可以重画 126 00:07:01,100 --> 00:07:03,500 但如果游戏的玩法从根本上就很烂 127 00:07:03,500 --> 00:07:07,775 有时候,整个项目都会变得无法挽回 128 00:07:07,775 --> 00:07:09,775 而这就是发生在我身上的问题了 129 00:07:09,775 --> 00:07:12,900 我在美术和动画上花了太多的时间 130 00:07:12,900 --> 00:07:15,700 所以当我终于开始打磨玩法时 131 00:07:15,700 --> 00:07:18,325 我才发现,整件事都被我给搞砸了 132 00:07:18,325 --> 00:07:21,750 我等于是建造了一栋空中楼阁 133 00:07:21,750 --> 00:07:26,500 所以当我的马桶砸穿地板时,这一切也就说的通了 134 00:07:26,500 --> 00:07:29,800 尴尬的是,这种事情其实,发生在我身上不止一次了 135 00:07:29,800 --> 00:07:32,675 我过去曾想过,要做一部黑暗电影风格的点击式冒险游戏 136 00:07:32,675 --> 00:07:35,465 这部游戏中的线索将会有一套独特的肉鸽生成系统 137 00:07:35,465 --> 00:07:39,475 —— 为此我花了大量的时间来编写故事、研究当时的历史 138 00:07:39,475 --> 00:07:42,075 但却其实从来没着手设计过那套线索系统 139 00:07:42,075 --> 00:07:47,275 我想要做一版节奏更快、玩法更现代的手机贪吃蛇游戏 140 00:07:47,275 --> 00:07:51,975 但我把全部的精力都用在了修BUG、调试手感这些东西上 141 00:07:51,975 --> 00:07:57,050 结果我连游戏性都还没考虑,就已经厌倦、放弃了这个项目 142 00:07:57,050 --> 00:08:00,625 每次,当我想要制作一款自己的游戏时 143 00:08:00,625 --> 00:08:06,450 我总是把玩法以外的事 —— 譬如故事和画面 —— 看的太重了 144 00:08:06,450 --> 00:08:07,775 为什么呢? 145 00:08:07,775 --> 00:08:13,000 我认为,这种错误主要来源于两种常见的误解 146 00:08:13,000 --> 00:08:18,050 第一种误解是,每个新点子出现在大脑的时候,都会显得很有趣 147 00:08:18,050 --> 00:08:22,000 所以我就会假设,"这个游戏被做出来后一定很好玩" 148 00:08:22,000 --> 00:08:24,000 但很显然,这种假设是错误的 149 00:08:24,000 --> 00:08:31,925 而第二种误解则是,"直到游戏做出来,我都没法确认它是不是真的好玩" 150 00:08:31,925 --> 00:08:37,225 所以我只能先动手,把游戏的完成度推到能够看出它的质量为止…… 151 00:08:37,225 --> 00:08:40,475 真的是这样吗?不,大错特错 152 00:08:40,475 --> 00:08:43,037 回首过去,真的让人扼腕叹息 153 00:08:43,037 --> 00:08:46,450 因为答案在今天如此的明显 154 00:08:46,450 --> 00:08:48,300 但直到几年前我都对此一无所知 155 00:08:48,300 --> 00:08:50,450 —— 因为那时我还没有开始做《游戏制作工具箱》 156 00:08:50,450 --> 00:08:52,475 通过这档节目,我才开始真正研究游戏开发 157 00:08:52,475 --> 00:08:59,800 在采访了无数游戏设计师后,今天的我才能知道游戏开发的成功之道 158 00:08:59,800 --> 00:09:03,500 要知道,游戏设计师的脑子里无时无刻都在蹦新点子 159 00:09:03,500 --> 00:09:07,125 而点子这种东西,在脑子里都感觉棒极了 160 00:09:07,125 --> 00:09:12,350 但那些最好的设计师们都知道,大脑是一个多爱撒谎的骗人精 161 00:09:12,350 --> 00:09:18,875 检验一个点子质量的唯一方法就是把它做出来、然后上手测试 162 00:09:18,875 --> 00:09:21,525 但与其去制作整个游戏 163 00:09:21,525 --> 00:09:25,575 设计师们通常只会做一个……"原型" 164 00:09:25,575 --> 00:09:30,275 所谓 "原型",是对点子的一种简单、粗糙的实现 165 00:09:30,275 --> 00:09:34,125 唯一的目的就是帮助设计师确定它是否真的好玩 166 00:09:34,125 --> 00:09:36,975 大部分原型看起来都其貌不扬 167 00:09:36,975 --> 00:09:42,750 它们通常用着半成品的美术、基础的模型、或者从其他游戏偷来的素材 168 00:09:42,750 --> 00:09:47,075 它们通常 BUG 满满、问题百出、内容空洞 169 00:09:47,075 --> 00:09:50,550 只有那些用来测试玩法的功能和元素 170 00:09:50,550 --> 00:09:53,925 它们是一个游戏点子最基础的具现化 171 00:09:53,925 --> 00:10:00,475 用尽可能快的速度做出来,只为了检验某个点子的可行性 172 00:10:00,475 --> 00:10:02,875 它足够好玩或者有趣吗? 173 00:10:02,875 --> 00:10:04,850 它值得进一步的打磨吗? 174 00:10:04,850 --> 00:10:09,900 它对于游戏的其他部分来说,配当一个稳固的地基吗? 175 00:10:09,900 --> 00:10:11,775 而这正是接下来我打算做的 176 00:10:11,775 --> 00:10:13,575 这一次,我不会再犯过往的错误 177 00:10:13,575 --> 00:10:16,825 我会集中注意力,先做个原型出来 178 00:10:16,825 --> 00:10:23,225 我会极度的自律,除了测试这个游戏点子外,不做任何额外工作 179 00:10:23,225 --> 00:10:26,925 因此,在美术方面,我打算直接用谷歌图片找现成的 180 00:10:26,925 --> 00:10:29,450 它不会有任何音乐,也不会有任何故事 181 00:10:29,450 --> 00:10:33,850 我甚至不会给这部游戏、或者我的角色起名字 182 00:10:33,850 --> 00:10:38,200 我绝不会连游戏的还没开始做,就先给它设计图标—— 183 00:10:38,200 --> 00:10:39,575 往事不堪回首啊 184 00:10:39,575 --> 00:10:44,700 代码一定会有很多 BUG 和错误,毕竟我是个 Unity 新手 185 00:10:44,700 --> 00:10:48,550 但我想我的能力对于测试一个点子来说绰绰有余 186 00:10:48,550 --> 00:10:52,875 我只要为游戏搭一个积木盒子,然后测试它是否好玩就够了 187 00:10:52,875 --> 00:10:56,300 那么,让我们启动 Unity,正式开始吧 188 00:10:56,300 --> 00:11:01,150 我的第一个目标,是做出一个可以左右移动和跳跃的角色 189 00:11:01,150 --> 00:11:05,500 所以当玩家按下相应的按键时,我会给刚体施加一股力量 190 00:11:05,500 --> 00:11:10,575 而这已经开始出问题了——不能算开门红,但总之最后解决了 191 00:11:10,575 --> 00:11:12,725 然后,我在场景中放了一个磁铁 192 00:11:12,725 --> 00:11:17,200 接下来我得让玩家被磁铁吸引着靠近 193 00:11:17,200 --> 00:11:21,525 要做到这点,我需要有成熟的编程能力 194 00:11:21,525 --> 00:11:24,000 于是我全力运转大脑,将编程功力发挥到极致 195 00:11:24,000 --> 00:11:28,550 紧接着,舞动我的手指,在键盘上打出…… 196 00:11:28,550 --> 00:11:31,850 "我该怎么让一个刚体向着另一个对象移动?" 197 00:11:31,850 --> 00:11:33,350 行吧我承认,我直接去谷歌了 198 00:11:33,350 --> 00:11:35,725 我找到了相应的代码,然后偷进了自己的项目中 199 00:11:35,725 --> 00:11:38,500 不过,我还是确保自己完全明白了背后的原理 200 00:11:38,500 --> 00:11:42,150 ——简单来说,就是找到磁铁相对于玩家的方向 201 00:11:42,150 --> 00:11:45,175 然后对着相应的方向,在刚体上施加力 202 00:11:45,175 --> 00:11:50,000 我还调整了代码,让磁铁吸附玩家的速度,随着距离靠近而变快 203 00:11:50,000 --> 00:11:53,925 再然后,我又加了一个按键关闭磁力的功能 204 00:11:53,925 --> 00:11:57,525 与此同时,这个功能还可以在磁力消失时保持玩家的动能 205 00:11:57,525 --> 00:11:59,150 从而让他们飞向天空 206 00:11:59,150 --> 00:12:01,425 基于此,如果我在这里放下一个平台 207 00:12:01,425 --> 00:12:06,350 我可以让玩家通过在适当的时候解除磁力,被吸附到这里 208 00:12:06,350 --> 00:12:08,675 这一套下来,虽然感觉不错…… 209 00:12:08,675 --> 00:12:11,250 可游戏变的有一点太难控制了 210 00:12:11,250 --> 00:12:15,350 我的代码并不完美,游戏很容易失控 211 00:12:15,350 --> 00:12:20,725 但随着我进一步的研究,我在 Unity 中发现了个相当有用的东西 212 00:12:20,725 --> 00:12:24,050 它是一个叫做 "点效应器" 的引擎内置组件 213 00:12:24,050 --> 00:12:26,625 它的效果嘛……基本上就是一块磁铁 214 00:12:26,625 --> 00:12:30,700 难以想象之前我是怎么错过这东西的,它的图标直接就是块磁铁 215 00:12:30,700 --> 00:12:31,850 它是这样运作的: 216 00:12:31,850 --> 00:12:35,500 你为一个游戏对象赋予碰撞体和点效应器 217 00:12:35,500 --> 00:12:37,350 然后设置它的吸引力强度 218 00:12:37,350 --> 00:12:40,125 现在,当一个刚体与碰撞体重叠时 219 00:12:40,125 --> 00:12:42,825 它会直接被吸引到磁场的正中心 220 00:12:42,825 --> 00:12:48,525 你还可以搭配上 Unity 的图层蒙版系统,来让它仅吸引特定的对象 221 00:12:48,525 --> 00:12:51,525 这大大降低了我游戏的制作难度 222 00:12:51,525 --> 00:12:54,150 因此,我决定重新做一个新版的原型 223 00:12:54,150 --> 00:12:56,450 而这一次,游戏感觉正常多了 224 00:12:56,450 --> 00:12:58,425 我可以很轻松的做出调整 225 00:12:58,425 --> 00:13:03,525 我也可以做些更酷的尝试,例如将吸引点固定在磁铁的两极上,它就会这样 226 00:13:03,525 --> 00:13:04,950 ——看起来相当不错吧 227 00:13:04,950 --> 00:13:07,225 但在我制作第二个原型时 228 00:13:07,225 --> 00:13:11,850 不知怎么的,我突然决定不再继续使用马里奥 229 00:13:11,850 --> 00:13:15,725 转而用一张磁铁的图片作为玩家操控的角色 230 00:13:15,725 --> 00:13:19,225 紧接着,这启发了我: 231 00:13:19,225 --> 00:13:23,075 比起让磁铁来成为游戏角色 232 00:13:23,075 --> 00:13:29,650 我能不能在游戏中放置磁铁,让它们可以被玩家靠近和捡起来呢? 233 00:13:29,650 --> 00:13:33,800 为了实现这一点,我使用了 Unity 的关节系统 234 00:13:33,800 --> 00:13:35,075 这也是一个引擎内置的组件 235 00:13:35,075 --> 00:13:40,800 它提供了各种关节、例如铰链和弹簧,可以让我将两个刚体连在一起 236 00:13:40,800 --> 00:13:44,125 而现在,游戏的角色需要手持磁铁 237 00:13:44,125 --> 00:13:48,350 当磁铁被一块金属所吸引时,它会带着玩家一起运动 238 00:13:48,350 --> 00:13:51,475 而当玩家松开磁铁时,他们则可以自由的行动 239 00:13:51,475 --> 00:13:53,250 而我之前设想的玩法 240 00:13:53,250 --> 00:13:57,775 也就是理由磁铁的动能来把玩家运送到更高的平台 241 00:13:57,775 --> 00:14:01,825 仍然可以通过在半空中松开磁铁来实现 242 00:14:01,825 --> 00:14:06,375 除此之外,它也给设计添加了更多可能性,例如一个场景中可以有两块磁铁 243 00:14:06,375 --> 00:14:07,700 你还可以,比如说 244 00:14:07,700 --> 00:14:10,925 将一个磁铁吸附在这里,然后让敌人向着你走来 245 00:14:10,925 --> 00:14:13,500 紧接着,你关掉磁力——啪唧! 246 00:14:13,500 --> 00:14:16,150 唔,听起来还蛮酷的 247 00:14:16,150 --> 00:14:18,475 或许是个可行的主意 248 00:14:18,475 --> 00:14:23,125 突然间,游戏好像变得比我最初的点子更有趣的多了 249 00:14:23,125 --> 00:14:26,175 而在这之前,我得承认自己还有点担心这一点 250 00:14:26,175 --> 00:14:29,675 当你的角色被磁铁控制,持续的被吸引和排斥 251 00:14:29,675 --> 00:14:32,800 玩家很容易就会感觉一切有点脱离自己的控制 252 00:14:32,800 --> 00:14:34,875 但通过将磁铁作为一个单独的物体 253 00:14:34,875 --> 00:14:38,475 玩家将会在一半的时间中获得完全的掌控权 254 00:14:38,475 --> 00:14:41,225 只有在捡起磁铁后才会体验短暂的失控 255 00:14:41,225 --> 00:14:44,400 在此之前,我还有一点担心自己会灵感枯竭 256 00:14:44,400 --> 00:14:46,925 毕竟让磁铁当玩家,可没法给游戏创造多少发挥空间 257 00:14:46,925 --> 00:14:52,325 而在我将磁铁和玩家分开后,灵感一瞬间就全部涌上来了 258 00:14:52,325 --> 00:14:57,700 再者,我很喜欢那种、玩家可以在回头路上体验全新玩法的游戏 259 00:14:57,700 --> 00:15:02,075 比如在《超级马里奥:奥德赛》中,你不戴帽子时的操作体验截然不同 260 00:15:02,075 --> 00:15:07,325 在我的游戏中,当角色不拿磁铁时,它会很灵活,跳得很高 261 00:15:07,325 --> 00:15:10,775 而手持磁铁则会让它迟钝而缓慢 262 00:15:10,775 --> 00:15:14,950 ——不过当然了,手持磁铁时玩家也会获得独特的惊人可能性 263 00:15:14,950 --> 00:15:20,375 到了这一步,当一个更好的点子随着开发涌现出来时,我也习以为常了 264 00:15:20,375 --> 00:15:22,600 就像我在往期的 GMTK 265 00:15:22,600 --> 00:15:24,325 "那些自己设计自己的游戏" 中提到的一样 266 00:15:24,325 --> 00:15:28,825 在原型阶段,出现新的点子时一件很正常的事 267 00:15:28,825 --> 00:15:31,025 比如说,《节奏地牢》 268 00:15:31,025 --> 00:15:33,200 在这部游戏的初版设计中 269 00:15:33,200 --> 00:15:38,300 它只是一部每回合时间非常短的,回合制肉鸽游戏罢了 270 00:15:38,300 --> 00:15:42,500 但随着设计师开始制作,他们发现这部游戏可以变得更加有趣 271 00:15:42,500 --> 00:15:46,825 于是,将每回合的倒计时,变成了让玩家卡着音乐的节拍玩 272 00:15:46,825 --> 00:15:51,675 因此,一个原型不仅仅能够帮助你验证点子的可行性—— 273 00:15:51,675 --> 00:15:55,800 它还可以用来帮助你想出更多、更好的点子 274 00:15:55,800 --> 00:16:00,325 在开发过程中,我又发现了一个 Unity 的有趣功能: 275 00:16:00,325 --> 00:16:02,125 它的名字叫做 "Sprite Shape" 276 00:16:02,125 --> 00:16:06,150 它一般被用来制作那些很酷的原创关卡设计 277 00:16:06,150 --> 00:16:08,150 比如《奥日》中就大量使用了它 278 00:16:08,150 --> 00:16:11,100 但对我来说,只要一个纯色的色块就够了 279 00:16:11,100 --> 00:16:14,375 这能够让我以非常快的速度设计关卡 280 00:16:14,375 --> 00:16:18,700 我只需要简单的拖动把手,将原型区域拼接在一起就够了 281 00:16:18,700 --> 00:16:20,225 和 PS 的工作方式差不多 282 00:16:20,225 --> 00:16:21,800 于是,我再一次制作了原型 283 00:16:21,800 --> 00:16:25,850 这一次,我希望游戏角色的操作手感可以好一点 284 00:16:25,850 --> 00:16:28,275 可以更贴近一部成品游戏的手感 285 00:16:28,275 --> 00:16:32,550 不过这一次,我不想再浪费时间去为移动和跳跃编程了 286 00:16:32,550 --> 00:16:36,200 于是我直接从网上下载了一套角色控制的脚本 287 00:16:36,200 --> 00:16:42,500 它的质量很高,让我可以把精修操控手感的计划留到未来处理 288 00:16:42,500 --> 00:16:45,500 而现在,我不想在这上面花太多时间 289 00:16:45,500 --> 00:16:48,700 接下来,我在开始在原型中进一步探索机制 290 00:16:48,700 --> 00:16:53,701 例如允许玩家将磁铁扔出去,或者召回手中 291 00:16:53,701 --> 00:16:55,425 就像索尔和雷神之锤一样 292 00:16:55,425 --> 00:16:59,325 而因为召回过程中磁铁与玩家的刚体会相撞 293 00:16:59,325 --> 00:17:02,275 玩家在磁铁到手的一瞬间也会有相应的反作用力 294 00:17:02,275 --> 00:17:04,600 这种流畅的游戏感,体验相当棒 295 00:17:04,600 --> 00:17:09,050 再然后,我又为磁铁想出了好几种不同的使用场景 296 00:17:09,050 --> 00:17:12,100 例如将它扔到墙上,人工创造一个平台 297 00:17:12,100 --> 00:17:13,775 或者将它与活塞相连 298 00:17:13,775 --> 00:17:16,750 在你关闭磁性的一瞬间,磁铁会被反作用力推飞 299 00:17:16,750 --> 00:17:20,400 又或者通过切换它的极性,让磁铁可以在两条传送带之间来回切换 300 00:17:20,400 --> 00:17:24,450 或者利用重力把平台拉下来,让角色跳上去 301 00:17:24,450 --> 00:17:27,850 然后切换磁铁的极性,让平台把你发射到空中? 302 00:17:27,850 --> 00:17:30,575 哇哦,好像越来越有趣了,不是吗? 303 00:17:30,575 --> 00:17:34,125 它终于开始有个游戏的样了 304 00:17:34,125 --> 00:17:35,225 它终于开始变得好玩了! 305 00:17:35,225 --> 00:17:40,450 也就是这时,我真正确信了自己的游戏点子,确实有不错的潜力 306 00:17:40,450 --> 00:17:41,975 它是原创的: 307 00:17:41,975 --> 00:17:46,050 我见过一系列利用磁铁的游戏,但还没见过类似的玩法 308 00:17:46,050 --> 00:17:50,425 它既可以被用于平台跳跃,也可以被用于解谜玩法 309 00:17:50,425 --> 00:17:56,275 这个点子似乎上下限都很高,允许我设计从易到难的大量关卡 310 00:17:56,275 --> 00:17:58,950 而且,最重要的是,这个点子玩起来很有趣 311 00:17:58,950 --> 00:18:04,100 仅仅是在 Unity 的预览窗口中跳来跳去,就已经让我觉得很好玩了 312 00:18:04,100 --> 00:18:06,625 而这,无疑是个好兆头 313 00:18:06,625 --> 00:18:09,975 而这,也是所谓 "原型" 蕴含的力量 314 00:18:09,975 --> 00:18:14,950 你可以用它们来测试游戏点子的可行性 315 00:18:14,950 --> 00:18:20,575 幸运的话,你还能在原型开发阶段取得新的灵感 316 00:18:20,575 --> 00:18:24,950 不过,要用好原型,自律仍然是不可缺少的 317 00:18:24,950 --> 00:18:26,525 你一定要管好自己、告诉自己 318 00:18:26,525 --> 00:18:31,025 "我绝不会关注任何细枝末节,我只关心玩法" 319 00:18:31,025 --> 00:18:32,075 而要做到这一点,其实很难 320 00:18:32,075 --> 00:18:35,275 在本期视频里,我还没有告诉过你 321 00:18:35,275 --> 00:18:40,775 我浪费了整整一周时间,挑选粒子效果、着色器、UI之类的东西 322 00:18:40,775 --> 00:18:43,050 ——当时的我克制不住自己的老毛病 323 00:18:43,050 --> 00:18:48,275 被那些,现阶段根本没有意义的东西牵着鼻子走 324 00:18:48,275 --> 00:18:51,800 不过幸运的是,我悬崖勒马,废弃了那个原型 325 00:18:51,800 --> 00:18:54,400 然后将注意力放回了真正重要的事物上 326 00:18:54,400 --> 00:18:56,600 而最终,成果是喜人的 327 00:18:56,600 --> 00:18:59,650 我终于做出了一些自己觉得很好玩的东西 328 00:18:59,650 --> 00:19:04,275 我做出了具有潜力、能够激发我的热情的东西 329 00:19:04,275 --> 00:19:07,425 在我多年前尝试制作的那些游戏项目中 330 00:19:07,425 --> 00:19:11,625 一切都围绕着一种 "这部游戏会很好玩" 的盲目自信开发 331 00:19:11,625 --> 00:19:15,500 而这显然不能算是一种正确的游戏制作方式 332 00:19:15,500 --> 00:19:21,025 而这一次,我打造的房屋有了一个坚实的地基,能够让我在其他的方面 333 00:19:21,025 --> 00:19:23,625 ——也就是故事、音乐、美术 334 00:19:23,625 --> 00:19:29,075 ——当我打造这些元素时,我的脚下生根,坚信自己的地基时牢固的 335 00:19:29,075 --> 00:19:34,325 因此,我认为这就是制作游戏时,正确的起跑点 336 00:19:34,325 --> 00:19:36,150 ——先做个原型 337 00:19:36,150 --> 00:19:37,865 现在,我心中唯一的疑虑则是: 338 00:19:38,275 --> 00:19:40,525 妈耶,那我接下来该干啥啊…… 339 00:19:40,525 --> 00:19:42,725 我猜,答案会在下期节目中揭晓吧 340 00:19:42,725 --> 00:19:44,800 在下一期的《开发之旅》中 341 00:19:44,800 --> 00:19:49,825 非常感谢你的观看,期待你能在下期节目、乃至这场旅途中陪伴我 342 00:19:49,825 --> 00:19:50,875 再会 343 00:19:51,250 --> 00:19:53,250 (先别急着关,视频末尾还有彩蛋) 344 00:20:14,300 --> 00:20:16,275 而我的灵感来源,则是这部游戏 345 00:20:16,275 --> 00:20:18,425 《塞尔达传说:大地之章》 346 00:20:19,225 --> 00:20:20,600 靠,拿反了 347 00:20:20,600 --> 00:20:22,500 则是这部游戏……啊这 348 00:20:22,500 --> 00:20:24,015 噗噗噗噗噗噗~ 349 00:20:25,295 --> 00:20:26,511 则是这部游戏 350 00:20:26,925 --> 00:20:28,504 是这部游戏 351 00:20:28,504 --> 00:20:29,400 这部游戏 352 00:20:29,400 --> 00:20:30,075 部游戏 353 00:20:30,075 --> 00:20:32,825 这部游戏:《塞尔达传说:大地之章》 354 00:20:32,825 --> 00:20:34,050 来自于 355 00:20:34,375 --> 00:20:36,200 而我的灵感来源,则是这部游戏: 356 00:20:36,200 --> 00:20:38,350 《塞尔达传说:大地之章》 357 00:20:39,675 --> 00:20:41,125 就这样吧……