【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里略作调整就好。
这里就涉及到摄像机的位置了,多个房间,我是直接摆在同一个场景里的,场景跳转切个黑幕直接换人物坐标。要控制摄像机的视角内不会出现其他不该出现的内容。
用Vector3.Lerp
给摄像机加个跟踪人物,然后写了个数组用Mathf.Clamp
控制摄像机的范围,方法有些简陋,但是能实现需求。
2D在3D上的投影
这个问题纠结了我半天,3D物体自带投影,但是2D就是个图片,我一时不知道怎么投影。
然后跟着这个做了半天,发现涉及到渲染了,顿时感觉不妙。
琢磨了好几天,甚至都要开始搞shader了,然后发现了个简单的解决方式。
首先简单的搭一个场景:
想要让2D投影,需要对Sprite Renderer进行设置:
点右上角的三个点,然后选debug:
将sprite renderer的投影和接受阴影都打开:
接下来给sprite换个材质,2d人物不会有阴影的,但是我偶然发现了这个材质可以让人物拥有:
记得打开灯光的阴影选项,不然不会产生阴影:
由于我不太懂渲染这块,这个粒子系统为什么会有,使用它会产生什么样的影响,我都不太明白,但是他能用。这个材质其实有个缺点,就是他只能单面:
所以这里卡了我好几天,找不到解决方式,很难受。
这个视频给了灵感。可以在评论区找到我(
解决这个问题很简单,只要重新做一个材质,然后勾选上双面选项就行了。
双击这个材质,默认材质不能修改,但我们可以看到一些信息:
所以只要右键创建一个Material,然后仿制做成这个样子就可以了:
给sprite换上新的材质,就实现了双面投影!
怎么样,是不是很帅气呢!来,试试看!
面向对象思想的便捷
这次的小demo中最主要的互动如图下:
就是一个靠近会弹动画,离开会收动画,触发会产生事件的触发器。
之前没怎么在项目中好好的用面向对象的思想,这次用上了,感觉就是非常爽。
写一个基类触发器,然后通过继承多态延伸出不同的触发事件,十分方便,十分的雅致。
一些不足
剧情演出效果不足
之前写的gal框架被我多次使用,但是从来没升级过。考虑一下完善框架了。
目前的框架最大的问题就是演出效果,我是用协程来实现人物、场景的过渡,但是在一定条件下貌似会起冲突,很不爽。
正在试图找到新的代替方案,希望能有一种更优雅的过渡方式。
战斗系统的bug
战斗这块是上海七天写的,不够稳定,经常出一些莫名其妙的效果。
比如这次的开发,在3D场景用2D物理战斗,效果十分滑稽,策划说是“人仰马翻的战斗”,确实如此(具体可以亲自游玩体验)。我也不是很满意,但是时间紧任务多没来得及尝试新的解决方案,先在这里记录下。
UI的适配问题
游戏做好了,提交了,我才想起来UI的适配不是很好,在1920*1080下效果最佳。
这波是没有规划好开发路线,我的锅。
总结
三月到五月,我完成了基础的gal框架,并且从0学会了使用unity的部分板块,接触了UI以及一些基本内容。
七月后半旬,接触了2d物理引擎,到此算是拥有制作低水平小游戏的能力了。
八月就是一次技能整合,把我会的东西都用上了,整了这么一出。
要开学了,我目前的规划是积累沉淀。
我思考了一下,本质上自己还是一个程序员,那么想要有进步就要先把本职做好。
就算unity用的驾轻就熟,数据结构、算法、数据库、网络这些没学好也没什么用。
一个基础扎实的人,哪怕培训他学unity也会上手很快。
所以我决定回头,把基础学好,这是稳赚不赔的买卖。
这不意味着延缓梦想,只不过是为了更好的出发。