Booom作品《时间下沉》开发日志


3楼猫 发布时间:2021-12-01 21:57:00 作者:叠柚 Language

首先自我介绍一下,我是《时间下沉》的制作人,猫柚组的叠柚。既然有了”柚“,那”猫“在哪里呢?看看我们的宣传PV你就能获得答案——
猫柚组有十一名成员,其中半数以上都是游戏行业从业者,再加上比较充裕的开发时间(相较于72小时极限开发),这让我们有信心做一款稍微复杂一点的游戏。在公布主题的傍晚,我们便开会定下了策划案,制定了项目进度表。
从进度表中可以大致了解到每一位成员的负责内容,想进一步了解我们的话,只需在游戏中收集彩蛋U盘,便能解锁对应的信息和留言了!

从进度表中可以大致了解到每一位成员的负责内容,想进一步了解我们的话,只需在游戏中收集彩蛋U盘,便能解锁对应的信息和留言了!

主题

时间是幻觉,让我想起了《泰坦陨落2》单人战役中的一关:玩家可以在过去和现在切换,同时面对两个时空的敌人,并利用不同时空下陷阱和障碍物的不同,来跃过难关。
如果玩家能同时存在于两个时空中,并且相互影响、干涉,那是否就能将未来的信息带回过去?结合量子擦除实验,决定将逆因果律作为故事的主题。
太空科幻,时空折叠,听起来很酷,但我们最后能实现多少呢?

关卡设计与搭建

关卡设计初期,策划查阅了一些平台跳跃游戏的典例,确定了围绕“特殊机制”和“招牌技”的设计思路。因此,我们建立了表格来维护主角在游戏中会出现的各种动词,并且从中选取希望强调的部分。
和许多平台跳跃/解谜不同,我们的场景预期较为狭窄,为角色设计过多的特殊移动动词反而会让玩家感到操作受限。因此我们对主角的动词做了不少减法,最终真正保留的“招牌技”只有蹬墙跳了。
但除此之外,我们拥有世界穿插和重力改变的环境设定,后期还会增加晶体枪的额外移动手段,围绕这几个机制已经可以做出很多有趣的设计了。
第一版关卡设计图

第一版关卡设计图

我们将关卡的主题定为时空的穿插与切换,许多另一个世界的碎片嵌入了主角所在的空间站中,进入到这些碎片后,重力的方向、时间流速、空间的连续性都会改变。围绕这一主题,我们的关卡策划管老师设计了许多复杂的解谜。
实现上,虽然我们是3D场景,但角色、障碍物的碰撞体依然在Z=0的平面上。
图中,绿色的细框代表每一个碰撞体。

图中,绿色的细框代表每一个碰撞体。

在搭建完后,我们发现了一些问题,比如:
主角是1x2的碰撞,当主角和另一个世界的碎片发生碰撞时,就会改变主角的重力方向,但这同样会对主角围绕Z轴进行旋转,旋转过程中,可能就离开碰撞区域了。最坏的情况下,主角会在两种重力的边界上鬼畜。尝试了好些方案,我们仍没能完美地解决这个问题,最终只能调整关卡设计。
可以说,此前的许多复杂的设计由于这些问题的存在而仿佛强弩之末。重力区域的bug也让很多纸上谈兵的设计在引擎里问题重重。最终,几乎每一个关卡都在设计上有所妥协,这让设计在整体心流的把控上欠缺不少。这些都是值得反思和总结的地方。

美术概念及流程

世界观概念
为了契合“时间是幻觉”的主题,我们从“衔尾蛇”的意像出发,认为圆环空间站适合作为游戏的基点,主角设计以NASA风格宇航员为基准。而圆环这一元素也在UI上得到体现。
根据“时间下沉”的基本概念,异世界设定为时间即将化为虚无、文明只能依靠衰败的白矮星获取能源的宇宙废土背景,主角进入的异世界更是已经处于黑洞边缘。根据这一基本设定,我们衍生出了一种可以储存能源的晶体作为异世界武器与玩法的衍生。
我们策划音效同学在脑暴过程中多次提及了Glitch的概念,我们便采用了Glitch Art作为异世界基底,营造出了独特的氛围。
主角
局内主角像素动画参照了《死亡细胞》的制作经验,采用了建模绑定动画渲染后进行精修的方式进行,确保动势合理,动作流畅。
不过,手和尾巴去哪了呢?
为了让手臂、武器可以跟随鼠标瞄准,我们将这部分单独拆出来挂在肩膀上,单独控制它的旋转(主角做不同动作时,也要手动在Animation中K肩膀的坐标)。
至于尾巴,因为主角是一头雪豹(虽然许多朋友认为他是一只大白猫),自然少不了标志性的大尾巴。我们将尾巴拆成了七节,每一节有左右两个锚点,第N节的右锚点始终与N-1节的左锚点重合,而左锚点则根据初始旋转偏移量计算出自己的理论位置,再从当前位置向理论位置做一个SmoothDamp,即可实现一根丝滑的大尾巴了。
场景模型
由于美术人手不足,我们没有选择传统的PBR流程。
空间站与异世界场景,我们都采用了体素模型搭配同一套色板贴图的工作流程。这种优化后的流程让我们能够在两周内用较小的学习成本与时间成本完成了美术资源的产出和配置。后期我们会重新进行烘焙拓扑以优化目前大量重复面数产生的资源占用问题。
空间站场景的背景瓦片之一

空间站场景的背景瓦片之一

地编
老实说,拿到地编设计图的第一感觉是”不想做了“。
1 / 3
主美老师在Blender里拼好后,将设计图和工程文件发给我,只是看了一眼,就已经被这复杂度给吓到了。当然,也不可能真的不做,只能一边焦虑一边努力在Unity里还原设计。
来,换个角度看看第一关的场景?

来,换个角度看看第一关的场景?

特效和渲染
由于选用的是Unity的高清渲染管线(HDRP),我们先用ASE制作了几个通用Shader。
特效主要使用Unlit Shader,大致分为扭曲、自发光、溶解、遮罩四个部分。
游戏里的特效基本都是随便找了几张贴图,加上一些扭曲溶解以及UV流动做出来的。
即死区域的真面目(?

即死区域的真面目(?

被动切换世界的后处理特效

被动切换世界的后处理特效

切换世界则是用了StencilBuffer,当玩家进入另一个世界的碎片时,将一个面片的缩放值从0变为正常大小,面片会将对应镜头空间的Stencil值覆写,便能将另一个世界的场景显示出来,覆盖掉之前的场景。
主动切换世界的效果(实际上是有过度动画的,GIF上看不太出来)

主动切换世界的效果(实际上是有过度动画的,GIF上看不太出来)

音乐音效

音乐方面,这是我们的音乐音效同学第二次尝试编曲。关卡bgm参考了《死亡搁浅》的风格,Boss的bgm则完全是个人风格的发挥,塞了一些《FF14》和《东方》风格的东西进去。两部分音乐单独的效果都尚可,但是放到一个游戏里却显得有点互斥。单独来讲,关卡的bgm和弦渐进的略微有一点慢,前20秒的和弦显得有些敷衍;而boss的bgm塞了太多乱七八糟的东西,有些不伦不类,最后的ZUN号则纯粹是自high了……
不过好在这些曲子都正在进行重制,Boss的Bgm应该会整体更换风格。如果有余力的话,我们还会制作主界面和剧情演出的专用bgm,并且将OST上传至网易云。

程序

我们的程序同学其实……几乎都是第一次做游戏。下面就引用其中一位写的个人感受吧——
这次心血来潮参加了这个比赛,原本只是一个没有接触过游戏开发的程序员。一遍工作一边制作这个游戏,确实遇到了很多困难,当然也从中学到了很多。
首先Unity使用的C#,而我自己擅长的是Java。在负责开发UI、场景和敌人AI的途中,因为对Unity的功能不够熟悉,以及对C#的特性不够了解,开发进度一开始非常缓慢。因为伴随着学习的过程,常常也休息不足。这里要感谢一些组里的大佬,能够带着我,并且有耐心的提供了一些帮助。还记得自己刚实现了主界面的功能的时候,开心得在家里大叫。看见自己搭建的场景在程序里运行,甚至是搭建场景模型后看到门能正常的升降的时候,内心充满了喜悦。
我非常爱玩游戏,但是如今自己能制作游戏,并且玩到自己的游戏,这种感触是完全不一样的。尽管最后自己的任务内容并没有全部被采用,这也说明了自己其实有很多地方只是达到了最基本的指标吧,还有待自己去发掘和学习更好的实现方式。最后测试的时候也发现bug非常之多……十几天的时间对我们来说也相当的赶,最后一天根本也没有足够的时间去修复bug,这也算是一个教训吧。
虽然有这些种种的艰辛,即使自己不是这个行业的。但是我以及我们组都有个最原始的出发点,就是对游戏纯粹的热爱。对我自己来说,做游戏是一次难得的经验。我希望能用我们自己的游戏,去给玩家展示我们的热爱,能和我们有一样的共鸣。这款游戏并不算完美,但他对我们来说是个良好的开端。我想不管我之后会不会来到这个行业,只要一直有着对游戏的热爱,就不会停下做游戏的热情吧。

写在最后

欢迎大家来试玩《时间下沉》,我们将Booom截止后更新迭代的版本放在了评论区中。
愿这份作品不负十六天来,所有人的努力。

© 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com