【GameJam】机核网BOOOM游戏创作挑战开发复盘

【GameJam】机核网BOOOM游戏创作挑战开发复盘

要开学了,返校前进行一波复盘。

我们组的作品《GANDER COMPANY》,介时会有宣传视频,并会在机核网游戏创作市集线上展示。之后会在这里补上链接。
https://www.gcores.com/games/67514

程序只有我一个人啊,所以复盘也来得很快,把一些想法和思路写在这里,没啥技术力,凑活看,权当记录。

游戏本质问题

引擎用的unity 2020.3.14f1c1 ,当策划确定下游戏主题之后,就该我考虑实现方式了。

这次项目首次引进了3D建模,但本身还是和2D的结合,实质就是一个2D游戏,只不过表现上进行了伪3D。

虽然场景是3D的,而且存在光影。但游戏只有左右控制,也就是只有X轴,甚至没有上下,出现上下都是程序出bug了,所以说本质就是个2D横板游戏。

相机视角问题

由于存在场景3D+人物2D,摄像机直接和人物一个平面就好,调整下y轴和z轴,让摄像机跟人物有个合适的距离,看着舒服。

然后因为模型师也算是外包性质(策划叫的同学短时合作),我们之前也没有尝试将3D元素添加进来,所以场景模型上可能会有些小问题,比如说房间建模稍小这样子,都不是什么大问题,我在unity里略作调整就好。

这里就涉及到摄像机的位置了,多个房间,我是直接摆在同一个场景里的,场景跳转切个黑幕直接换人物坐标。要控制摄像机的视角内不会出现其他不该出现的内容。

image-20210827111024187

Vector3.Lerp给摄像机加个跟踪人物,然后写了个数组用Mathf.Clamp控制摄像机的范围,方法有些简陋,但是能实现需求。

2D在3D上的投影

这个问题纠结了我半天,3D物体自带投影,但是2D就是个图片,我一时不知道怎么投影。

然后跟着这个做了半天,发现涉及到渲染了,顿时感觉不妙。

琢磨了好几天,甚至都要开始搞shader了,然后发现了个简单的解决方式。

首先简单的搭一个场景:

image-20210827113335300

想要让2D投影,需要对Sprite Renderer进行设置:

点右上角的三个点,然后选debug:

image-20210827145836499

将sprite renderer的投影和接受阴影都打开:

image-20210827150058274

接下来给sprite换个材质,2d人物不会有阴影的,但是我偶然发现了这个材质可以让人物拥有:

image-20210827150534556

记得打开灯光的阴影选项,不然不会产生阴影:

image-20210827150508988

由于我不太懂渲染这块,这个粒子系统为什么会有,使用它会产生什么样的影响,我都不太明白,但是他能用。这个材质其实有个缺点,就是他只能单面:

演示1

所以这里卡了我好几天,找不到解决方式,很难受。

这个视频给了灵感。可以在评论区找到我(

解决这个问题很简单,只要重新做一个材质,然后勾选上双面选项就行了。

双击这个材质,默认材质不能修改,但我们可以看到一些信息:

image-20210827151253043

所以只要右键创建一个Material,然后仿制做成这个样子就可以了:

image-20210827151522412

给sprite换上新的材质,就实现了双面投影!

演示2

怎么样,是不是很帅气呢!来,试试看!

面向对象思想的便捷

这次的小demo中最主要的互动如图下:

演示3

就是一个靠近会弹动画,离开会收动画,触发会产生事件的触发器。

之前没怎么在项目中好好的用面向对象的思想,这次用上了,感觉就是非常爽。

写一个基类触发器,然后通过继承多态延伸出不同的触发事件,十分方便,十分的雅致。

一些不足

剧情演出效果不足

之前写的gal框架被我多次使用,但是从来没升级过。考虑一下完善框架了。

目前的框架最大的问题就是演出效果,我是用协程来实现人物、场景的过渡,但是在一定条件下貌似会起冲突,很不爽。

正在试图找到新的代替方案,希望能有一种更优雅的过渡方式。

战斗系统的bug

战斗这块是上海七天写的,不够稳定,经常出一些莫名其妙的效果。

比如这次的开发,在3D场景用2D物理战斗,效果十分滑稽,策划说是“人仰马翻的战斗”,确实如此(具体可以亲自游玩体验)。我也不是很满意,但是时间紧任务多没来得及尝试新的解决方案,先在这里记录下。

UI的适配问题

游戏做好了,提交了,我才想起来UI的适配不是很好,在1920*1080下效果最佳。

这波是没有规划好开发路线,我的锅。

总结

三月到五月,我完成了基础的gal框架,并且从0学会了使用unity的部分板块,接触了UI以及一些基本内容。

七月后半旬,接触了2d物理引擎,到此算是拥有制作低水平小游戏的能力了。

八月就是一次技能整合,把我会的东西都用上了,整了这么一出。

要开学了,我目前的规划是积累沉淀。

我思考了一下,本质上自己还是一个程序员,那么想要有进步就要先把本职做好。

就算unity用的驾轻就熟,数据结构、算法、数据库、网络这些没学好也没什么用。

一个基础扎实的人,哪怕培训他学unity也会上手很快。

所以我决定回头,把基础学好,这是稳赚不赔的买卖。

这不意味着延缓梦想,只不过是为了更好的出发。

原文地址:https://www.cnblogs.com/DorinXL/p/15195705.html