实战经验:新手如何从零设计实现一个游戏Demo?(2)
之前完成的部分还仅仅是“概念”或者说“idea”,还是很虚的东西,最多落实到纸面上,甚至可能只存在于脑子里,而“概念”是很难进行评估和调整的。因此我认为将这些概念实体化,做成一个可玩可评估的Demo或者说“模型”、“实例”,是设计游戏中一个很重要的分水岭性质的步骤。
但实际上很多情况下这个步骤都并没有被很好地执行,主要分2个原因,1是设计者自身不具备实例化的能力,典型的就是不会写代码,这种情况往往出现在游戏爱好者里,觉得自己有一个牛逼的idea,就差程序员和美术了;2是将这个步骤归到游戏开发的过程中,跳过验证的过程,先做(chao)了再说。
但实例化并验证是一个很重要的过程,因为从“概念”到“实例”中间还有很多尚不明确需要调整和验证的东西。
首先是通过实例化核心玩法的具体表现形式来发掘未考虑完备的地方。
以本Demo为例,“有一个炮台不断发射子弹,玩家控制小球躲避子弹”这个核心玩法里,地图如何设计?有几个炮台?炮台在什么地方?子弹如何运动?是否有障碍物?玩家、子弹和障碍物如何交互?……
上述问题都是十分实在而直接的问题,是将概念落实里绕不过的问题,但却并不一定在概念阶段就能想到。
有的问题可能觉得很好回答,比如“几个炮台?”“一个啊!”张口就来,多简单。但实际上到底几个最好呢?怎么摆放?不同数量对于游戏体验有何影响?
实际上游戏作为一种以过程交互为核心的娱乐媒介,很多东西不真的“试一把”真的说不清。在本Demo的开发过程中,做出最初的“实例”之前,我都没有意识到“子弹大小”是一个需要动态变化的参数,最初的设计里一拍大腿确定了一个子弹大小就完事了,但真做出来后放到手机上才发现,子弹太小了不是所有人上来都能适应,而子弹太大了后期躲避空间太小,因此子弹的大小应当是随着游戏的进行逐渐变小的。
由此进一步衍生出对“子弹表现形式”的补充思考,发现一味地增加数量和速度是容易让人厌倦的、增加各式类型的子弹可以作为一个玩法的一个特色等等。
其次是对乐趣的评判,评估最初的概念是否如预期一般可行。
好不好玩?有不有趣?如果有趣和预期是否相同?如果不有趣是哪里存在问题?
在脑子里模拟玩一把、真正做出来自己玩一把、真正做出来让别人玩一把,这3种“玩一把”往往会得到差异非常大的结果,如果没有一个客观有形的玩法实例,那么评估玩法到底是否好玩、怎么改进就完全是纸上谈兵,也很不客观。
把实例做出来,自己玩几把,再找其他人玩几把,通过分析这些反馈来评估这个玩法到底怎么样,如果好玩那没问题,如果不好玩,就要好好想想能不能改、怎么改,甚至于及时打住止损了。
其三是踩一些开发方面的坑,为后续开发和功能设计做好准备。
这一条对于成熟的游戏团队可能不是问题,有没有坑开发组的人能够做出评判给出建议,大部分情况下可能都不需要设计的人去考虑,但是对于不太具有经验的团队甚至于个人(比如我),一些后续开发的坑是需要前期踩一踩才能知道“有坑”的。
例如我在使用Cocos Creator里发现其中小球与墙壁碰撞时,如果小球的运动速度相对于墙壁的垂直分量小于33,那么碰撞后的垂直分量就直接消失了,变成贴着墙壁走了(官方论坛求助无果)。由于这个特性以及我对这个问题的解决方式(碰撞时检测垂直分量,如果太小就补到33,碰完了再还原),后续的设计中我尽量避免出现非垂直/水平的墙面(否则不好计算垂直分量也不好还原)。
最后要说的是,核心玩法的实例化重点在于“核心”和“实例”,本质上只要是一个“能玩”的东西就行了,形式、内容都可以进行精简,很多编程方面的“体力活”可以尽量省略。
例如本Demo里有“技能”,但是整个技能系统在最初的实例里是可以没有的,只做了“减速”这一个技能并写死在了代码里,因为这个阶段探究的是核心玩法的问题,考虑的层次尽量往低放,考虑的是“摇杆+单主动技能的躲子弹体验”如何这一点,而非“XXX技能的体验如何”。实际上我也是有考虑过2个主动技能(减速+炸弹),但是实例验证发现高密度的弹幕下玩家没有太多的精力和反应时间去挪动手指按第二个技能,做0/1判断已经足够了。
其他很多游戏也是类似的,卡牌游戏可以通过简单的符号来进行游戏,2D平台跳跃游戏可以用不同颜色的方块来表示场景,而动画、特效、声音一切从简。当然这对于个人创作者比较难受,因为如此简陋的实例估计找不到周围的人愿意试玩和评价……
4-设计目标来驱动游戏流程
在确定玩法本身有趣、设计工作可以继续下去不用回到前面2步后,下一步是给玩家设计一个目标。
玩法本身有趣不代表玩家就愿意去体验这个玩法,人都是由目标驱动的,因为玩法、体验都是很模糊的,而目标是很具体的,任何游戏都需要给玩家设定一个或多个具体目标,玩家为了达成这个目标才一步步体验游戏里的种种内容。
游戏目标如何达成:https://zhuanlan.zhihu.com/p/38419374
游戏的核心玩法往往没有什么很直观的目标,或者目标很单一,例如赢得一场对局或者打败一个怪物,这不足以吸引玩家玩下去并产生持续玩的动力。
以本Demo为例,躲避、生存这个目标本身不够直观、正面,因为生存这个目标缺乏正反馈(只有死了这个负反馈),需要对这个目标进行一定程度的包装,例如将“生存”包装为“得分”,玩家在生存过程中不断获得分数从而获得正反馈。
如何获得分数?计时?反馈太间接不直观,“收集XX”是更好的方式,更能给玩家一种“我主导了这次得分”的感觉,当然2者也可以结合,例如“神庙逃亡”里生存时间(跑得远)和收集宝石都可以得分。
另一方面,除了“游戏进行中”的短期目标,“游戏外”也是可以有长期目标的,例如通过得分来获得金币从而购买道具、升级技能。
在这一过程中,整个游戏的“流程”开始逐渐被设计出来,游戏的系统也开始逐渐清晰,最后这2者会合成一张类似于游乐园“导览图”一样的图,作为设计者我们清晰地规划好玩家在每个系统中的目标、收获,以及系统与系统之间的需求、产出关系。
举个例子,下图是一个简单的RPG游戏的系统关系:
在每个系统中都有自己的目标,同时系统和系统之间又有产出和需求的关系从而联系在一起。有的系统并不是主要的例如升级和装备,只是作为增加战斗系统元素的一部分,因此这些系统的“目标”相比于战斗系统和关卡系统显得很虚从而不具有吸引力,如果希望提升这些系统的重要性和吸引力,那么就要为这些系统重新设计更加具体有吸引力的目标,或者增加系统产出、应用范围,例如升级解锁不同的玩家形象从而使得“获取玩家形象”“收集图鉴”成为升级系统一个目标、打造特定的装备还会触发剧情关卡从而使得装备系统和关卡系统有了关系。
目标的设计其实还很考验对“人性”的理解,很多目标本身可能并无意义,但是在人性的放大下就会变得十分具有吸引力,最典型的例子就是以“攀比心理”和核心的排名、称号等目标。
无论如何,一个游戏总是需要一个或几个目标的,而且最好要“远近结合”,一个长远的目标作为玩家较长时间跨度下对整个游戏的追求,例如“通关剧情模式”“全图鉴”“获得顶级装备”“达到XX排位/排名”,一个短期目标作为玩家每次打开游戏时的短暂追求,例如升一级、完成日常/首胜、维持排名等等。
把这些缕清楚了,再回过头看看自己游戏里是否具有这样的目标?
就本Demo而言,可以设计2个长期目标:游戏分数在好友里排名靠前、解锁全部技能和装扮,2个短期目标:完成一次游戏获得每日签到奖励、尝试提升或维持自己的最高得分。
这就意味着整个游戏需要有排名功能和成长/养成功能,这么一梳理,整个游戏的系统基本就明确了:基本游戏、技能、皮肤、排名。
至此整个游戏的基本框架已经初见雏形了,后续的工作主要有2部分,1是代码上逐步实现各个系统和各个功能,2是升级、优化游戏中的各种体验。
由于总结总是滞后于实际进程的,所以游戏中变化的内容和文章内容很不一样,这里贴一下从上周到这周的更新:
v1.5a-2018.06.21
修改了好友排名界面布局
增加了好友排名得分每周清零功能
v1.5-2018.06.20
增加了好友排名系统
改为竖屏操作
v1.4-2018.06.17
修改了游戏玩法说明,分页展示不同内容
修改了被击中后的动画效果和动画时间,现在小球被击中后会炸开
游戏体验搜索小游戏:弹幕躲避球