WEBVTT 00:00:00.000 --> 00:00:03.675 在上期的《开发之旅》中,我挑选了要用的游戏引擎 00:00:03.675 --> 00:00:04.625 ——也就是 Unity 00:00:04.625 --> 00:00:07.000 ——而且我还开始学习它的用法了 00:00:07.000 --> 00:00:10.535 那么,时机已到,我也该聊聊自己对于未来游戏的灵感 00:00:10.535 --> 00:00:14.200 以及,正式开始做这款游戏了 00:00:14.200 --> 00:00:18.875 话说回来,开发游戏这条路,又该从哪里出发呢? 00:00:18.875 --> 00:00:25.300 我觉得这是个非常重要的话题,因为接下来我就要讲讲 00:00:25.300 --> 00:00:29.625 如果你在开发初期选择了错误的方向 00:00:29.625 --> 00:00:33.375 这种错误可能会毁掉你的整个游戏项目 00:00:33.375 --> 00:00:34.875 我们开始吧 00:00:44.725 --> 00:00:48.450 首先,我要聊聊我对这部游戏的想法 00:00:48.450 --> 00:00:49.825 我打算做的游戏是… 00:00:49.825 --> 00:00:52.550 仔细听好,可别被惊掉了下巴… 00:00:52.550 --> 00:00:55.400 一部 2D 的、横版的、平台跳跃游戏 00:00:55.400 --> 00:01:00.100 行吧,我承认,横版的平台跳跃游戏对独立开发者来说超级常见 00:01:00.100 --> 00:01:02.200 但对这个决定,我也有我的理由: 00:01:02.200 --> 00:01:04.250 我是这个类型的铁粉 00:01:04.250 --> 00:01:08.600 平台跳跃游戏是一种相对比较好做的游戏类型 00:01:08.600 --> 00:01:10.450 —— 至少比开发 MMO 简单 00:01:10.450 --> 00:01:15.375 而在此之前,我也做过好几期平台跳跃游戏中,关卡和角色设计的视频 00:01:15.375 --> 00:01:17.550 它们应该也能派上用场 00:01:17.550 --> 00:01:21.319 下一点,还是仔细听好,别吃惊: 00:01:21.319 --> 00:01:24.050 "一部有独特机制的平台跳跃游戏" 00:01:24.050 --> 00:01:28.975 我的想法是,这部平台跳跃游戏的主角将具有磁力 00:01:28.975 --> 00:01:34.800 也就是说,玩家可以被某些物体排斥开,也会被一些物体吸引 00:01:34.800 --> 00:01:38.550 而玩家则可以随时通过某个按钮改变自己的极性 00:01:38.550 --> 00:01:40.700 而我的灵感来源,则是这部游戏: 00:01:40.700 --> 00:01:42.800 《塞尔达传说:大地之章》 00:01:42.800 --> 00:01:45.875 这部游戏中,玩家会获得一对磁力手套 00:01:45.875 --> 00:01:50.600 这双手套可以让林克被某些物体排斥开,或者被吸附到一些物体上 00:01:50.600 --> 00:01:56.075 你也可以使用这双手套来举起大铁球,从而解谜或者战斗 00:01:56.075 --> 00:02:00.143 这套机制真的很酷,但我总感觉它没有被做到极致 00:02:00.143 --> 00:02:03.750 这款游戏的类型、视角 00:02:03.750 --> 00:02:06.900 还有 GB 当时的机能都限制了这个机制的发挥 00:02:06.900 --> 00:02:14.100 所以我就想…… 也许我可以借鉴这个机制,把它放进我自己的游戏中? 00:02:14.100 --> 00:02:16.650 一部快节奏的、2D 的平台跳跃游戏 00:02:16.650 --> 00:02:19.650 一部类似于《蔚蓝》或《超级肉肉男孩》那样的游戏 00:02:19.650 --> 00:02:22.478 在这部游戏中,你必须完全掌握磁力机制 00:02:22.478 --> 00:02:25.575 从而最大化自己操作的速度、流畅度、精度 00:02:25.975 --> 00:02:27.900 而这,就是我大致的想法了 00:02:27.900 --> 00:02:29.300 那么下一个问题是: 00:02:29.300 --> 00:02:30.600 我应该从何处下手,开始制作? 00:02:30.600 --> 00:02:33.650 我应该直接跳进引擎里,开始写代码吗? 00:02:33.650 --> 00:02:37.800 或者我应该先打开 PS,为游戏画些概念图什么的? 00:02:37.800 --> 00:02:41.175 我要不要先把游戏的故事和角色设计好? 00:02:41.175 --> 00:02:43.275 我的第一步,到底应该先干什么? 00:02:43.275 --> 00:02:44.950 我就实话实说了吧: 00:02:44.950 --> 00:02:48.425 其实这并不是我第一次做游戏了 00:02:48.425 --> 00:02:51.925 在我还是个孩子的时候,我脑子里的游戏点子就没停过 00:02:51.925 --> 00:02:57.325 在我人生的好几个阶段中,我都尝试过使用各种工具把这些点子做出来 00:02:57.325 --> 00:03:01.325 但做完了的游戏,却一款也没有 00:03:01.325 --> 00:03:06.300 而我放弃的理由基本也没变过: 00:03:06.300 --> 00:03:09.550 开局的方式不对 00:03:09.550 --> 00:03:10.550 让我细细道来 00:03:10.550 --> 00:03:14.750 最近我从父母的房子里翻到了这个文件夹 00:03:14.750 --> 00:03:19.525 里面装满了各种笔记、草图、点子 00:03:19.525 --> 00:03:23.725 在我还没开始做视频的时候,我想要做一部游戏,而这些东西因此而生 00:03:23.725 --> 00:03:28.000 这好像是《星际争霸:幽灵》的周边鼠标垫 00:03:28.000 --> 00:03:29.525 这部游戏后来好像是被暴雪腰斩了? 00:03:29.525 --> 00:03:32.919 把它挂到 eBay 二手交易上,说不定还值几个钱呢 00:03:32.919 --> 00:03:35.900 我当时给这个游戏取名叫《卡特的诅咒》 00:03:35.900 --> 00:03:39.150 游戏的主角是一位著名的考古学家,霍华德·卡特 00:03:39.150 --> 00:03:41.650 就是发现了 "图坦卡门墓" 的那哥们 00:03:41.650 --> 00:03:45.925 在我的游戏中,他意外激活了一个远古法老的诅咒 00:03:45.925 --> 00:03:50.860 导致自己不得不和僵尸、木乃伊、古埃及神灵大战 00:03:50.860 --> 00:03:55.825 我还记得,那时的自己花了数不清的时间来画这些东西 00:03:55.825 --> 00:03:58.500 我们宅宅是这样的~ 00:03:58.500 --> 00:04:01.275 那么,玩家和敌人该如何战斗呢? 00:04:01.275 --> 00:04:04.400 答案是,玩 "数织游戏" 00:04:04.400 --> 00:04:07.850 数织是一种基于网格的、逻辑解谜游戏 00:04:07.850 --> 00:04:09.225 和数独有点像 00:04:09.225 --> 00:04:11.050 任天堂做过一大堆数织游戏 00:04:11.050 --> 00:04:13.925 那是我的灵感来源则是《书虫大冒险》 00:04:13.925 --> 00:04:16.900 在这部游戏中,屏幕的下方是一个拼字谜题 00:04:16.900 --> 00:04:22.525 解开谜题,则会在屏幕上方的战斗中对敌人造成伤害 00:04:22.525 --> 00:04:24.150 而我当时的想法也差不多: 00:04:24.150 --> 00:04:26.300 屏幕的下方是一个数织网格 00:04:26.300 --> 00:04:29.950 而霍华德·卡特则会在屏幕上方和各种怪物大战 00:04:29.950 --> 00:04:32.200 然后,我就立刻开始开发了 00:04:32.200 --> 00:04:35.800 我当时使用的工具是 iPad 上一款叫做 Codea 的软件 00:04:35.800 --> 00:04:38.825 它可以让你轻松的用 iPad 制作 iOS 游戏 00:04:38.825 --> 00:04:43.450 在此之前,我已经用它在 iOS 上做了一款普通的数织游戏了 00:04:43.450 --> 00:04:45.575 所以我觉得自己多半能编程出计划中的游戏 00:04:45.575 --> 00:04:48.025 不过,我想保证游戏的画面看起来很好 00:04:48.025 --> 00:04:52.850 所以我启动了 PS,画了一大堆的美术素材和动画 00:04:52.850 --> 00:04:58.225 我的 Dropbox 中至今还存着这些素材和动画呢 00:04:58.225 --> 00:05:00.075 我做了一大堆,各种各样的角色 00:05:00.075 --> 00:05:02.375 我为霍华德·卡特画了终结技动画 00:05:02.375 --> 00:05:04.725 我画了游戏的开场动画 00:05:04.725 --> 00:05:08.125 我画了游戏的全套 UI,设计了按钮外观 00:05:08.125 --> 00:05:10.375 我当时真是非常投入 00:05:10.375 --> 00:05:13.200 但紧接着,我意识到了不对 00:05:13.200 --> 00:05:15.725 我意识到了一件很重要的事 00:05:15.725 --> 00:05:20.950 一件对整个项目造成毁灭性打击的事: 00:05:20.950 --> 00:05:22.525 这游戏一点也不好玩!! 00:05:22.525 --> 00:05:25.950 它玩起来很糟、非常的无聊 00:05:25.950 --> 00:05:28.875 而我编程的越多、开发的越深 00:05:28.875 --> 00:05:31.875 就越是意识到这游戏有着严重的问题: 00:05:31.875 --> 00:05:36.950 数织对于这类游戏来说,根本没有足够的深度 00:05:36.950 --> 00:05:39.675 玩家没法作出任何战术、策略上的决策 00:05:39.675 --> 00:05:44.800 玩家没法根据遇上的敌人改变自己的行为模式 00:05:44.800 --> 00:05:47.950 到了最后,在这部游戏的战斗场景中 00:05:47.950 --> 00:05:50.675 整个上方屏幕是可以被完全无视掉的 00:05:50.675 --> 00:05:54.225 这不会对游戏行造成任何影响,因为从始至终你只是在玩数织罢了 00:05:54.225 --> 00:05:56.500 这也意味着,我没法 00:05:56.500 --> 00:06:01.150 通过不同的敌人设计来让游戏更难、或者更有趣 00:06:01.150 --> 00:06:05.000 这也意味着玩家一直在做重复劳动 00:06:05.000 --> 00:06:09.675 我做了一款肤浅、单调、无聊的游戏 00:06:09.675 --> 00:06:11.400 也许它还有被挽救的机会 00:06:11.400 --> 00:06:15.500 但当时,我的进度已经太深了,这完全击溃了我的意志 00:06:15.500 --> 00:06:18.525 最终,我直接砍掉了整个项目 00:06:18.825 --> 00:06:21.200 那么,我犯了什么错呢? 00:06:21.200 --> 00:06:24.650 在这么多年之后,作为一个 "事后诸葛亮" 00:06:24.650 --> 00:06:26.675 经过了快十年的学习 00:06:26.675 --> 00:06:28.525 其实我犯的错还挺明显的 00:06:28.525 --> 00:06:29.250 是这样的: 00:06:29.250 --> 00:06:33.600 开发游戏的过程,由好几种不同类型的创作组成 00:06:33.600 --> 00:06:34.875 其中的大类有 00:06:34.875 --> 00:06:40.025 音乐、美术、游戏设计、叙事、以及编程 00:06:40.025 --> 00:06:43.225 尽管人们很容易平等的看待这几项内容…… 00:06:43.225 --> 00:06:44.850 事实却并非如此 00:06:44.850 --> 00:06:48.425 在大部分情况下,"游戏设计" 和其他元素并不在一级 00:06:48.425 --> 00:06:53.200 事实上,游戏设计更像是为其他几项内容打的地基 00:06:53.200 --> 00:06:57.975 如果这部分做错了,则整个房子都立不起来 00:06:57.975 --> 00:07:01.100 我是说,代码可以重写,美术可以重画 00:07:01.100 --> 00:07:03.500 但如果游戏的玩法从根本上就很烂 00:07:03.500 --> 00:07:07.775 有时候,整个项目都会变得无法挽回 00:07:07.775 --> 00:07:09.775 而这就是发生在我身上的问题了 00:07:09.775 --> 00:07:12.900 我在美术和动画上花了太多的时间 00:07:12.900 --> 00:07:15.700 所以当我终于开始打磨玩法时 00:07:15.700 --> 00:07:18.325 我才发现,整件事都被我给搞砸了 00:07:18.325 --> 00:07:21.750 我等于是建造了一栋空中楼阁 00:07:21.750 --> 00:07:26.500 所以当我的马桶砸穿地板时,这一切也就说的通了 00:07:26.500 --> 00:07:29.800 尴尬的是,这种事情其实,发生在我身上不止一次了 00:07:29.800 --> 00:07:32.675 我过去曾想过,要做一部黑暗电影风格的点击式冒险游戏 00:07:32.675 --> 00:07:35.465 这部游戏中的线索将会有一套独特的肉鸽生成系统 00:07:35.465 --> 00:07:39.475 —— 为此我花了大量的时间来编写故事、研究当时的历史 00:07:39.475 --> 00:07:42.075 但却其实从来没着手设计过那套线索系统 00:07:42.075 --> 00:07:47.275 我想要做一版节奏更快、玩法更现代的手机贪吃蛇游戏 00:07:47.275 --> 00:07:51.975 但我把全部的精力都用在了修BUG、调试手感这些东西上 00:07:51.975 --> 00:07:57.050 结果我连游戏性都还没考虑,就已经厌倦、放弃了这个项目 00:07:57.050 --> 00:08:00.625 每次,当我想要制作一款自己的游戏时 00:08:00.625 --> 00:08:06.450 我总是把玩法以外的事 —— 譬如故事和画面 —— 看的太重了 00:08:06.450 --> 00:08:07.775 为什么呢? 00:08:07.775 --> 00:08:13.000 我认为,这种错误主要来源于两种常见的误解 00:08:13.000 --> 00:08:18.050 第一种误解是,每个新点子出现在大脑的时候,都会显得很有趣 00:08:18.050 --> 00:08:22.000 所以我就会假设,"这个游戏被做出来后一定很好玩" 00:08:22.000 --> 00:08:24.000 但很显然,这种假设是错误的 00:08:24.000 --> 00:08:31.925 而第二种误解则是,"直到游戏做出来,我都没法确认它是不是真的好玩" 00:08:31.925 --> 00:08:37.225 所以我只能先动手,把游戏的完成度推到能够看出它的质量为止…… 00:08:37.225 --> 00:08:40.475 真的是这样吗?不,大错特错 00:08:40.475 --> 00:08:43.037 回首过去,真的让人扼腕叹息 00:08:43.037 --> 00:08:46.450 因为答案在今天如此的明显 00:08:46.450 --> 00:08:48.300 但直到几年前我都对此一无所知 00:08:48.300 --> 00:08:50.450 —— 因为那时我还没有开始做《游戏制作工具箱》 00:08:50.450 --> 00:08:52.475 通过这档节目,我才开始真正研究游戏开发 00:08:52.475 --> 00:08:59.800 在采访了无数游戏设计师后,今天的我才能知道游戏开发的成功之道 00:08:59.800 --> 00:09:03.500 要知道,游戏设计师的脑子里无时无刻都在蹦新点子 00:09:03.500 --> 00:09:07.125 而点子这种东西,在脑子里都感觉棒极了 00:09:07.125 --> 00:09:12.350 但那些最好的设计师们都知道,大脑是一个多爱撒谎的骗人精 00:09:12.350 --> 00:09:18.875 检验一个点子质量的唯一方法就是把它做出来、然后上手测试 00:09:18.875 --> 00:09:21.525 但与其去制作整个游戏 00:09:21.525 --> 00:09:25.575 设计师们通常只会做一个……"原型" 00:09:25.575 --> 00:09:30.275 所谓 "原型",是对点子的一种简单、粗糙的实现 00:09:30.275 --> 00:09:34.125 唯一的目的就是帮助设计师确定它是否真的好玩 00:09:34.125 --> 00:09:36.975 大部分原型看起来都其貌不扬 00:09:36.975 --> 00:09:42.750 它们通常用着半成品的美术、基础的模型、或者从其他游戏偷来的素材 00:09:42.750 --> 00:09:47.075 它们通常 BUG 满满、问题百出、内容空洞 00:09:47.075 --> 00:09:50.550 只有那些用来测试玩法的功能和元素 00:09:50.550 --> 00:09:53.925 它们是一个游戏点子最基础的具现化 00:09:53.925 --> 00:10:00.475 用尽可能快的速度做出来,只为了检验某个点子的可行性 00:10:00.475 --> 00:10:02.875 它足够好玩或者有趣吗? 00:10:02.875 --> 00:10:04.850 它值得进一步的打磨吗? 00:10:04.850 --> 00:10:09.900 它对于游戏的其他部分来说,配当一个稳固的地基吗? 00:10:09.900 --> 00:10:11.775 而这正是接下来我打算做的 00:10:11.775 --> 00:10:13.575 这一次,我不会再犯过往的错误 00:10:13.575 --> 00:10:16.825 我会集中注意力,先做个原型出来 00:10:16.825 --> 00:10:23.225 我会极度的自律,除了测试这个游戏点子外,不做任何额外工作 00:10:23.225 --> 00:10:26.925 因此,在美术方面,我打算直接用谷歌图片找现成的 00:10:26.925 --> 00:10:29.450 它不会有任何音乐,也不会有任何故事 00:10:29.450 --> 00:10:33.850 我甚至不会给这部游戏、或者我的角色起名字 00:10:33.850 --> 00:10:38.200 我绝不会连游戏的还没开始做,就先给它设计图标—— 00:10:38.200 --> 00:10:39.575 往事不堪回首啊 00:10:39.575 --> 00:10:44.700 代码一定会有很多 BUG 和错误,毕竟我是个 Unity 新手 00:10:44.700 --> 00:10:48.550 但我想我的能力对于测试一个点子来说绰绰有余 00:10:48.550 --> 00:10:52.875 我只要为游戏搭一个积木盒子,然后测试它是否好玩就够了 00:10:52.875 --> 00:10:56.300 那么,让我们启动 Unity,正式开始吧 00:10:56.300 --> 00:11:01.150 我的第一个目标,是做出一个可以左右移动和跳跃的角色 00:11:01.150 --> 00:11:05.500 所以当玩家按下相应的按键时,我会给刚体施加一股力量 00:11:05.500 --> 00:11:10.575 而这已经开始出问题了——不能算开门红,但总之最后解决了 00:11:10.575 --> 00:11:12.725 然后,我在场景中放了一个磁铁 00:11:12.725 --> 00:11:17.200 接下来我得让玩家被磁铁吸引着靠近 00:11:17.200 --> 00:11:21.525 要做到这点,我需要有成熟的编程能力 00:11:21.525 --> 00:11:24.000 于是我全力运转大脑,将编程功力发挥到极致 00:11:24.000 --> 00:11:28.550 紧接着,舞动我的手指,在键盘上打出…… 00:11:28.550 --> 00:11:31.850 "我该怎么让一个刚体向着另一个对象移动?" 00:11:31.850 --> 00:11:33.350 行吧我承认,我直接去谷歌了 00:11:33.350 --> 00:11:35.725 我找到了相应的代码,然后偷进了自己的项目中 00:11:35.725 --> 00:11:38.500 不过,我还是确保自己完全明白了背后的原理 00:11:38.500 --> 00:11:42.150 ——简单来说,就是找到磁铁相对于玩家的方向 00:11:42.150 --> 00:11:45.175 然后对着相应的方向,在刚体上施加力 00:11:45.175 --> 00:11:50.000 我还调整了代码,让磁铁吸附玩家的速度,随着距离靠近而变快 00:11:50.000 --> 00:11:53.925 再然后,我又加了一个按键关闭磁力的功能 00:11:53.925 --> 00:11:57.525 与此同时,这个功能还可以在磁力消失时保持玩家的动能 00:11:57.525 --> 00:11:59.150 从而让他们飞向天空 00:11:59.150 --> 00:12:01.425 基于此,如果我在这里放下一个平台 00:12:01.425 --> 00:12:06.350 我可以让玩家通过在适当的时候解除磁力,被吸附到这里 00:12:06.350 --> 00:12:08.675 这一套下来,虽然感觉不错…… 00:12:08.675 --> 00:12:11.250 可游戏变的有一点太难控制了 00:12:11.250 --> 00:12:15.350 我的代码并不完美,游戏很容易失控 00:12:15.350 --> 00:12:20.725 但随着我进一步的研究,我在 Unity 中发现了个相当有用的东西 00:12:20.725 --> 00:12:24.050 它是一个叫做 "点效应器" 的引擎内置组件 00:12:24.050 --> 00:12:26.625 它的效果嘛……基本上就是一块磁铁 00:12:26.625 --> 00:12:30.700 难以想象之前我是怎么错过这东西的,它的图标直接就是块磁铁 00:12:30.700 --> 00:12:31.850 它是这样运作的: 00:12:31.850 --> 00:12:35.500 你为一个游戏对象赋予碰撞体和点效应器 00:12:35.500 --> 00:12:37.350 然后设置它的吸引力强度 00:12:37.350 --> 00:12:40.125 现在,当一个刚体与碰撞体重叠时 00:12:40.125 --> 00:12:42.825 它会直接被吸引到磁场的正中心 00:12:42.825 --> 00:12:48.525 你还可以搭配上 Unity 的图层蒙版系统,来让它仅吸引特定的对象 00:12:48.525 --> 00:12:51.525 这大大降低了我游戏的制作难度 00:12:51.525 --> 00:12:54.150 因此,我决定重新做一个新版的原型 00:12:54.150 --> 00:12:56.450 而这一次,游戏感觉正常多了 00:12:56.450 --> 00:12:58.425 我可以很轻松的做出调整 00:12:58.425 --> 00:13:03.525 我也可以做些更酷的尝试,例如将吸引点固定在磁铁的两极上,它就会这样 00:13:03.525 --> 00:13:04.950 ——看起来相当不错吧 00:13:04.950 --> 00:13:07.225 但在我制作第二个原型时 00:13:07.225 --> 00:13:11.850 不知怎么的,我突然决定不再继续使用马里奥 00:13:11.850 --> 00:13:15.725 转而用一张磁铁的图片作为玩家操控的角色 00:13:15.725 --> 00:13:19.225 紧接着,这启发了我: 00:13:19.225 --> 00:13:23.075 比起让磁铁来成为游戏角色 00:13:23.075 --> 00:13:29.650 我能不能在游戏中放置磁铁,让它们可以被玩家靠近和捡起来呢? 00:13:29.650 --> 00:13:33.800 为了实现这一点,我使用了 Unity 的关节系统 00:13:33.800 --> 00:13:35.075 这也是一个引擎内置的组件 00:13:35.075 --> 00:13:40.800 它提供了各种关节、例如铰链和弹簧,可以让我将两个刚体连在一起 00:13:40.800 --> 00:13:44.125 而现在,游戏的角色需要手持磁铁 00:13:44.125 --> 00:13:48.350 当磁铁被一块金属所吸引时,它会带着玩家一起运动 00:13:48.350 --> 00:13:51.475 而当玩家松开磁铁时,他们则可以自由的行动 00:13:51.475 --> 00:13:53.250 而我之前设想的玩法 00:13:53.250 --> 00:13:57.775 也就是理由磁铁的动能来把玩家运送到更高的平台 00:13:57.775 --> 00:14:01.825 仍然可以通过在半空中松开磁铁来实现 00:14:01.825 --> 00:14:06.375 除此之外,它也给设计添加了更多可能性,例如一个场景中可以有两块磁铁 00:14:06.375 --> 00:14:07.700 你还可以,比如说 00:14:07.700 --> 00:14:10.925 将一个磁铁吸附在这里,然后让敌人向着你走来 00:14:10.925 --> 00:14:13.500 紧接着,你关掉磁力——啪唧! 00:14:13.500 --> 00:14:16.150 唔,听起来还蛮酷的 00:14:16.150 --> 00:14:18.475 或许是个可行的主意 00:14:18.475 --> 00:14:23.125 突然间,游戏好像变得比我最初的点子更有趣的多了 00:14:23.125 --> 00:14:26.175 而在这之前,我得承认自己还有点担心这一点 00:14:26.175 --> 00:14:29.675 当你的角色被磁铁控制,持续的被吸引和排斥 00:14:29.675 --> 00:14:32.800 玩家很容易就会感觉一切有点脱离自己的控制 00:14:32.800 --> 00:14:34.875 但通过将磁铁作为一个单独的物体 00:14:34.875 --> 00:14:38.475 玩家将会在一半的时间中获得完全的掌控权 00:14:38.475 --> 00:14:41.225 只有在捡起磁铁后才会体验短暂的失控 00:14:41.225 --> 00:14:44.400 在此之前,我还有一点担心自己会灵感枯竭 00:14:44.400 --> 00:14:46.925 毕竟让磁铁当玩家,可没法给游戏创造多少发挥空间 00:14:46.925 --> 00:14:52.325 而在我将磁铁和玩家分开后,灵感一瞬间就全部涌上来了 00:14:52.325 --> 00:14:57.700 再者,我很喜欢那种、玩家可以在回头路上体验全新玩法的游戏 00:14:57.700 --> 00:15:02.075 比如在《超级马里奥:奥德赛》中,你不戴帽子时的操作体验截然不同 00:15:02.075 --> 00:15:07.325 在我的游戏中,当角色不拿磁铁时,它会很灵活,跳得很高 00:15:07.325 --> 00:15:10.775 而手持磁铁则会让它迟钝而缓慢 00:15:10.775 --> 00:15:14.950 ——不过当然了,手持磁铁时玩家也会获得独特的惊人可能性 00:15:14.950 --> 00:15:20.375 到了这一步,当一个更好的点子随着开发涌现出来时,我也习以为常了 00:15:20.375 --> 00:15:22.600 就像我在往期的 GMTK 00:15:22.600 --> 00:15:24.325 "那些自己设计自己的游戏" 中提到的一样 00:15:24.325 --> 00:15:28.825 在原型阶段,出现新的点子时一件很正常的事 00:15:28.825 --> 00:15:31.025 比如说,《节奏地牢》 00:15:31.025 --> 00:15:33.200 在这部游戏的初版设计中 00:15:33.200 --> 00:15:38.300 它只是一部每回合时间非常短的,回合制肉鸽游戏罢了 00:15:38.300 --> 00:15:42.500 但随着设计师开始制作,他们发现这部游戏可以变得更加有趣 00:15:42.500 --> 00:15:46.825 于是,将每回合的倒计时,变成了让玩家卡着音乐的节拍玩 00:15:46.825 --> 00:15:51.675 因此,一个原型不仅仅能够帮助你验证点子的可行性—— 00:15:51.675 --> 00:15:55.800 它还可以用来帮助你想出更多、更好的点子 00:15:55.800 --> 00:16:00.325 在开发过程中,我又发现了一个 Unity 的有趣功能: 00:16:00.325 --> 00:16:02.125 它的名字叫做 "Sprite Shape" 00:16:02.125 --> 00:16:06.150 它一般被用来制作那些很酷的原创关卡设计 00:16:06.150 --> 00:16:08.150 比如《奥日》中就大量使用了它 00:16:08.150 --> 00:16:11.100 但对我来说,只要一个纯色的色块就够了 00:16:11.100 --> 00:16:14.375 这能够让我以非常快的速度设计关卡 00:16:14.375 --> 00:16:18.700 我只需要简单的拖动把手,将原型区域拼接在一起就够了 00:16:18.700 --> 00:16:20.225 和 PS 的工作方式差不多 00:16:20.225 --> 00:16:21.800 于是,我再一次制作了原型 00:16:21.800 --> 00:16:25.850 这一次,我希望游戏角色的操作手感可以好一点 00:16:25.850 --> 00:16:28.275 可以更贴近一部成品游戏的手感 00:16:28.275 --> 00:16:32.550 不过这一次,我不想再浪费时间去为移动和跳跃编程了 00:16:32.550 --> 00:16:36.200 于是我直接从网上下载了一套角色控制的脚本 00:16:36.200 --> 00:16:42.500 它的质量很高,让我可以把精修操控手感的计划留到未来处理 00:16:42.500 --> 00:16:45.500 而现在,我不想在这上面花太多时间 00:16:45.500 --> 00:16:48.700 接下来,我在开始在原型中进一步探索机制 00:16:48.700 --> 00:16:53.701 例如允许玩家将磁铁扔出去,或者召回手中 00:16:53.701 --> 00:16:55.425 就像索尔和雷神之锤一样 00:16:55.425 --> 00:16:59.325 而因为召回过程中磁铁与玩家的刚体会相撞 00:16:59.325 --> 00:17:02.275 玩家在磁铁到手的一瞬间也会有相应的反作用力 00:17:02.275 --> 00:17:04.600 这种流畅的游戏感,体验相当棒 00:17:04.600 --> 00:17:09.050 再然后,我又为磁铁想出了好几种不同的使用场景 00:17:09.050 --> 00:17:12.100 例如将它扔到墙上,人工创造一个平台 00:17:12.100 --> 00:17:13.775 或者将它与活塞相连 00:17:13.775 --> 00:17:16.750 在你关闭磁性的一瞬间,磁铁会被反作用力推飞 00:17:16.750 --> 00:17:20.400 又或者通过切换它的极性,让磁铁可以在两条传送带之间来回切换 00:17:20.400 --> 00:17:24.450 或者利用重力把平台拉下来,让角色跳上去 00:17:24.450 --> 00:17:27.850 然后切换磁铁的极性,让平台把你发射到空中? 00:17:27.850 --> 00:17:30.575 哇哦,好像越来越有趣了,不是吗? 00:17:30.575 --> 00:17:34.125 它终于开始有个游戏的样了 00:17:34.125 --> 00:17:35.225 它终于开始变得好玩了! 00:17:35.225 --> 00:17:40.450 也就是这时,我真正确信了自己的游戏点子,确实有不错的潜力 00:17:40.450 --> 00:17:41.975 它是原创的: 00:17:41.975 --> 00:17:46.050 我见过一系列利用磁铁的游戏,但还没见过类似的玩法 00:17:46.050 --> 00:17:50.425 它既可以被用于平台跳跃,也可以被用于解谜玩法 00:17:50.425 --> 00:17:56.275 这个点子似乎上下限都很高,允许我设计从易到难的大量关卡 00:17:56.275 --> 00:17:58.950 而且,最重要的是,这个点子玩起来很有趣 00:17:58.950 --> 00:18:04.100 仅仅是在 Unity 的预览窗口中跳来跳去,就已经让我觉得很好玩了 00:18:04.100 --> 00:18:06.625 而这,无疑是个好兆头 00:18:06.625 --> 00:18:09.975 而这,也是所谓 "原型" 蕴含的力量 00:18:09.975 --> 00:18:14.950 你可以用它们来测试游戏点子的可行性 00:18:14.950 --> 00:18:20.575 幸运的话,你还能在原型开发阶段取得新的灵感 00:18:20.575 --> 00:18:24.950 不过,要用好原型,自律仍然是不可缺少的 00:18:24.950 --> 00:18:26.525 你一定要管好自己、告诉自己 00:18:26.525 --> 00:18:31.025 "我绝不会关注任何细枝末节,我只关心玩法" 00:18:31.025 --> 00:18:32.075 而要做到这一点,其实很难 00:18:32.075 --> 00:18:35.275 在本期视频里,我还没有告诉过你 00:18:35.275 --> 00:18:40.775 我浪费了整整一周时间,挑选粒子效果、着色器、UI之类的东西 00:18:40.775 --> 00:18:43.050 ——当时的我克制不住自己的老毛病 00:18:43.050 --> 00:18:48.275 被那些,现阶段根本没有意义的东西牵着鼻子走 00:18:48.275 --> 00:18:51.800 不过幸运的是,我悬崖勒马,废弃了那个原型 00:18:51.800 --> 00:18:54.400 然后将注意力放回了真正重要的事物上 00:18:54.400 --> 00:18:56.600 而最终,成果是喜人的 00:18:56.600 --> 00:18:59.650 我终于做出了一些自己觉得很好玩的东西 00:18:59.650 --> 00:19:04.275 我做出了具有潜力、能够激发我的热情的东西 00:19:04.275 --> 00:19:07.425 在我多年前尝试制作的那些游戏项目中 00:19:07.425 --> 00:19:11.625 一切都围绕着一种 "这部游戏会很好玩" 的盲目自信开发 00:19:11.625 --> 00:19:15.500 而这显然不能算是一种正确的游戏制作方式 00:19:15.500 --> 00:19:21.025 而这一次,我打造的房屋有了一个坚实的地基,能够让我在其他的方面 00:19:21.025 --> 00:19:23.625 ——也就是故事、音乐、美术 00:19:23.625 --> 00:19:29.075 ——当我打造这些元素时,我的脚下生根,坚信自己的地基时牢固的 00:19:29.075 --> 00:19:34.325 因此,我认为这就是制作游戏时,正确的起跑点 00:19:34.325 --> 00:19:36.150 ——先做个原型 00:19:36.150 --> 00:19:37.865 现在,我心中唯一的疑虑则是: 00:19:38.275 --> 00:19:40.525 妈耶,那我接下来该干啥啊…… 00:19:40.525 --> 00:19:42.725 我猜,答案会在下期节目中揭晓吧 00:19:42.725 --> 00:19:44.800 在下一期的《开发之旅》中 00:19:44.800 --> 00:19:49.825 非常感谢你的观看,期待你能在下期节目、乃至这场旅途中陪伴我 00:19:49.825 --> 00:19:50.875 再会 00:19:51.250 --> 00:19:53.250 (先别急着关,视频末尾还有彩蛋) 00:20:14.300 --> 00:20:16.275 而我的灵感来源,则是这部游戏 00:20:16.275 --> 00:20:18.425 《塞尔达传说:大地之章》 00:20:19.225 --> 00:20:20.600 靠,拿反了 00:20:20.600 --> 00:20:22.500 则是这部游戏……啊这 00:20:22.500 --> 00:20:24.015 噗噗噗噗噗噗~ 00:20:25.295 --> 00:20:26.511 则是这部游戏 00:20:26.925 --> 00:20:28.504 是这部游戏 00:20:28.504 --> 00:20:29.400 这部游戏 00:20:29.400 --> 00:20:30.075 部游戏 00:20:30.075 --> 00:20:32.825 这部游戏:《塞尔达传说:大地之章》 00:20:32.825 --> 00:20:34.050 来自于 00:20:34.375 --> 00:20:36.200 而我的灵感来源,则是这部游戏: 00:20:36.200 --> 00:20:38.350 《塞尔达传说:大地之章》 00:20:39.675 --> 00:20:41.125 就这样吧……