[[https://www.bilibili.com/video/av16995133/]]
大家好,我是狄学长。今天给大家介绍我这周末参加Ludum Dare 在48小时内独立制作的游戏:Tetris Tank,方块战车。
你需要合理安排下落的方块,组装到你的战车上,消灭敌人不让他们穿过屏幕。同时注意战车重心和不同武器在不同位置产生的力矩,以保持战车的平衡,别让他翻倒。。
就像这样。。。
好吧这是个反例
我将分享一下我这48小时开发经历和心得。
不过首先先简单介绍一下Ludum Dare。 或者他的所谓正确拉丁语发音Ludum Dare。
这是一个在线的游戏极限开发活动。来自全球的游戏开发爱好者在周末的48小时内,通过自己独立或组队开发的形式,完成一个在活动主题之上的游戏的全部包括程序,美术,音效等内容的制作。之后的一个月参与者会在Ludum Dare的网站上相互为游戏打分,评论和交流。
本次游戏的主题是:The more you have, the worst it is. 字面意思就是:你拥有的越多,情况就越坏。
在思考一段时间后,我决定做一个以物理和自由建造为核心玩法的游戏。游戏的点子基本是 俄罗斯方块,围攻,激突要塞三个游戏的杂糅。
确定了游戏的点子后,第一步是制作一个能够验证这个点子是否可行的原型(prototype)。
我一开始在3D环境下做了一些基本的游戏逻辑。发现视角限制,玩家很难去对准和规划被挡在后面方块放置。于是开始重新做一个2D版本,还好代码大部分可以复用。
接下来开始逐一完成像碰撞盒组装,动态控制战车重心,开炮产生后坐力这样一些技术上的细节的程序部分。其中有一些为了取得较好的控制手感和效果尝试了几种实现方案花了一些时间。完成了这些就有了最基本的游戏框架。
这时侯时间还允许,我就着手去实现一开始想到的一个性质:就是方块会被敌人的子弹破坏掉落,并且以这个方块为地基,通过这个方块与底座相连的其他方块也会因此掉落。我觉得这个性质能增加不少乐趣,
就像这样。。。
具体的实现是:战车有一个网格系统来存储车上的方块,这样每个方块都能被方便得被他的邻居访问。每个方块自身又存储他的子节点和父节点。当他被破坏的时候会做一个图的遍历,破坏掉他所有失去连接的子节点。
我还做了鼠标点击破坏方块,和画出表示连接关系线段来帮助debug。
到此,游戏的主体,也就是这个战车就做好了。不过所剩的时间也不多了。
好在最后的子弹,敌人,视角控制部分都比较常规,还是相对驾轻就熟一些。美术方面,选用像素风格,画了一些方块,武器,和敌人。虽然简陋,画面的整体效果还算不错。再加上一点明显是凑数的UI,游戏终于完成了,或者说其实是时间到了,本来还想录一段电吉他的riff做bgm的。不过总的来说,虽然中途几次想要放弃,这次极限开发的结果还是挺圆满的。我对这个作品还是比较满意,当然作为一个48小时作品它免不了有许多有待打磨的地方。也发现自己的2D Sprite Sheet这种形式的美术技能上的不足。
这是我第一次参加Ludum Dare这种线上形式的Game Jam。相比之前参加过的在线下聚集组队的Game Jam或Hackathon,Ludum Dare在完成作品之后大家对其他作品试玩,交流上很有优势。在其他线下活动,基本只有在最后大家已经很疲劳的可以看到其他人的作品,而且限于时间并不能亲自试玩。而Ludum Dare的在线网站,有一个互评机制,你评价别人的游戏并留下高质量的评论越多,你自己的游戏将在游戏列表的越顶端。通过互评,活动的活跃期从一个周末被延长到一个月,大家也有更多的机会发现别人的优秀作品并真正亲手试玩并发现更多的乐趣。
当看到有人在你的游戏下的评论包含了这个巨型坦克的游戏截图和长长的测评意见的时候,当然是非常开心。
非常推荐游戏开发的老兵,对游戏开发有兴趣的朋友,忙里偷闲参加这类活动。毕竟做人呢,最重要的就是开心。
想要在线玩方块战车游戏,或是了解我之前的各种作品,欢迎点击下面的链接
游戏itch.io页面:https://shrekshao.itch.io/tetristank
LudumDare游戏页面 https://ldjam.com/events/ludum-dare/40/tetristank
我的B站频道:https://space.bilibili.com/53988883#/
网站:http://shrekshao.github.io/all/
Github:https://github.com/shrekshao
下次再见。
点子很赞