文/俊铭
前文
如果非要说一个系统学习游戏制作和设计的方式,我建议新手先做桌游。所有游戏的本质都是相通的,用桌游来理解游戏设计是最好的开始。你可以不需要关注编程和美术技术,全身心投入设计,只要有心,没什么是做不出来的。
读这篇文章你要准备的东西
- 想要了解游戏的心
解剖你的对象游戏
如果你看中了一款桌游并且很想要将它DIY化,那么在这个阶段你可以做的东西会相对少很多。但是比起价格,你更加应该想清楚这款桌游对你来说意味着些什么,你究竟想要做出些什么
- 汉化:如果你看中的桌游是国外的桌游,所以你想要把它引进你的朋友圈时会考虑到究竟有没有人能看懂它。那么你在思考用些什么材料的同时,也应该关注在它的语言表达方面,毕竟你得认真的考虑才能用中文准确地表达这款桌游想表达的东西。
- 便携:你考虑得配件应该尽量少,能用卡牌代替就尽量用卡牌,如果有底板最好能做成折叠的,纸质的选择也要尽量轻薄
- 便宜:只要你有时间,想要多便宜能多便宜
对于解剖你的目标游戏,理解这里面包含的内容,在这里我要和你介绍《游戏设计艺术》里面讲到的四元法。
Jesse Schell介绍的四元法
但是,你猜怎样?你现是站在医生的位置上了。你需要很熟悉地知道,你的病人(游戏)究竟由什么组成,这些是如何组合在一起的,是什么让他们运行起来。当游戏出现问题时,你需要指出真正的原因,然后想出最棒的解决方案,否则你的游戏就会死去。如果这听起来还不够男,你可能会做一些大多数人都不会做的事情:创造一种完全崭新的游戏,然后把它实现。- 《游戏设计艺术》
- 机制:游戏的过程和规则。当你选择了玩法,那么你需要选择技术来实现他们。而美术则用来呈现给玩家;最后你需要一个故事来支撑你的游戏,使得你的游戏机制更加吸引人。这几个点互相帮助,构成了游戏的娱乐体验。
- 故事:在你的游戏过程中,有些事件会发生,而你应该决定这些事件发生的顺序。它可能时线性的,倒叙的,或者预先设定。也有可能时拥有一些分支或者随机发生。当你想讲一个故事,你应该考虑你的游戏机制是否足够推动游戏的进程,让故事在游玩中有一种逐渐浮出水面的感觉。同样,你需要美术来加强故事的说服力,不然没人知道主人公找到宝藏时兴奋的表情是怎么样的。最后你需要技术来配合特定的故事。
- 美学:这些是游戏的外观,如果你准备设计电子游戏,通常这意味着二维图像或3D素材。美学是最直观的表达,而且非常重要。如果你的游戏充满了好看的艺术作品,那么玩家的见到的每一个新鲜的事物本身就是对他们的回报。
- 技术:对于如何实现你的游戏,你可以思考一下你会用到的材质和交互。你选择的技术应该能让你的游戏完成一些你想做到的目标,并禁止玩家做其他你不想他们做的事情。
我们可以把技术看作一种媒介,美学看作表达手法,而机制则让他们发挥作用,最后通过故事来讲述,这个循环非常美妙,你应该尽早学会它。
透过这个解析法,你可以观察你的目标游戏是由什么构成的,并思考一下这些问题:
- 我的设计有用到这些内容吗
- 如果某一个/几个元素被凸显,那么我的设计会得到增强吗
- 这几个元素之间是否很好的互相合作,并且将游戏指向一个主题?
那么下面就来说一下,如何创作一个属于你自己的主题桌游的雏形吧。
设定游戏主题
在这里,你应该认真的考虑你想要做一个什么样主题的游戏,在考虑游戏的目标之前,你应该花更多的时间,来思考你需要玩家以最快速度了解到的基本知识。
你或许一头雾水,但我们可以试着做这样的练习 —— 找到一款你很喜欢玩的游戏,电子游戏或者桌游,花5分钟游玩它的第一个关卡,然后想一想你刚才为了游玩这个关卡而需要重点分析和思考的部分,那些是什么?有什么元素?你在游玩的时候有没有什么限制?
接下来想一想这些问题
- 你的游戏需要玩家达成什么目标?
- 你想要玩家理解些什么范畴的内容?
- 在玩家做选择前,有什么过场情景或故事发生了么?
- 玩家通过做什么来进行选择?这个选择会带来什么结果?
设定游戏互动方式
一个游戏只会存在两种模式,一是人对人,二是人对系统。我们一般可以称那些人对系统的游戏为单人游戏,而如果这个是属于人对人的范畴,那么玩家之间要么就需要合作完成一些任务,共同胜出游戏。或者玩家之间是属于竞争状态,玩家可以以个人身份与其他玩家对抗,或者组成联盟对抗其他的队伍,要促使玩家做到这一点很简单,你可以在一开始就给予玩家属于自己的身份牌(公开或不公开)。还有一些游戏将竞争和合作结合,玩家需要合作完成一些任务,但出于个人原因,他们需要让自己在最后结算的时候成为最有优势的人,这迫使玩家在帮助其他人的同时衡量这种行为会让自己减少多少利益。
- 人对系统
- 人对人
- 合作
- 竞争
- 单人对抗
- 联盟对抗
- 合作竞争
设定游戏机制 - 6大类
游戏机制是游戏的核心所在,它大致决定这个游戏的乐趣所在。
要设计游戏的规则,首先要知道有哪些机制。不同的机制搭配游戏配件,可以进行各种各样的游戏行为
1.空间
这是指游戏发生的空间,它定义了一款游戏中可以存在的各个地点,以及他们之间如何互相关联。
如果你玩过九宫格,它应该长这个样子
九宫格,你可以在9个方框内填入数字
你可以不管那些边界和空格,把数字填在你想要的任何一个位置(甚至填在九宫格外面也可以),也就是不管你填的数字有没有意义。但如果你想要做出有意义的行为,你就应该把数字填在画叉的地方
有意义的游戏行为
我们可以把这个九宫格理解为一个离散的二维空间,并且它拥有9个互相连接的格子
你可以用这种方法将所有的游戏场地转换成这样离散的空间,以加以思考。你可以分析在在这个场地里面,不同位置之间的玩法。
当然,并不是所有游戏都和九宫格一样是离散的,比如说,windows XP/7系统自带的三维弹球。这个游戏的台面就是一个连续的空间 —— 它拥有固定的长和宽,而且我们发射出去的球可以自由移动、反弹、以及落入洞里。但无论这个游戏的空间是连续的还是离散的,道理都是一样的 —— 我们需要把这个游戏的美学和其他会干扰我们思考的东西削离,帮助自己抽象地理解这个游戏的各种关系。
还有一些空间,并不真实存在。因为我们可以设计一些没有空间的游戏,让他们只存在着某种交换信息的地方。但是我们仍然可以将这些地方抽象地当作空间来理解。比如“揭尾故“这种游戏 —— 由一个玩家构思一个故事,并告知所有人这个故事的结局,另一些玩家提出能以”是“或”否“回答的问题,并猜出故事的大概和缘由。那么,这个游戏就像发生在这样的空间:
2. 时间
时间同样可以是离散和连续的。在回合制游戏里面,时间能被计算,每回合就是一个离散的时间单位。但对每一个回合之间,其实并不存在时间这个概念。比如到我出牌的时候,我出杀,而对方出闪,我们只需要记录这两个行动本身就好了,不需要记录每一步花了多长时间,因为现实里的时间和游戏的机制是没有关系的。
- 操纵时间
如果将游戏的时间设定为连续的,会很有意思。因为这样你就需要给各色各样的事物设定时间限制,同时加上一些好玩的元素,比如停止、回头、加速、减速等等。这样做的目的在于,通过绝对的时间计量对玩法做出限制。例如在《文明》系列的电子游戏里面,就有玩家领导一个文明从史前时代发展到现代的玩法,这时候我们就要加快时间,让许多年在数秒间经过。而操纵时间这一动作有时可以交由玩家来做,比如在桌游《疯狂速食怪》中,玩家需要在沙漏结束之前,用手上的牌搭配出游戏制定的食物配料。而玩家的手牌中如果有翻转沙漏的功能牌,则可以让沙漏重新计时,以增加团队的存活时间。还有一些游戏,比如在steam上面发布的独立游戏《Causality》就把操纵时间变成了游戏的核心机制。
3. 对象、属性和状态
如果你有编程基础,那么这一部分就很好理解。首先,所有在游戏里面,你能看见或者能操控的东西都是对象。对象一般有一个或以上的属性,其中一个常见的属性就是这个对象的位置。
属性是这个对象的信息,比如一只小狗,它有身高,有跑步速度,还有攻击力。额……对,攻击力。每个属性分别会有一个当前的状态。比如跑步速度,它在当前是2米/秒,但可能在上一分钟是达到了“最大速度”4m/秒。
属性可以是静态也可以是动态,静态的属性在游戏中不会被改变,因为一旦设定完成就不需要作改动。所以比较让人苦恼的是动态属性,比如在象棋里面,”将“有一个移动模式的属性,分别有三个状态:移动,被将军,被将死。而在“三国杀”里面,每个玩家的角色都是一个对象,这个对象有个动态属性“血量”,这个血量由玩家角色的体力值决定,还有个“翻面”属性,包含两个状态“是/否”。
你可以决定哪些对象拥有哪些属性和状态。现在来做一个练习:在扑克牌游戏里面,你怎么定义玩家的手牌?它拥有那些对象、属性和状态?
4. 行动
行动,简单来讲,就是”玩家可以做的事情“。而行动分为两种,一种是基本行动,而另一种是策略行动。
基本行动指的是基本行为,这些行为构成了游戏的基础。比如说,我们在下军旗的时候,有三个基本动作:
- 移动棋子
- 吃掉对方的棋子
- 让工兵拐弯
如果我们无视胜负规则和策略的话,这个游戏可以一直玩到世界的尽头,因为我们可以不断地重复这些动作。
策略行动指的的是,在大局上有意义的行动,而且他们和基本行动息息相关 —— 玩家应该考虑如何让自己的基本行动达成游戏目标。同样拿军棋作例子,在游戏过程中可能存在这些策略行动:
- 只移动最大的棋,不移动其他棋子,发挥最大效益
- 牺牲一些小棋挡住对方的去路
- 迫使对方做出不想做的行动
尽量不要让玩家持有过多的基本行动,有时候你需要给玩家选择,但太多的选择反而容易让人冲昏头脑。相反,这些基本行动之间应该能组合出大量的策略行动,游戏是否有趣很取决于玩家能否做出”有趣的策略“。有很多方法可以做到这一点。比如,你可以让游戏拥有更多对动作的描述,这些动作很大程度上取决你正在设计的游戏主题,如果这是一款关于矿工的游戏,那么它应该有”挖“,”敲“,”赚“,”卖“,”建造“一类的词,基于这些动词,你可以延申出很多对应的对象(还记得我们刚才说过的对象属性和状态吗?),比如”挖矿“,”敲石头“,”赚钱“,”卖黄金“。看起来我们慢慢构建起这个游戏里的可能性了。有效的对象使得玩家的策略变得有意义。
现在玩家有了明确的目标,他们知道他们可以”挖矿“或者干些别的游戏中允许的事情。比如说,玩家可以挖各种东西,但游戏目标则只是”成为最有钱的矿工!“,那么他们只能不断地挖矿直到时间的尽头也无法成为最有钱的矿工 —— 因为所有人都这么干。所以,你得为这个目标提供一些可能的玩法,比如你可以挖矿到一段时间,付上一笔钱来建造一座挖矿机,然后去干别的更有价值的事情,或者你可以不挖矿,而通过偷取别的玩家的矿来发横财(这么做虽然很不道德,但既然是游戏,有什么不可以呢?)
在这个基础上,我们为这个游戏的玩法提供很多的策略。我们不会一开始就明确地告诉玩家,而只提供少量的引导,让玩家自己在游戏的过程探索。现在,我们可以为游戏提供一些更有趣的东西,那就是行动的”额外效果“。通过每次做出行动的时候,改变自己或对手的限制环境和条件。这是玩家实施策略的收益,是额外的东西。某种意义上,不论玩家本来的想法是怎样,它每一次的行动,都在改变游戏空间的性质。
5. 规则
一个游戏或许会存在很多规则,而你的工作则是让这些规则好好的做自己的分内事。在游戏进行到一定程度时,会发生一些改变使得规则转换,但你应该时刻让玩家谨记游戏在做什么。比如说,我们在设计一款,一路打到魔王家门口,然后战胜魔王的游戏。而玩家需要在这个过程中学习各种技能来挑战魔王的可怕手下。如果你隔很短的时间就得停下来学习新技能,那整个游戏的方向就转换了 —— 这变成了一个解锁技能的收集向游戏。
在设定了游戏玩法,并且找到志愿者抽出时间来为你测试之后,你会发现有很多人并没有按照你的意愿来进行这个游戏 —— 他们中很大一部分人不择手段地想要获得胜利。我们一般称这种情况为作弊。这是不可以发生的,想点法子来惩罚那些尝试作弊的玩家吧,这对那些没有尝试作弊的玩家很公平。
所以,你并不用觉得一开始想不出游戏的规则是很苦恼的,因为根本不会有一开始就很完美的规则。就算是,也只是你觉得很完美,玩家耍小聪明的本领永远会超乎你的想象。所以正确的做法是,首先设想一个简单的规则,然后试玩,接着调整你的规则,然后试玩,以此往复,最后确立你的”书面规则“。认真地记录那些在试玩过程中暴露出来的漏洞,确保你的规则覆盖到每一种情况。
6. 概率
这是个很有用的机制,在桌游《Hit Z Road 亡命之途》中,每次战斗的时候都会使用筛子来随机生成战斗行为。而在其中一个近战的战斗阶段里面,玩家能够使用的筛子是由自己手上持有的生存者数量来决定的。这就意味着,玩家能做出的战斗行为,不仅是完全随机不可预测的,而且还有可能因为自己的资源减少而减少(比如战斗失败,则会减少相应生存者资源)。因此玩家不得不谨慎考虑自己的游戏策略。
那么假设我们的玩家现在拥有3个幸存者,即玩家在近战阶段能扔出3个筛子,其中每个筛子拥有3面能做出攻击行为,那么玩家这时3个筛子都抛出战斗面的概率是多少?
3/6 * 3/6 * 3/6 = 1/8 , 难不倒大家吧。
这是这个事件的理论概率,是理应发生的。不过作为一个设计者,我们应该更加严谨的考虑它的实际概率,用来衡量已经发生的事件。比如,这个事件发生的概率是1/8,等于12.5%,那么我把这三个筛子抛10次,并记录这几次事件发生的实际概率。在这种情况下,我的实际概率是15%,和我的理论概率很接近。这个结果比你用纸和笔算出来的结果的或许更加有用,因为你还有一些东西没有在草稿纸上想到,比如你的筛子可能重心不稳,或者你的桌子摩擦力很大,筛子滚不起来。
期望值
在你的游戏里面,所有的行为都会有一个对应的期望值,也就是那个行为所有可能的结果的平均值,例如在你的游戏里面,所有的角色在做一个行动的时候,都会抛出一个筛子,根据这个筛子出现的数字获得奖励,那么我们就将所有结果加起来然后除以这些结果的总数就好了。因为所有结果出现的概率是相等的,都是1/6。首先,所有可能的结果是1 2 3 4 5 6 = 21,然后21处以6,得到3.5,我们可以说“玩家每次执行这个行动,平均会得到3.5的奖励”。得知这个资讯非常有用,你将了解到玩家采取这个行动本身的数值。
那么现在让我们来举一反三,假设我们的角色现在能做两种行为,一种叫拿牌,拿取两张牌,一种叫偷袭,偷取敌人一张牌,但成功率是80%,那么他们的期望值是多少呢?
首先,拿牌永远都会得到2点的奖励,因为不可能存在我拿不到的情况,除非其他玩家把公共区域的牌都扔到垃圾桶。而偷袭有80%的几率成功,20%的几率不成功,所以是(1 * 0.8) (0 * 0.2)=0.8。那么现在我们能得出一个结论,玩家始终会拿牌,因为它得到的平均利润始终是偷袭的两倍有多,而且我说不准还能用拿到的牌来打击对面玩家。所以你或许可以增加一个行动,叫打落,你能打掉对方3张牌,让自己抽2张牌,但成功率是30%,这个行动的期望值是(5 * 0.3) (0 * 0.7)= 1.5,如果你面对一个有很多牌的敌人,或许你会冒险选择这个行动。
你应该注意你设计的游戏选择所带来的真实价值,你应该谨记玩家不会采取对自己没什么好处的行为,你应该计算玩家会得到什么收益,以及什么惩罚。
理解人在游玩时的认知机制
让我们来看看人是怎么通过思考来学习的。
1. 人的注意力:基于人的注意力的先天限制,我们是无法对所有的资讯保持注意的。通常一个好的游戏能提供系统性的提示和引导来让玩家集中在自己的行为上。如果游戏没有办法做到这一点,那么玩家将需要花费大量时间理解游戏的资讯和规则,同时这也会增加玩家在回合内行动的时间,导致其他玩家在等待的过程中失去专注力。因为,我们必须格外留意这一点,在设计的时候避免过于复杂的游戏机制,并且让玩家在每时每刻都有专注的核心区域(例如场上的某个区域或自己的手牌),这些核心区域将帮助玩家代入游戏,更好的理解游戏目标。
2. 人的记忆:人在接收到一个新的资讯时,会将其短暂地存入短期记忆,然后经由一连串的认知处理,将其存入长期记忆,在中间的认知处理过程中,人也会到长期记忆里面提取相关的资讯来进行对比,以便加以学习和思考。而这个过程,会产生两种结果,一是人会生成一种全新的记忆,二是新的信息会被累加到旧的记忆。而我们提供的引导和提示则在这个过程中起发挥性的作用,例如一些解谜的线索。在卡牌中加入这个角色的介绍文字,其实就是在增加玩家思考的机会,玩家将有机会思考这个职业的特色,甚至可以探索该特定人物的性格特征。如果我们在设计的时候,同时呈现文字的图片,那将会很有用,这被成为双重编码理论。因此如果你想在卡牌上添加资讯时,可以在文字旁边加上图文相符的图片。
3. 人对于自己如何思考的认知:这在游戏中的表现极为重要。玩家在游戏中不断反思自己的游戏行为,调整游戏策略,使得自己的获利更有效率。这一部分相当考验设计者的功力,因为玩家可以有不同的策略组合来达到更好的游戏效果,这意味着虽然游戏的目标是同一个,但每次玩家都可以用不同的策略来达成这个目标,这极大地提高了游戏的可玩性。
进一步阅读和学习:
- 桌游设计,建议拜读<The Art of Game Desgin>,这本书有相当多的衍生版本,而且它的内容相当实用,只要你懂一点数学和心理学就能完全读懂。或者是探讨人性和哲学思考多于设计本身的<A Theory of Fun for Game Design>,相当适合新手入门。还有台湾科大出版的《知识主题桌上游戏设计》,书本身有搭配一个主题桌游作为范例解释,不过建议读者在玩过一定基础数量的桌游之后再来拜读上面三本神作,我觉得你在游玩的过程中所作的思考对于理解这三本书非常有价值。
- 对于编程方面,我没有什么好推荐的,每一种编程语言在网上都有相当多的教程和相应社区,试着写点什么来开始你的学习。在这个过程中你将系统地了解你要学习的语言特性,语法和编程思维。当你觉得你对这个语言了解得已经足够多时,试着去找一些实习的工作,具体地理解作为一个开发者应该具备的项目思维。对于完全的门外汉,我建议从解释型的语言开始学习,也就是不需要用到解释器来转换成机器代码的语言。这些语言在运行时才翻译,运行一条翻译一次,像Python/Perl/Shell/Ruby等都是解释型语言。
- 对于程序设计,可以拜读Gang of Four的<Design Pattern>,对于很多人来讲,这是很古老的一本书了,但直到今天我仍在看这本书。或者是由Nystrom编写的<Game Design Pattern>,作者本身是EA的工作人员,他的工作经常要和很多糟糕的代码打交道,所以书里面有很多他吐苦水的内容。
- 电子游戏引擎。
- 首先是一些极少用到编程的游戏引擎,RPG maker,这个引擎是笔者高中时代的启蒙引擎,当时来讲完全是黑科技,它产出的优秀作品非常多,由水野的四叶草制作的《第七号列车》,苍兔制作组的《偶弦》,还有自由鸟工作室的《去月球》等等,太多了数不过来。拖拽式操作的Game Maker,以2D为主,我本人不太喜欢用,但的确很傻瓜式,很易用。
- 然后是一些比较常用的需要编程控制的引擎,Unity和Unreal。如果你对编程更感兴趣,那我会推荐用Unity,这个引擎本身非常优秀,但其他一些美术效果,比如材质,会需要用到类似Shader forged的第三方插件。而且Unity本身有庞大的社区,并且在商店也有很多的资源和解决方案,学习起来很容易。而Unreal的话会注重更多美术、动画、建模、过场电影等等的实现。它的引擎特效大多能有影视级别的水平。不过如果是一般的射击类、冒险类的游戏,其实两个引擎没有多大的区别,选择哪个来学习并不会对项目造成多大区别。除非你要做的是街霸,方舟什么的……用Unreal吧。
专栏地址:zhuanlan.zhihu/p/47102113
,