Game Off 2020 参赛有感

官方明明给了我一个月的时间做游戏,我愣是把它做成了一个极限编程大赛 😦

又参加了一次Game Jam。Game Off是GitHub官方庆祝由Lee Reilly在2012年创建并由GitHub赞助的开放源代码举办的Game Jam。所有代码必须开源在GitHub上。不过有意思的是,好像国内知晓这个比赛的人并不多。

从CIGA、js13kgames、ludum dare 到这次Game Off,也算是第四次参赛了。本来想着,这次用一个前端引擎Phaser做一个联网策略游戏的,没想到被自己的拖延症拖成了一个48小时极限编程大赛。

游戏主题是Moonshot。我第一次看,以为一定和月亮有关,加上官方宣传的时候放了一个美国登月成功的视频,整得我以为限定的很死。没想到Moonshot还有另一层意思就是,"an extremely ambitious and innovative project"。于是我第一个想法就是,人类为了抢夺太空霸权,然后进行地球表面的战略部署。整体思路做成一个战略4X的rouguelike。

11.2拿到题的时候,那叫一个野心勃勃,那叫一个雄心壮志。心里想的是文明,结果11月底上手一做,人都懵了,连六边形地图都铺不好。所以最后又变成了,48小时的极限开发。在最后48小时,灵机一动,把Moonshot干脆理解为Moon Shoot,做了一个本地两人对战的小游戏。

下面说一下制作中的体会以及遇到的bug:

首先,引擎采用的还是Godot。本来想用Unity的,结果一天一认证还是给我恶心坏了,我宁愿用Unreal卡得不行,也不想看它用中国特供来恶心个人开发者。

游戏主要灵感来源是GameToolKit某期视频里,提到的打砖块和乒乓球的结合。

游戏分红蓝两边,每个玩家都是由自己颜色的砖块组成的板子,每块砖有固定的生命值。场地最中央有一个月球,场地内有小球在快速飞行,如果砖块被小球击打中,小球会反弹,砖块失去一点生命值。如果小球是因为某一方的反弹而击中月球的,那一方加一分。

游戏结束条件是任意一方的玩家砖块全部死亡,但是砖块全无不代表游戏失败。游戏胜利条件比的是谁击中更多次的月球。也就是说,我鼓励对战双方通过消耗自己的生命来碰撞球,让球击中月球。领先者甚至可以通过“送死”的打法来快速结束游戏获得胜利。

我想传递的精神其实是,在大国竞争的过程中,双方的领导者和人民,必须有着绝对的牺牲精神,才能换来领先和胜利。(没有暗示 😉

放张游戏内截图吧(UI没时间做了,太懒了)

过程中我确实遇到了很多bug,不过也搞清楚了很多以前一直模糊的概念。

例如都是物理碰撞体,StaticBody2D、RigidBody2D和KinematicBody2D有啥区别?这里也简单说一下:

RigidBody2D一般是不用代码操控的、需要给出实际物理量的(质量、重力系数、弹性系数、粘性、冲量等)、实现模拟现实2D物理运动体的节点,它的运动主要由碰撞、物理引擎计算得到。一般用于实现球体、玩家主要互动的对象。

StaticBody2D一般是物理引擎中不需要运动的主体,参与碰撞检测但绝大多数情况下不会响应碰撞而移动。它们通常用于属于环境的对象或不需要任何动态行为的对象。一般用于墙体、不可破坏的地形等。

KinematicBody2D就是一个简单的提供碰撞检测的物体,但是没有任何物理特性。所有的移动、碰撞响应都必须由开发者通过代码来实现。一般用于实现主角、玩家操控的对象。

而且顺便温习了一下线性代数,例如求一个向量单位向量、球体反弹时候主要处理是沿着法线回弹等。

不过游戏仍然有很多bug,例如在砖块只有一滴血的时候,没有发生碰撞检测,砖块对象先于碰撞的发生而回收,导致球体直接穿过该砖块。这都是我不想发生的。

包括技术上的瓶颈,在我和室友试玩的时候,因为我鼓励玩家通过地形(四边的墙体和中间的月亮)来改变自己的形状,这样可以形成全包围或者别的办法不让对方得分。室友给出了,加上重组的功能,让玩家重新组装,要不然到后期操控感太弱。不过由于离交稿期近,我也没有快速想到解决方案,只能用把所有砖块的血量赋予一个砖块,其他砖块全部牺牲的办法,实现1打9的壮烈举措。

提交的参赛作品里,也有很多有意思的作品,我虽然是一个小渣渣,但是这个作品对我个人来说意义非凡:

  1. 我的确可以熟练使用Godot了;
  2. 这是我严格意义上,第一个让周围人觉得很有意思,有持续可玩性、拓展性的游戏;

最近太忙了,大三操作系统、数据结构等各种课设忙的我喘不过气,做游戏仿佛是我在忙碌中让我打开心灵透透气的小契机。我享受创作、我享受别人玩我游戏露出的笑容。我想,这和我选择未来投身于此的重要原因,我把游戏一直看作是创作者的内心表达,它和文学、美术、影视、音乐一样,向世人传递开发者的思想,是玩家与开发者的交流通道。我热爱它,我会坚持走下去。

最后,上链接,恳请各位的批评指正以及bug反馈。(这次主要上传的是html5版本,不过后续有同学反映html5加载速度太慢,我又上传了macOS版和win_64版本)

**GitHub Link: ** GitHub @scyq

Game Off Page: GitHub GameOff Submission

itch.io Page: @scyq

个人博客: 博客园

知乎专栏: 知乎专栏

可惜,未来很长一段时间可能要放弃Godot这么好的引擎,还得专用Unity或者是Unreal。而且为了项目和图形学的学习,可能最近没有时间做游戏了(我连Unreal都下好了喂!)博客和知乎专栏可能会更新闫老师的GAMES101-现代计算机图形学入门的课后作业的demo和解答。

祝大家工作顺利、生活愉快。

posted @ 2020-12-05 14:21  scyq  阅读(310)  评论(0编辑  收藏  举报