游戏快报

火车上,我做出了人生第一款VR游戏

火车上,我做出了人生第一款VR游戏

本文转载自界面,原作者Charlie Hall ,翻译陈梦黛。

“你会编程吗?”Robin问我,“不会。”我摇了摇头。

Robin Baumgarten是一位知名独立开发者,GameJam的老手,游戏《Line Wobbler》的创造者。而我,Charlie Hall,是游戏站点Polygon的一名编辑。

我们并肩坐在塑料板凳上,窗外是大片的爱荷华农田,绵延直至地平线。火车飞速地行驶着,两边巨大的白色风车掠过我们的视线。

“好吧。”他带着富有魅力的德国口音,“那艺术呢?你做过3D模型吗?动画呢?”

“都没有。”

Robin想了一下,问我:“那你有什么特长吗?”

我已经不止一次跟他提过我是个游戏制作新手,但也许他在此之前并没有充分理解。

“我是个编辑。”我说。

“我懂了。”

他又想了想,做了个深呼吸,说道:“那你可有得学了。”

他将他的电脑屏幕转向我,打开了一个叫Unity的软件,然后想我介绍游戏的制作过程。

当然,他是对的。在接下来的三天里,我亲自体验了制作团队是如何在game jam上开发游戏的。我们四人一组,成功做出了一款游戏。而且如果没有Robin和其他人的话,这款游戏可能没法面世。

在这个过程中我并不仅是一个旁观者,但现在我要回归本职,讲述我们制作《Runaway Train》的故事。

1460601027200959.jpeg2016年Train Jam第一天的日落。摄影:Robin Baumgarten

TRAIN JAM(开发者们登上前往游戏开发者大会的火车,在这数小时内制作游戏)

2014年,我非常幸运征得了编辑的许可,让我参加了首次Train Jam。一群独立开发者登上火车,前往在旧金山举行的游戏开发者大会(Game Developers Conference),他们坐在普通人之间,试着在途中开发游戏。这在当时是一个非常荒唐的想法。

然而在历时52小时,2500英里的旅途后,大家都带着惊人的新游戏安全抵达,我和其他所有人一样吃惊。自那以后,Train Jam吸引了来自世界各地的开发者。今年的车票在35秒内就抢售一空,这些开发者有来自南美、澳洲的,还有从沙特阿拉伯和赞比亚远道而来的。

我想再体验一次,组织者Adriel Wallick告诉我她为我留了票。但我要答应她一个条件,如果我想再次登上这趟列车,那么我也要做出一款游戏来。所以今年我决定接受这个提议。

提前一天,我就开始准备了。我疯狂地下载了好几个游戏开发软件,包括Unity,Unreal和GameMaker。我听从了几个推特评论的建议,从YouTube上下载了一些如何使用这些软件的视频。不是单纯的教程和工具提示,而是如何制作首款游戏的完整系列视频。

Train Jam出乎我意料的一点在于我们几乎无法联网。如果我独自工作的话,就无法连上安全的网络,那样一来,我极有可能失败。但至少这个失败也许会成为一场笑谈。撇开这些不谈,一路上,我还能欣赏秀美的风光。

但当我来到联和车站时,Train Jam的成员对我表示了热烈的欢迎,Adriel第一个走过来给了我一个拥抱。

1460601033371149.jpeg在芝加哥联和车站集合。图片来源:Polygon

其中,我就遇上了Robin Baumgarten,在2014年的列车上,我们就认识了。在车站的小酒吧里,我们畅谈人生,他邀请我加入他的团队。在此之前,他已经邀请了他的朋友Gorm Lai,Gorm是一名富有经验的游戏设计师,也是国际Game Jam的创始人之一。

这趟列车上可能没有人能比他们更经验丰富了,所以我抓住机会加入他们的队伍,也告诉了他们我并没有什么游戏制作经验。

“你总要找到起点。”Robin痛快地说,“哪有比这更好的起点呢?”

最大载荷

在我们上车前,Robin,Gorm和我就今年的主题展开了激烈的讨论,最后确定的主题只有一个词“最大载荷”。我们的想法是,玩家可以在一列载满乘客的通勤火车顶上奔跑,这是没有尽头的,背景是掠过的各种景色。

唯一的难点在于,Robin和Gorm想让这款游戏适用于Oculus Rift,但对我这样一个新手来说,难度太大了。

玩家体验这款游戏时,要站在列车中间的过道上,面朝前方,弯曲膝盖。Rift可以感应玩家的动作,蹲下代表躲避,站起来代表跳跃,而且能一直进行下去。

尽管如此,Robin还想更进一步。他带了一个Arduino微型电脑和一个加速传感器。加速传感器可以能测出我们所在的列车的速度,Arduino则能将信息反馈到游戏中,这是我们游戏的另一个特色。如此一来,虚拟的列车就会和我们乘坐的列车保持一致。

这是个绝妙的想法,但我们能否在规定的时间内完成呢?Robin和Gorm都认为我们可以做到,这时我们只缺一个美工。

我们开始考虑可以给玩家设定哪些障碍。游戏中会有常规的火车车厢,表面不平的车厢和装载管道和其他东西的运货车厢,玩家需要跳起越过这些车厢。我们可以加入装载煤和木材的车厢。也许可以让玩家左右摇晃脑袋来向两侧移动。

“放只长颈鹿怎么样?”我问道。Robin和Gorm茫然地看着我。

“你们没看过《夺宝奇兵》吗?印第安纳·琼斯就在马戏团的火车车厢顶上跑过。”他们都没看过,但这个想法很有趣,成为了我们设计中的主要元素。我们的想法都记在餐巾纸上,写了满满两张,正反面都有。

我们只有二十分钟的准备时间。在周二中午,我们集合,前往站台。

1460601038399811.jpeg在加利福尼亚的某处,开发者正在测试游戏。

洲际旅行

当天下午三点,我们在观察车厢集合。数字艺术家Raymond Stump加入了我们的队伍,他来自印第安纳大学,是一名计算机科学和游戏开发专业的学生,非常热忱。他尽快创作那些火车车厢和其他的元素。Gorm则忙着为游戏人物创作原型。

同时,Robin打开了电脑,快速简明地向我解释他们现在在做什么。

这是我经历过的最令人称奇的二十分钟游戏开发教程。

我们使用的开发引擎Unity非常高效,有两个界面。Robin在两个界面之间操作。第一个是游戏设计界面,有许多平铺的窗口,第二个是编程界面,上面是各色代码。

我对游戏设计界面上的某些窗口略有了解,毕竟我这一生都在玩游戏。其中有一个是第一人称的动作画面,也就是玩家在玩游戏时看到的画面。另一个是第三人称的画面,设计者可以用它来设计周边的场景。还有些窗口中是可以调整游戏参数的变量。

Robin说,为了让玩家跳得更高飞得更远,他可以改变其中的一个变量,然后运行游戏查看效果。但如果不在另一个界面输入编程代码,这些变量是无法显示的。

他又切换回了那个神秘又五彩斑斓的代码界面。

“我可没法在20分钟内教会你如何编程。”Robin说。但他还告诉我,幸运的话,等他和Gorm搞定了,我也许可以试着操作设计界面。

吃晚饭的时候,我在Gorm的电脑上试玩了游戏的初级原型。我们从Unity的数据库中选择了一个粗糙的胶囊符号来代替玩家模型,上面还粘着个摄像头。快要撞车的时候,胶囊会从长方形的车厢上跳起,以稳定的速度从下面通过。按空格键可以在车厢之间跳跃。

这个原型还比较粗糙,特别是落地的时候。而跳跃的动作让这个胶囊看起来有上千斤。在接下来的几天里,Gorm花了很多时间完善这个问题。但对于一个几小时创作出来的作品来说,我还是很敬佩他们的。

Gorm和Robin非常谨慎。但他们也说,这是一段很长的旅途。

1460601039742247.jpegRobin在焊接加速传感器。摄影:Izzy Gramp

与此同时,Robin开始连接Arduino。他用一对钢丝钳将加速传感器和微型电脑连接在了一起,通过USB与他的个人电脑连接,开始变成。他解释说,他的目标是让Unity将加速传感器识别为一个摇杆。在传感器的X轴和Y轴上输入的所有信息都会被识别为摇杆的动作。在编程过程中,Unity的设计界面也会显示相应的参数,将这些不流畅的动作变得更顺畅有趣。

但Arduino比Robin想象中的更具有挑战性。直到第二天上午,他才完成。

第一天晚上,我静静看着窗外,思考在这个过程中,除了精神支持我还能做些什么。

“你知道吗?”Robin一边捣鼓着Arduino一边说道,“我们需要一些音效。”

火车之旅

在火车上,即使在晚上也很难找到个安静的角落。

十点了,大多数人都睡觉了。内布拉斯加州的景色飞驰而过。我一只脚站着,屏住呼吸,拿着一个录音机。我在找一个声音,我紧紧地按着耳机,想要找一个能让人感同身受的声音,那就是列车本身发出的声响。

还好我们有Elias Farhan,他也是一名游戏开发者。在行驶中的列车有特定的声响。我想创造出这种有节奏感的、跳动的声音,在玩家跑动的时候他们也能听到。

车厢之间连接着一条短小的过道,大概4英尺长8英尺高。两头有电动门,将熟睡的旅客和这条过道隔开。过道上有着电缆和其他的机械零件,上面罩着厚厚的尼龙布,随着列车的震动,它们会发出刺耳的噪声。我用左手按着一侧的尼龙布,右脚踩住另一侧,想减少噪音。然后右手举着录音机,在各个角落和缝隙收集我想要的声音。

第二天,我花了一上午用Logic Pro来剪辑这些声音,最终做出了一个一分钟的MP3文件。我开始输出这段背景音的时候,我们刚离开丹佛,前往落基山脉。

“现在我们只需要跳跃、着陆、跑动、停止、闪避还有下落的音效了。”Gorm说。

“我们还需要长颈鹿的声音。”Raymond补充道。

列车上的休息室是我能找到的最安静的地方,我就在那里制作了各种各样的动物音效。

如果我们有更多的时间,如果游戏理念不是如此雄心勃勃,那毫无疑问我会有更多的时间亲自制作游戏。但即使没有参与编程,我还是有很多工作要做。

全速前进

当然,在接下来的几天里,大多数时间我都用来试玩,有时还要戴上Oculus Rift。只有依靠Rift的动作感应系统,我们才能对游戏进行完整的测试,而我们希望在途中找到尽量多的体验者来体验游戏,以得到更多的意见反馈。

加入团队,亲自体验游戏的创作和开发过程真是一件非凡的事。原型游戏一次的进步也非常吸引人心。

最初,在Gorm的设计中,我们的火车并没有移动,而是Raymond创作的3D背景在移动。最终,Gorm做了调整,这样在背景保持不动的情况下,火车还可以前进。这也让Robin对速度传感器的操作变得更加简单。

1460601044684052.jpeg

为了让玩家在虚拟环境中获得更顺畅的体验,并且留下更深的印象,他们跳过的每一节车厢,越过的每一棵树没一个场景,都会在跑出视野的时候消失。在Unity中,从玩家的角度来看这样的动作还是非常离奇的。我们的火车保持恒速,玩家视野中只会出现四到五节车厢,背景出现几秒就会消失。

同时,Raymond还想加入更多的3D元素。其中有火车信号、树木和开通了隧道的山脉。那是一节观光车,当玩家跑过去时,车里的人都会抬头观望。

甚至还有我提出的载着长颈鹿的马戏团车厢。

第二天晚上,我制作的音效也加入了游戏。每一个音效都附加在一个事件或物体上,我们甚至还表现出了这些声音的多普勒效应。

1460601047159593.jpegRaymond Stump,Robin Baumgarten,Charlie Hall和Gorm Lai。

终点站

说实话,我还是不知道怎么制作游戏。是的,我参与了这个过程,我问了很多问题,提出了很多创意。我做出了反馈,提出了一件。但实际上,这款游戏归功于Robin,Gorm和Raymond。

对我来说,他们三个人能完成游戏制作可以算是一个奇迹了。

可惜的是,我们乘坐的加利福尼亚威风号列车到达了终点站爱莫利维尔,比预计的提前了一个小时。对火车上的其他乘客来说这是件好事,但对我和其他的游戏开发者来说,我们都不免有些沮丧。这意味着我们没有让足够多的人来体验这款游戏。