Menu

独立游戏之旅

转载,同组策划写的

如果你问我参加Global Game Jam是一种什么样的体验,我会说:就像是在跑完一场马拉松之后立刻去参加一个披萨派对。

Before Jam

这次的GGJ活动是在上海的Unity站点参与的,因为很早之前就有了参与这次GGJ的打算,一直有在留意相关的信息,所以在Eventbrite放出票的第一时间就去抢了一张。

那时候我并不知道身处的广州和隔壁的深圳都会有GGJ的场次,我最终还是选择了听从命运的安排,前往上海,在最初报名的Unity站点参与这次GGJ。

动身的前一天,邮箱里多出了一封Unity GGJ微信组队的邮件,邮件不是官方发的,但我还是立刻扫码加到了群里。

有了这个沟通渠道,对活动的期待也提升了不少,虽然一直选择暗中观察,但看到群里的小伙伴们热火朝天的讨论,那种感觉就像是马上要过年了一样。

唯一没有想到的是,建立这个非官方交流站点的Jimmy大哥,会在两天后成为一起Jam的队友。

活动当日,我早早的从住处动身前往Unity大楼,一路上看着微信群里关于这次活动的种种讨论,不知不觉就到了场地附近。

这时候一个国际友人的加入瞬间改变了聊天的画风,他是来求助的。由于Unity站场地的限制,必须在EventBrite和GGJ官网上都进行了注册才有参与的资格,已经在路上的他并没有在EventBrite上注册,所以他想知道自己究竟能否参与这一次的活动。

幸运的是他最终得以参与这次活动,而我也有些在机缘巧合之下结识了这位美国朋友。

图上的人之后都变成了队友

进到活动场地的时候,里面并没有很多人,并不算大的房间的周围,围着一圈桌子。

在我还在好奇这个房间如何塞下80个人的时候,一个衣着考究的人走了进来,在我身后的桌子坐下,在这个场合里,他的一身装扮等同于把“我是美术”四个大字写在了脸上。

刚想凑上前去攀谈几句,他便匆匆的走了出去,没过多久他的身边又多出了一个头戴发带充满元气的小哥。

空间不大的房间被陆陆续续前来的人填满,公布题目的神圣时刻也逐渐逼近。

首先是来自主办方Unity的“传教”环节,另我印象深刻的一点是,主持人一再强调,GGJ不是一个比赛,而更像是一个聚会,希望每一个到场的人都能在这里玩的开心。

也许正是因为可以保持这样的心态,让我在之后度过了无比愉快且收益颇丰的48小时。

屏幕上终于出现了关于2018GGJ题目的视频。视频刚刚放了十几秒钟,场地里关于题目的讨论已经此起彼伏了,讨论的内容几乎都是这次的题目难道又是Wave?

终于Transmission出现在屏幕上,谜底揭晓。

在主持人的号召下,几乎所有的人都从这间屋子出去,看其他的活动场地,惟独我先前留意到的那个美术大佬,发带小哥和Jimmy凑作一团,留在了这间屋里,在他们先前的聊天中,我偶然听到他们缺一个策划,只身一人前来,举目无亲的我刚刚好想要扮演这么一个角色,就打算凑上前去,看看能否和他们一队。

他们欣然接受了我的请求,一同加入的还有之前在群里求助的国际友人,就是通过这样简单直接的方式,我找到了我的队友。

Three,Two,One,let’s Jam!

Jam的正是环节是从团队成员的彼此认识开始的,由于团队的特殊性,我们决定用英文进行自我介绍并用英文名称呼彼此。

自我介绍环节过后,我对我的队友有了初步的认识。

Jimmy大哥有着丰富的Unity开发经验,经常参与Unity活动的他算得上是Unity的粉丝。

英伦风装扮的美术Sennett,是一个2D3D全能的美术,鉴于他的名字过于拗口,我们又给他起了一个更具特点的名字–Shader哥。

头带发带的Vector是一个激情满满的程序,同时他也是我们当中唯一一个有参加GGJ经验的人,另外以外的是,他也是从本身就设置了站点的深圳赶来了这里参与GGJ。

而那个国际友人Marcus,则是一个来自美国的朋友,他有着丰富的写作经验(他有独立创作已经出版的小说)。

至于我本人嘛,自诩为什么都懂一点的策划(事实上什么都不懂)我告诉我的队友我可以在需要的时候顶上去。

Shader哥身上的独特气质让我们一致推举他作为组长,事实上他是我们当中年纪最小的。

Marcus的独立小说

在组长与主办方进行了必要的对接工作后,我们迅速的开始了关于主题的讨论。

5个人的团队在GGJ里面已经算大的了,如何在短时间内想出一个既符合主题又能获得大家一致同意的idea其实是我们面临的最大挑战。

在我看来用才华横溢这样的词来形容我们组的每个成员丝毫不为过,但也许正是因为这样,每一个成员都对我们即将开始的项目有着各自的追求。

开始的讨论异常欢乐,大家各抒己见,分享着对与Transmission的见解。

Marcus分享了两个不错的思路,其一:他认为构成Transmission的重要一点是,它需要有发起方和接收方,只有两者都存在的情况下,传输才能够成了。

其二:他觉得感染在某种程度上也是传输的一种,这样就自然而然的想到了僵尸这个主题。

Marcus的想法很有见地,我们也沿着他的思路进行着进一步的探索。

我觉得在传递中强调两个主体的想法非常有趣,并提议做一款合作游戏。Jimmy则热衷僵尸感染这一主题。

在我们讨论的过程中,Marcus的思绪一刻不曾停下,我们还尚未决定游戏形式的时候,他就为这个还只有些轮廓的游戏雏形披上了一层华丽的科幻外衣。

显然,我们的讨论不算顺利,虽然整个讨论的过程无比和谐,但它并没有为将我们带到正确的方向上。

Shader哥搬出了曾经看过的论文试图向我们解释究竟该怎样一步步将机制变成完整的游戏,Marcus仍在试图用一个完整的故事去传达Transmission这个概念,Jimmy大哥是最早收起自己想法的人,显然他明白在当时的情况下什么才是真正应该做的。

并不是隐去自己在这次讨论中的作用,只是以描述者本人的身份,我很难将客观的评价自己当时的举动。

我似乎否定了很多次别人的想法,也搬出了几个曾经玩过的合作游戏,但最终仍然没能够拿出一个成型的主意。

最终讨论出的一个看似可行的方向是做一款本地合作的3D平台解密游戏,但我们在讨论如何设计两个不同人物的技能的时候,又再一次的陷入了僵局。

我们有个看上去可行的主意,做一个合作版的多人推箱子,但试图将这个想法落地的时候,并没有一个可行性高的方法出现。

(上面两个是我向队友推荐的符合我们讨论主题的可以作为参考的游戏案例)

不知不觉中已经接近11点钟了,这是可以呆在Unity大楼中合作开发的截至时间。我们决定回去继续在线上讨论,显然大家都很清楚,如果今天晚上没法对想要制作的游戏达成共识,那我们能否在第三天按时提交作品都是一个大问题。线上讨论并不如相信中的那么顺利。

每个人似乎都已经对当前的状况不大满意,Marcus在我们的中午讨论中插不上话早早的就去休息了,shader哥也提出了一个新的想法:我们还是做一款2D游戏比较合适,他建议我们参考Abi做一款游戏,这个双角色的剧情解密和我们之前的设定非常接近,但其实组里的其他人并没有玩过这款游戏。我建议起码先去了解一下这款游戏在做讨论。

Shader建议的我们可以参考的游戏蓝本

玩过之后,我再一次发出了反对的声音。Abi是一款冒险游戏,这种通过故事驱动的解密探索游戏我个人觉得在两天的时间里是不可能做的出来的,我甚至可以想象到假如做了这样的游戏,结果展示的时候就只能靠一些虚无缥缈的概念来解释自己的游戏是在做什么了,即使是最经典冒险游戏,如果去掉世界观和背景故事,拿出一个单独的场景给玩家来玩,也很难让人觉得有趣。

为了佐证自己的观点,我找了两则视频发到的群上:一则是Extra Credits给2017GGJ的参与者的一些建议(如果你未来打算参与GGJ,十分推荐观看,虽然里面的观点不适用于所有人,但确实能让你在活动中保持一个良好的心态),另一则是上届GGJ的作品集锦。

午夜如果醒着就必须要高效,虽然要做什么样的游戏还未定下来,作为程序的Jimmy大哥已经开始在Assets Store上找我们可能会利用到的素材了。

Vector同样没有闲着,他将自己关于之前3D合作解密游戏的概念写了下来,发到了群上。虽然方案略显简单,但不得不说一个落在纸面上的方案已经并之前的讨论好太多了。

但我还是觉得Victor的方案太简单,我想要一点新的东西,一些别的游戏里没有的机制。突然想到了在Unity的时候Marcus提到的一点,双人合作游戏的中一方对另一方的限制,我觉得这一点很有趣,就决定尝试基于这个想法设计一个玩法。

这时候我想到了曾经玩过的一款游戏“The Swapper”,这款游戏的美术风格和Marcus给出的的世界观设定非常像,太空背景下的科幻风格游戏与他的想法如出一辙。

“The Swapper”同样是一款横板解密游戏,游戏的设计思路也相对简单,游戏的主人公拥有一把克隆枪,可以在射程范围内产生自己的克隆体,同时主人公可以代替任意一个克隆体。

游戏中的所有谜题都是基于这样的机制设计的。而我想做的事情就是把克隆这个核心机制替换掉,用一个新的机制取代它。

按照这个思路,我决定保留两个角色的设定,同时保留以宇航员和他的飞行器作为玩家控制的角色。我对飞行器做一个限制,只允许它在宇航员发射出的信号的范围内才能获得被控制,否则就会失去动力而下落。玩家需要控制发生信号的方向,宇航员的移动以及飞行器的移动。通过配合完成解密。

想出这么个玩法并没有花费我太长时间,因为队友已经为我铺垫了太多东西了。我迫不及待的将这个想法分享给我的队友,那个时候还在线的只剩Jimmy和Victor两个人了。

我尽可能详细的跟他们描述了我的玩法,Jimmy立刻理解了我的想法并表示愿意按照这个思路进行开发,Victor则觉得应该按照先前自己设计出的方案开发游戏。由于还有两个成员并不在场,我们决定明天一早到了Unity大厦再下最终的结论。

因为还完全没有对玩法进行验证,我决定先简单的设计几个关卡,验证一下这个玩法是否可行,但是简单的画图很难去判断游戏中的操作对游戏的影响,所以我决定将重点放在解密上。

如果我在游戏中加入的这个前提有足够的空间来设计谜题,那我觉得就是可行的。于是我开始想如何给这个限制条件加入更多的东西。波的反射是个既符合主题又方便设计谜题的元素,我也决定利用这个条件进行关卡设计。当我画完前3个关卡的草图的时候,我觉得已经有了足够的信心在明天说服我的队友按照这个思路进行开发了。

Day 2:New Beginning

第二天早上8:40分左右,我再次来到了Unity大厦。在电梯上,我和另一个一同前往活动场地的聊了几句,因为我们还完全没有开始开发,所以就想知道其他组的情况,看看自己到底落下了多少,在我提出了我的问题之后,那个朋友告诉我他是Solo的,项目已经有一定的进度了。

那时候脑海中有两个念头闪过,一个是我们今天上午必须正式开始开发,另一个则是接下来的日子里一定要用心学习各项技能,争取下一次来参与GGJ的时候也能有Solo的实力。

到达活动场地的时候Macus已经在那里了,我们吃完了Unity准备的丰盛早餐,就立刻进入了讨论阶段。我把昨晚的成果分享给了Macus,对于我的提议他表示十分认同,这令我非常欣慰。

其他的组员陆陆续续的都到了,情况比我想象的还要顺利,在大家都明白了我所描述的玩法是怎么一回事以后,我们进度立刻由讨论阶段转入了实际开发。那一刻我对看到最终的成品充满了无限的渴望。

两个程序爸爸立刻完成了分工,Jimmy负责游戏场景的相关内容和飞行器的逻辑开发,Victor则专攻宇航员信号枪部分功能的实现。鉴于Jimmy决定利用已有的模型素材进行开发,美术大大的任务也减轻了不少,Shader哥开始专注于给我们的游戏关卡实际背景。我和Macus则继续讨论着如何在现有游戏玩法的基础上,设计出更好玩的关卡来。一切都进入都进入了正常的轨道上。

New Friend

第二天快要进行到中午的时候发生一个小插曲,让我们这个本就已经比较庞大的队伍加入了一名新的成员。隔壁组的Shawn来到了我们围坐的桌前,想要了解我们开发的是个怎样的游戏。

因为见证她与他们组策划在刚刚的争执,我已经预见到了她会发出想要加入我们团队的请求。之后的聊天里我也大致了解了事情的来龙去脉,她选择从原来的队伍推出的原因是他们的策划坚持要做一个用来自我表达的冒险游戏,而曾经有过制作这一类型游戏的她觉得在接下来的时间里这项工作根本完不成。

期望通过游戏来进行自我表达这本没有错,但如果你选择了与人合作,那就必须清楚一点:最终的成品并非个人意志的提现而是整个团队共同努力的结果。如果有人寄希望于在GGJ上找到牛逼的程序大佬和美术大大帮你实现自以为注定会技惊四座的伟大创意,那么除非你对自己的人格魅力有十足的把握,不然我还是劝你不要来破坏其他人的活动体验了。

我们愉快的接纳了新成员,Shawn也在和Shader哥的讨论后承担了一部分美术的工作。我对游戏最终的结果又多了一分期待。有了Shawn的帮助,我们对于游戏场景最终呈现出的效果有了更清晰的认识,同时,她对于赛博朋克风格的喜执念也让我们的游戏变得未来感十足。

一切都看似进行的很顺利,下午Victor与Jimmy一同测试了宇航员和飞行器间能否能像预想中的一样运作,美术也持续为游戏内的各个组件设计着素材。

不得不承认的一点是,在那段时间里我有些过分乐观的估计了整个项目的进度,同时也没做什么对项目有实际帮助的事情,除了将待开发的模块以及需要补充的美术素材跟组里的程序美术进行了口头上的确认以外,大部分的时间都在划水。我本该将所有仍然需要进行的工作整理成表格,将开发每一项功能需要的时间和完成的优先级跟组里的程序一一确认,但是我懒了。

Marcus一直在非常用心的打磨着他所设计的新关卡,同时也将他脑海中不断产生的新主意告诉我。他的目光并不单单着眼于这一次的游戏Demo,他甚至想到了未来可以将这个游戏分成几个章节,在不同的章节加入新的机制来让游戏变得更加丰富有趣。比如他觉得既然是以太空为背景,反重力的设定将会是一个非常有趣的元素。

当然我们不可能有时间在GGJ上实现他的这些想法,我想这一点Marcus自己也非常明白,但是他依然非常认真的在做着这些设计,即使是在事后想起当时的场景,我仍然觉得他对待GGJ的态度值得每个人学习。

每一位来参加GGJ的朋友都会有希望在活动中有所收获,比如一段与朋友一同开发的难忘经历,比如认识更多各个方向的大神,再比如让自己的履历中多一个言之有物的项目,想在活动中得到这些无可厚非,但我觉得满足对于创作需求的强烈欲望才是真正能让一个人专注于这个活动的首要驱动力,这是我在Marcus身上看到的。

时间流逝的很快,尤其是在整个队伍缺乏项目管理的时候这一点尤为明显。很快又到了要离开Unity大厦的时候,而我们的游戏还并没有一个较为完整的原型。

在我们各自回到住处后,两位美术继续打磨着场景,Shader哥还在不停的在写Shader,期望能够将现有的几个角色模型挑出更好的效果。Shawn也继续画着场景中的各个组件。

完成了主要逻辑的Victor和Jimmy似乎放缓了游戏开发的脚步,至于原因嘛,其实前面已经提过了:因为没有明确的开发文档,所以程序在完成了手头的工作以后并不知道还有那些是需要实现的。这是我在整个GGJ结束后不断反思的地方,可能也是导致整个游戏在我们拥有相对富裕的人力资源的前提下并没有展现出与之匹配的高完成度的原因。

Before Submitting

新的一天开始的时候距离游戏最终的提交时间已经不足8小时了。作为组长的Shader也开始担心起了项目的进度,他几次催促我说能否在现有资源的基础上先把前两个游戏场景搭起来,让大家有个底,我却一再推托,理由是程序还没有实现全部的逻辑。

现在想来,当时的想法无比天真,我希望与程序准备好全部的原料,角色和场景中的全部组件都已经是可以直接拿来用的Prefab,然后我可以像制作Mod那样,独立的在关卡编辑器里面将场景迅速的搭建起来,当然这是不存在的。

由于堵车的缘故,Jimmy大哥迟迟没有出现。说来惭愧,最初曾经信誓旦旦的承诺过可以承担开发工作的我,在那个时候看着Unity工程里的那一些文件显得有些手足无措。

由于并不清楚Jimmy和Victor的开发逻辑,甚至不是很了解文件结构,我一直对开始制作关卡这件事有点抵触,抱着一丝“还是让程序搞定吧”的侥幸心理,显然越发临近的截止时间已经不允许我这么做了。

我给Jimmy通了电话,但原本的沟通却变成了毫无意义的争执,当时我确实有点着急,说话的方式和态度都有些问题,这次对话对项目进展有什么帮助。我决定先把美术的资源要过来替换掉原先的素材。好在没过多久Jimmy大哥终于出现了,我们也得以继续将进度向前推进。

原以为可以将3个关卡都搭完的我在实际操作的时候才发现,其实游戏距离预期的效果还有很长一段距离。

角色的移动,信号枪的运动范围,很多东西都需要去优化,这些问题应该提早被发现,因为在昨天我们完全有时间去处理这些问题,但他们还是被留到了最后。

为了给最后的打包发布和上传流出足够的时间,我们并没有来得及将Marcus设计出的第三个关卡搭建出来,我们甚至没有为角色的死亡做一个死亡画面,就连重新开始的功能都是Jimmy自己想到了这个功能点的必要性而加进去的。

好在我们还是在截至时间之前,有了一个可以用来演示的Demo,多亏了两位美术,这个Demo的卖相还不错。

Shawn为游戏做的概念设计,我觉得非常Cool,虽然最后实现的和这个效果图有点差距

Big Party

时间来到下午五点,终于到了激动人心的展示环节。所有前来参与的GGJ的人,再次集中到了一起。整个展示过程异常欢乐,笑声和掌声一阵接着一阵,氛围好到很难用语言形容。当然,作为主角的游戏Demo们,完全没有让大家失望,优先的创意与精致的游戏画面不断的对每一位Jammer大脑进行轰炸。

在展示环节上看到的游戏Demo质量,远远超过了我的想象,其中几款给我留下了比较深刻的印象。

当然优秀的作品还有很多,Unity官方已经将本次GGJ上海站的全部作品整理出来了。

最后还是说说我们组的亲儿子吧:虽然完成度不算很高,但是展示环节的节目效果还是挺好的。

我们的游戏有个十分拗口难念的名字:Ymbroglio Alpha,Imbroglio是错综复杂的局面的英文,Marcus把第一个字母改成了Y让它变得与众不同(不过现场其他的小伙伴们估计完全没弄明白,这个名字究竟是什么意思=。=)。

最终我们给大家展示的Demo大致是这样的:

第一个关卡是个非常简单的场景,只有一个感应开关和一道门,目的就是为了让玩家明白只有在宇航员的射出的信号范围内,飞行器才有动力这个游戏机制。

第二个关卡需要动一点脑筋,但仍然非常简单:宇航员前方的道路上有一个无法通过的深渊,他必须先让飞行器落在一个按压开关上才能打开经过深渊的桥。在宇航员通过深渊后还需要利用墙面的反射,控制飞行器打开通关的大门,但是由于飞行器不再压在开关上了,深渊再次出现,在控制宇航员调整信号位置的时候,玩家仍需留意前面的深渊。

我们并没有来得及做第三个关卡,在Jam结束后组内的其他人也都有继续做下去的意愿,不知道显然大家都对这个作品的完成度不大满意,我也非常期望最后能有更加完整的游戏作品出现,不过这些都是后话了,展示环节结束后,Unity官方早已准备好的美食彻底将活动场地变成了一个大Party。

The End

第一次参与GGJ,无论是参与时的状态还是活动后的收获都远远超出了我对于这个活动的期待,相信其他在场的参与者当中注定有很多人会有相似的体会,只能说非常荣幸可以在GGJ上遇到一帮靠谱的队友,让我此次的上海之行非常圆满的画上了句号。

最后必须给我所参与的站点的活动主办方Unity的工作人员道一声谢,在他们的组织下GGJ的参与体验可以说是极好的。现场的环境和几天的伙食都非常好,在那里你不需要为除了游戏开发以外的任何事情操心。

最后的彩蛋:上面一直没有提到我们这个队伍的名字,又是Marcus,给我们的队伍起了一个有趣的名字“Triple Three Entertainment”,他说333这个数字代表着幸运,他甚至想出了Logo该如何设计。

好奇的我专门去网上搜了一些关于这个数字的梗,意外的是,它居然能和这次GGJ的主题传输扯上关系,一种说法是,当你总是能在睡觉的时候看到333这个数字,那代表着宇宙正在向你传输着能量(一本正经的胡说八道既视感)。

我们的Team Logo

最后的最后,怒卖一波队友。我的其他几个队友都接受了在现场拍摄的纪录片团队的采访,也许你可以在Unity大中华区的记录片里面找到他们的身影。