Artorius

写在 GGJ 2017 回来

January 24, 2017 | 10 Minute Read

我又去参加了今年的 Global Game Jam 上海站,鉴于知乎上已经有很多「参加GGJ17是怎样的体验」的答案了,我就不多说这次活动主办的怎么样了,我要重点流水帐记录一下游戏是怎么做出来的。

组队不组策划(活动前)

原先 15 年和 16 年的 GGJ 都是同样三个人,除了我,另一个是在游戏行业摸爬滚打多年的程序员(为了讲故事简单,让我们叫他连连看程序员),还有一个 BAT 程序员(同理,叫他服务端程序员)。16 年下半年决定报名 Indieace Game Jam 的时候因为有很要紧的事情所以没有去参加,那次在连连看程序员的带领下,发展了一些新同学。于是这些同学加入到了 17 年,阵容就不再是清一色的程序和汉子了,服务端程序员身体抱恙,经不起通宵的折腾就没有来,于是另外加入了一个程序员,和三位美术。

主题 WAVES(活动第一天)

因为是周五,所以我请了半天假,在 4 点前和连连看程序员一起准时到达了,另一个新加入的程序员(就叫小霸王程序员吧)已经先到了。随后三个美术在主题公布后从全国各地(并没有)赶到会场。

一看主题是 waves 我就很高兴,这题目好啊,充满了想象力啊!然鹅,这种高兴劲头并没有持续多久,很快我们就发现很难想象出一个令人满意的创意了,从5点12点,我们整整花了 7 个小时,才决定下来做一个什么东西,虽然官方的视频里就告诉我们不要花太多时间脑爆,好游戏也是来源于烂点子,但是你也得有个烂点子吧……

我们的脑爆从分阶段的讨论元气波、引力波、脑电波、地震波甚至挥手、一波一波的敌人等从大方向发散的话题无功而返之后,开始了一些具体例子的深入,比如转动屏幕躲障碍物形成波形轨迹, RGB 三种波通过不同的配比产生特定的颜色,比如牵住波形一个节点改变之后的波形(以达到不知道什么目的),比如迷宫里不同颜色的手电筒看到不同的版本甚至帮助打开对方的视野等…… 然后花了两小时聚焦在了一个无意中说起的点子,不打算详细说了,总之大概是个大乱斗游戏,你可以发 N 和 S 两种波,同极相斥异极相吸。乍听之下太有意思了,于是试图一个问题一个问题解决随机性、平衡性、游戏性等各种各样的问题之后,终于我们意识到,这是一个只有石头剪刀的石头剪子布游戏。很难让游戏真的变得很有趣。(要是现在在看的你觉得有意思,我们也可以一起再聊一下!)

虽然浪费了太多时间,但是最后美术大大说了一个点子,我们一下子觉得是个很有意思的事情。假如世界上有一种只能听声音,却没有视力的,行动缓慢,吃人的动物(对,知道循声者的朋友你稍微安静一会儿),我们可以让多人一起对战,玩家从一侧出发,以跑到出口为目的,脚步声会吸引这种动物的同时,可以丢东西发出噪音引开他们。我们最初的点子如图所示。

这样 4 个出发的勇者,在突破各种障碍,躲避各种动物,吸引他们走开的同时,还挡住了其他玩家的去路。很平衡是不是,我自己要有好处的同时,就给别人带来了坏处,这种互相牵制的赶脚,一定会很欢乐的。party game,几乎成了我们后来讨论下来的大方向了。到 12 点前的最后关头,我们又确认了几个细节。比如操作方式只有方向键和另一个按键(所以也决定先只能 1v1)、丢出去的东西的瞄准方式(光标按一定速度自己转)、丢出去什么东西(除了最终版本里的鸡,我个人还很希望把这个做进去)。

最重要的是,我们一定要让丢出去的鸡,足够热闹足够多(所以最终版光标转到某个角度后会在一定时间内连续朝那个方向猛丢),也要让僵尸足够多。一个欢乐的 party game 就对了。

艰难的分工(活动第二天)

坐回电脑前,仔细一想,连连看程序员在我们三个沉默很久后(三个美术先回去休息了),说耦合好高,好难分工。对。按照以往的经验,我们都是从或寻路或 AI 等等方面让程序员可以脱离游戏核心玩法,开始堆一些有的没的的代码。但这次定下来的游戏,很难分出和游戏 scene 不相关的东西。

也没多讨论,大致糊里糊涂代价确定没有覆盖对方的工作的前提下,就开始写代码了。连连看程序员开始搭建整个游戏的大框架,镜头啦环境啦僵尸啦主角啦操作啦各种繁杂又不可或缺的事情,我要写一个碰撞之类的东西,小霸王程序员则是写僵尸的寻路算法。经过各种尝试(因为我和小霸王程序员一年也就这 48 小时会碰一下 Unity,进度真的很慢),最后我保留了 7 行代码,就把要做的事情全都做完了(真的 unity 封装的太好了……)。

潦草的去宾馆睡了 4 个小时,早上重新开始工作之后,就是美术大神们开始带节奏的时候了。于是出现了以下这样的稿子。(好的,前两年都是我强行做美术总监的)其实我还是第一次知道,从这样的初稿,到实际的稿子中间,他们还要用 maya 建模,然后在重新截图,然后再 2D 修细节等等…… 涨姿势!人物和僵尸和骨骼动画一起被连连看程序员整合到了游戏里。

我在写发射子弹的模块,随便怼了一只鸡丢到 scene 里开始旋转光标、发射子弹。小霸王程序员继续和僵尸走路过不去,值得欣慰的事情终于发生了,到了下午 16 点的时候我觉得我们三个程序必须把代码合一下要不然得出事。我和连连看程序员的代码顺利合上了,小霸王程序员大概是电脑太破,在他那里行动缓慢的僵尸,到了别人电脑上以光速把主角活生生推到了无限远的地方…… (当然我们也快乐的欣赏他们怼了很久)。值得欣慰的是,最后只有 4 行代码被保留了下来(真的 unity 封装的太好了…… x2)。

这里有个视频,视频里三段,就是我、小霸王程序员、连连看程序员的三个代码。合好代码,就是连连看程序员一个人 solo 超神的时间了,在他完成游戏主要机制之前,所有的细节都没法做。小霸王程序员去趁机睡了一会儿,而我…… 打了会虚荣……

喝红牛加细节(活动第三天)

连连看程序员奋斗到 4 点,各种死亡判断啦,吸引怪的范围啦,游戏积分啦等等的功能被加了进来。(关于这阶段的痛苦,必须让他再写篇文章介绍下……)之后 4 点到 6 点我把重生点的计算方法加进了游戏里。因为重生这个事情啊………… 算了还是让他写吧。究竟原地满血复活,还是躲进安全区域,还是震开敌人,还是无敌无碰撞…… 真是好难抉择…… 最后的做法是,计算出哪里的怪少,就丢到哪里,1秒无敌后(可以跑动),重新加入战斗。(2017-02-06 更新:连连看程序员真的写了篇文章《2017GGJ游记》

大概 7 点不到,米兰被那不勒斯 2:1 击败后(连连看程序员的大失策就是这段时间睡不着然后看了我喜欢的球队的比赛),我先后以坐着、趴着、躺在凳子上三种姿势,睡到了 9 点一刻完美错过了早饭。醒来的时候,他们俩,已经把我上面提到的各种死亡、重生逻辑全都实现了一遍…… 必须说的是,最后试下来,都不如第一感觉来的好呀…… 明显这段时间连连看程序员精神不佳,情绪悲观。

美术大神们,各种继续超神,更多的角色,更多的动画,更丰富的场景,随着不断变化的需求(安全区啦、障碍啦、加如计分系统啦等等)不断的输出战斗力。(可惜丢猫、丢狗、丢猪的愿望最后还是因为时间紧迫没达成。)而这整个上午我的状态都不错,朝向啦,会自己乱跑的僵尸啦,走路的声音啦,各种细节一个一个加进来,游戏越来越完整了。这一天也是诞生了最多梗的时候,比如僵尸的目标里,两个主角和落地的鸡,是三个不同的变量。讨论中一句「道理我都懂,你和我和鸡到底有什么区别!」笑得大家不行。「你能死了记得跟我说」也不错……

真正让这个游戏变得热闹的时候,还是鸡和发出声音的波加入游戏的时候,几乎都是游戏开发到最后我们才觉得必须要加了不加来不及了。没想到让整个游戏瞬间欢乐起来,听觉和视觉上都一下子丰富了起来。真的要谢谢来我们这里看我们游戏的朋友们,你们不但给我们鼓励和虚荣心,还给了我们游戏一个新名字「你们是不是做那个僵尸搞鸡的游戏的呀?」。

过程最欢乐 (活动展示和后续)

展示的时候很紧张,以至于我都忘了告诉大家我们这个游戏是两个人在对战,希望他们有看懂。至于为什么之前几次都还好,这次这么紧张…… 我觉得是因为团队大了,大家的努力都很多,甚至还有个美术mm 是发烧坚持的。感觉责任重大有没有,要是没有说好愧对列祖列宗列为队友有没有!当然我自己还是觉得我没说好,已经带了提纲生怕自己漏说什么。

为了弥补损失,所以我今天花了很多功夫就是做一件事「让大家知道我们做了一个好游戏」。GGJ 永远是过程比结果更重要,但能把我们做的东西让大家看到,能把我们做这个东西的过程和大家分享,也是加倍快乐的一种方法吧。

另外展示是除了自己做游戏外,我最喜欢的 GGJ 环节了,那个天马行空,那个画面,那个声音,那个兄贵(什么?!)。不得不说,很多我们想了,但是想不清楚的头绪,大家都给了好漂亮的答案,想的很深入很有趣。尤其喜欢 Give you some color see see,真的太有意思了。另外留下非常深刻印象的是OverwaveWarcraft of WavesWaveform Force FieldWaves of Love & Peace(兄贵本尊)。GGJ官网能找到所有上海站的游戏。另外印象很深的是北京站有个游戏叫Gravitywave,太震撼,看视频觉得有点我们 N S 磁场的意思,是我想多了,各个细节都好完美,想出波决定重力这个点子的王八蛋活该长命百岁!说起来 源代码也直挺挺的扔在那儿,我就喜欢开放的精神!另外北京站的 Blind Blade 也是我今年的心头好,然后我最高分只有 13 分,有兴趣的同学可以在浏览器里直接玩 ,气质满分。

那么最后,我说说游戏本身。主角和卖鸡的妇女,原则上是互怼的,除了用方向键可以自由行动外,还可以在光标所指方向射鸡。0.4 秒内,射鸡的方向不会继续转,你问我有啥用意,纯粹为了热闹。

两位主角走路时候产生的声波,会吸引僵尸靠近,但因为主角比僵尸跑得快,所以僵尸只能追到自己听觉所及的最后听到主角脚步声的地方。

投掷的鸡,在落地后,发出凄惨的叫声,也会吸引僵尸过来,利用的好的话,不但可以(用我们队友的话叫)风筝一波然后绕背,还能把僵尸拉到对手的身边(玩过猎人的朋友介绍以下这叫什么?)。

最后游戏热闹的战斗场景就是这样的。

最后我要放一个 游戏在 GGJ 官方页面的链接,你可以找到 mac/win 版的游戏可执行文件。也可以找到源代码(但因为源码实在太烂了所以没什么价值的)。鉴于 GGJ 托管文件在 AWS S3 上国内访问缓慢,百度网盘 也必须给一个……

PS:我有没有说我们的游戏叫《队长别跑》,就因为我第二天玩虚荣被吐槽了啊………………

PSS:明年的 GGJ,下半年的 Indieace Game Jam 也一定会去!缺音效和音乐大神!可以兼职可以 remote 嗯嗯!!!

PSSS:忘了放合影!