• 【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也会上手很快。

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

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

  • 相关阅读:
    mysql数据库分区功能及实例详解
    Mysql线程池优化笔记
    mariadb multi-source replication(mariadb多主复制)
    mysql---二进制日志
    MySQL binlog_format (Mixed,Statement,Row)[转]
    如何生成唯一的server Id,server_id为何不能重复?
    mysql复制过程中的server-id的理解
    MySQL参数:innodb_flush_log_at_trx_commit 和 sync_binlog
    Mysql 用户和权限管理
    B+树索引和哈希索引的区别[转]
  • 原文地址:https://www.cnblogs.com/DorinXL/p/15195705.html
Copyright © 2020-2023  润新知