LudumDare46-Jam纪实

前言

本着「 Learning by Doing 」的想法,刚入坑一个月的我决定参加LudumDare46去体验完整的小游戏开发过程,由于并没有学过原型实现工具,因此工程上就采用速成的U3D,美术素材部分基于现有素材的二次修改,其余用Aseprite绘制,音乐选自opengameart.org的Dont touch it,个人觉得不错就使用了。

参加的类型是Jam,因为是独立开发并且本人基本不具备美术和音乐设计能力,没有能力参加Comp组,并且48h的时限对我来说还是太紧。

Day1: 构思想法,实现原型

第一天公布早上八点半起床,嗦碗粉到九点Twitter确认主题 Keep it alive。当时U3D技术水平只做过一些2D Platformer的实现,因此我能做的游戏形式并没有多少选择。很快我就决定做2D Platformer了,综合看来这一唯一可行的方案,回到主题 Keep it alive,当时立刻想到了一款忘记名字的游戏Demo,主角的生命进入倒计时,通过击杀敌人可以延续倒计时时长,玩家需要在固定场景内击杀不断涌现的敌人来延续生命(怒火攻心内味)。

但是这种方案对我来说工作量可能较大,而且这个想法比较容易想到,就没有采用。之后我基本上是围绕 it 去想,代入了很多游戏元素,最后决定让 it = the camera,让玩家需要时刻保持游戏镜头的移动否则镜头会持续缩小,而移动会让镜头逐渐增大。

镜头大小影响的核心机制肯定是探索和寻找,因此我没有多想就把游戏目标设为「 在一个开放场景下找到这个游戏的作者,然后Beat his ass off 」。

由于玩家需要持续移动,所以2D Plateformer的移动系统一定要做好,要能够给玩家足够的移动控件,最后我决定参考《蔚蓝》的移动系统,将比较断节奏的爬墙改成了持续蹬墙。

然后是决定游戏的互动机制,因为Jam作品要求小而精,所以在确定奖惩机制后如何互动的问题也就解决了,传统2D Plateformer里的尖刺、电锯啥的元素肯定都有(我也搞不出新的素材)。最后决定奖惩也围绕着核心机制设计:受伤缩小镜头,使用消耗品药片增大镜头。

大概下午1点左右就基本确定了核心机制、游戏目标、移动系统和反馈机制,然后…..我就摸鱼去了,摸到3点开始用U3D做原型,晚上11点基本写完,查文档和论坛找解决方案的过程着实痛苦,那天晚上整个人昏昏沉沉的,像条死鱼。

Day2: 优化机制,搞定美术

第二天啥时候起的给忘了,总之是摸鱼到了中午才开始做。内容是优化原先设计的机制,主要分两点:一是调整手感,二是精简内容。调整手感本质上就是调整一系列动力参数,什么JumpForce, runSpeed, dashSpeed这些, 整个过程有DL炼丹内味了,总之就是不断的试错调整。精简内容上主要是删除了一些游戏元素,删掉了前一天做的磁力装置,考虑到磁力装置更多要求的玩家在慢节奏下做策略决定,然后确定了游戏元素的范围。

然后是美术,这一点我不头大,我完全了解自己的上限,绘制简易Item动画和Tilemap就行,人物动作素材必须找,自己画就过于抽象了。

人物素材就用了一个比较经典的 Virtual Boy 形象,B站不少UP的案例里用的也是这个,然后用Aseprite修改颜色统一素材基调。Item和Map素材比较简单就用Aseprite绘制了(因为Procreate怎么设置笔刷像素点都会扩散)。

Day3:爆肝场景,解决杂项

这一天基本都在做场景,当时还挺急的,一方面既然寻找是玩家的目标那么场景不能太小,另一方面绘制想metroidvania的大场景我没有经验,最后的场景基本就是一些小谜题放至在大场景框架下的不同地方。

而且,在做场景期间我突然想到个点子,让玩家有能力与地图中的Item交换位置,这样玩家就有能力自己改变地形。当时没多想就去肝这个功能去了,最后完是完成了,但场景还有大半没做完,所有有些场景做的比较草率。

然后就是杂项,音乐、UI、发布、托管这些基本都是按照最简单的方式去做的,音乐的话我觉得选的Dont touch it 还是不错的,音效没有找到适合的自己也不敢做就放弃了;UI也是精简为主,一个显示药品余量,一个表示镜头大小。最后就是itch托管和ludumdare发布,当时以为发布的游戏内容可以修改的,就没有挂图片,只提供了个Windows版的,后来发现改不了,有点难受。

关于游戏

以下是我写在KeepTheCamAive的游戏介绍

You going to find the author of this game and beat his ass off(in game!), and always remember Keep the Camera Alive.

↑↓←→ to move; Z to Dash; X to Throw ; C to Switch; E to Eat

这里有个操作想稍微解释下(当时给朋友玩他就没懂),X会扔出一个小球,小球扔到游戏内某些Item会消失(原本想做一个爆炸的动画,但是忘掉了…),此时玩家就与这个Item联系上了,然后再Switch…..

经历反思

整个过程体验其实比较憋屈,主要原因还是自己太菜了,没有能力快速实现自己的想法。而对于Jam而言,我的所有想法都受限于我的技术水平(我不敢跳脱出2D Plateformer),单从技术上去看,也没有用到U3D的一些关键技术URP啊Shader啊,最后有些问题我都没有解决,比如游戏画面的闪白线条,可能是由于素材重叠造成的,但是尝试了一系列解决方案后都无效。还是因为缺乏对图形学基本原理和引擎操作的扎实基础。

收获仍然是有的,自己也算是经历了一款小游戏从设计到实现到优化到发布的全过程,好歹算是做出了个作品。

LudumDare主要关注的仍然是创意和游戏音画的综合表现,但好的创意和想法,在这72h里也需要扎实的技术基础去实现,提高技术的深度和广度是提升Jam水平的重要方式。音画技能的基本技能也需要具备,当然更好的方式是合作。