几天前,在上海的Unity站参加了今年的Global Game Jam。趁着余热未消,做一个简单的总结。

Team和作品

我们这次的队伍组合是两个程序(我、子豪)和一个美术(猫),没有策划hhh。在游戏设计上,我们基本上是一起出力。于是最后的Staff表是这么写的:

这次的主题是 Transmission(传输)。这个词的意义其实相当广阔,可以理解为物质的传输,信息的传输,病毒的传播……再推广一下,甚至可以认为所有的交互过程都是 Transmission。

一开始的脑暴:

后来我想到一个idea,可以让一个东西在不同的角色之间传输,玩家的控制权也在角色之间不断转移,当你侵入你的敌人之后,你实际上就变成了它。大家都觉得这个想法很有意思,于是在这个基础上发掘出了一个基于 Action Platformer 的玩法。最终目的是想要做出一个比较混乱和动态的战局,我需要在战斗中不断侵占他人的身体,并利用其特性来应对战局。

最后的作品看起来是这样的(极简像素风):

在遭受丧尸病毒爆发的太空飞船中,计算机系统的AI触发执行了’末日协议’(DOOMSDAY Protocol),它会不择一切手段地让飞船回到地球,获得’安全’。你就扮演这个AI,通过在不同的机器、人类、怪物的意识之间穿梭,玩家将在飞船中杀出一条血路,发出求救信号。

最后的结果还算令人满意,至少比去年的GGJ结果好不少。我们得以把整个流程打通,并实现了4个可操作的怪物,还有完整的开场动画和完结动画。在最后展示的时候台下一阵阵的豹笑,以及热烈的掌声也让我们很受鼓舞(还听到有人在小声说完成度好高,不要太开心ww)。当然,在和其他的GGJ优秀作品比较之后,也明白我们还有非常非常多改进的空间。所以,还是好好想想在这个过程中有哪些可以做的更好的吧。

试玩可以戳这里:末日协议 | indienova

开发阶段

在第一天晚上结束讨论之后,我开始细化怪物设计和control scheme,而子豪开始搭角色控制器的底子。猫简单出了几个角色的动画,在讨论之后决定降低像素数,使用极简像素风,这样的话可以更快的出动画,在有限的时间里完成更多交互。

第二天的大部分时间在调角色之中度过(毕竟我们整个游戏的核心就是角色之间的战斗)。我主要负责调动画和AI方面的工作,而子豪负责各个怪物不同的操作方式。猫那边则做了共计7个角色的行走奔跑攻击受击动画(虽然我们最后只来得及做4个角色)。晚上的时候,基本的交互差不多完成,我补完了最后一个怪物的AI,初步进入润色、关卡设计阶段。

第二天晚上我们在宾馆爆了个肝,尝试学习Timeline并用它制作开始的过场动画,但无果。我在睡了两个小时之后起来用Animator手撸了开场动画的一部分,然后睡觉。

最后一天其实是效率最高,也是最刺激的一天,因为我们还有相当的润色工作没有完成,而且关卡设计完全没有开始。我先是把开场动画做完,然后用TileMap快速的撸了一个关卡的原型(其实相当快,用了只有半小时左右),然后可以玩的内容就基本完成了。在试玩几波、改进了几次关卡以后,猫拿去把关卡一次画成型,我则去做最后的过场动画。子豪在这个过程中则一直在为游戏添加各种润色,包括传送效果,音效,屏幕效果……在离提交还有大概20分钟的时候,我们终于宣告完成,打包上传。

回头这么一想,其实开发的过程相当的凌乱。尤其是第二天,基本上是看到眼前缺什么就去写什么。不过还好我们的并行开发做的比较好,最后还是很好的把整个游戏流程做了出来。

感想

1 关于工作量预估

在细化设计阶段,我们其实想的有些多了。一开始我们想让每个角色作为玩家的时候有主攻击和副攻击,总共有7个角色,还有一个你切换角色之后会看到它心中所想的设定……这些我们最后都没有搞出来,因为时间完全不够。最后美术倒是画出来了7个角色的完整动画,但是只做完了4个,因为调试游戏中的攻击行为、动画表现和AI的工作量确实是不小。

其实这次比以前还是不小的进步。一开始做游戏的时候想法总是天马行空,但实际去做的时候却发现阻力无穷大,根本做不出来。慢慢的,想法就会和实现方式开始靠拢,并且尽量只抽丝剥茧保留想法的核心,把细节推到后面去考量。关于如何在开发过程中调整方向和工作量,是一个需要持续去实践和体会的问题。

2 积累在平时

我们这次使用了大量的第三方库/自己之前造的轮子:

由于之前自己一直在写Cocoon,正好也是一个genre非常类似的横版平台游戏,其中的大量工具可以直接用上(MetaSprite动画导入,TileMap关卡编辑,BTScript行为树脚本),可以说是事半功倍。

这也说明了平时多进行各种类型游戏制作的积累,可以大大的提高开发效率。如果GGJ是一场考试,那平时做游戏的过程就是考试的准备。

3 审美 >> 工作量

在这种时间极端受限的情况下,人自然会绞尽脑汁来降低工作量。比如说使用big pixel。但是我们很意外的发现,即便是这样的超低像素,最后玩起来也很愉快。做特性也是如此,很多时候真正好的东西不来自于工作量的堆积,而是来自于设计者好的审美和大量的减法。

4 关于过场动画

这是我第一次尝试用Unity做过场动画。实现的可以说是非常ugly了。通过Animator驱动主摄像机、场景和物体,然后把数据都放在一个clip里来达成动画的目的。中间涉及到过场动画无缝切换到gameplay的过程,也做了大量的dirty work。

感觉过场动画还是一个很可以研究的主题,Unity新推出的Timeline功能也很值得学习一下。

5 Final

做的过程很杂,因此最后的总结也很杂。或许做游戏就是要在无数纷繁的细节中保持最初的想法,然后把自己的设计以尽可能最简洁的方式表现出来吧。

GGJ让我们摆脱了平时慢慢堆东西的节奏,尝试了一次“极限开发”,也对游戏开发过程中的很多问题有了更深入的思考。这次自己给出的答卷比去年好一些,勉强可以打个及格分吧。明年GGJ再战,成绩会更好!

对了,unity公司的饭真**好吃!!