【UE4】Escape From Gravity——基于重力玩法的太空飞行闯关小游戏
游戏截图
游戏介绍
玩家控制飞船飞向终点,途中会受不同星球的引力影响,玩家需要合理利用飞船燃料避免撞到星球飞到终点。
大一下学期学校游戏创作课程第二周我制作的游戏,用了6天课余时间制作完成。
基本信息
平台:PC
类型:3D跑酷
主题:流浪地球
玩法简介
通过鼠标移动视角,按W飞船将向视角正前方自动摆正船身,按shift飞船可喷射燃料进行加速。燃料箱的燃料在未喷射燃料时会逐渐恢复,当燃料耗尽时需等待燃料箱恢复所有燃料时才可再次喷射燃料。星球越大引力越大,距星球越近引力越大。屏幕下方的两个UI显示的分别是飞船当前速度方向与当前引力方向。
分工
组内一共有四位同学:我、赵宇涵、九叶、若浪,分工如下:
- 我:玩法程序、飞船贴图以及材质、技术美术;
- 赵宇涵:策划、地图设计、飞船模型;
- 九叶:策划、音乐、音效;
- 若浪:主界面背景图、按钮设计以及绘制;
技术路线
此游戏使用纯蓝图制作。
整体的飞船操作逻辑比较简单,这里不做赘述。
众所都周知,引力的表达式是下面这个公式:
按照小学二年级的方法稍微简化一下就成了下面这样:
可以看出,在不计密度差别的情况下,星球的引力只与星球的半径和离星球中心的距离油管(当然是得把星球看做质点)。所以在集散星球引力的逻辑中,星球Actor只有一个公开性质,就是半径(Radius)。飞船每帧遍历所有星球,分别获得自己与星球的距离和星球的半径,并计算出引力大小向量,将表示引力大小的向量相加,就是最终的引力。
因为是在太空,缺少参照物,所以为了给玩家了解自己当前的运动情况和受引力情况,所以在我添加了显示玩家运动方向和引力方向的UI箭头指示。
拿指示引力方向的箭头为例,传入引力方向和引力大小,并进行一系列运算之后施加在箭头的缩放和角度上。
其他的就是通过碰撞胶囊体防止玩家飞的过远,在离星球很近的时候有视觉效果提示,都是比较简单的细节了。
美术设计
飞船模型为组员自己使用3DMax制作,外形借鉴的是星球大战中的飞船。然后我使用Maya进行模型整理、分UV等工作之后导入引擎。
更新日志
Beta 0.1——最初版
Beta 0.2
增加太空垃圾
更新更清晰的宇宙贴图
添加死亡、获胜简单的程序过场动画
Beta 0.3
增加测试人员设置,测试人员可以直接更改游戏数据,方便测试
修复未死亡直接重生会直接死的bug
Beta 0.4
为警告标识添加闪烁动画
修复死亡或者胜利之后警告标识还在的小bug
修了无数个其他的小bug
添加多关卡机制
添加主界面选关卡机制
添加一部分音效和音乐
添加一些私货
Beta 0.5
de掉了上万个bug
添加7个关卡
添加About界面
新增宇宙贴图
更新主界面美术资源
星球设置为固定,可以预先烘焙AO贴图,节省性能
Beta 0.6
解决了上亿个bug,包括版本号写错导致报一堆错吓死个人…
迭代各种窗口的美术资源
星球变得五颜六色
优化选关卡界面
Beta 0.7
没解决啥bug,因为懒得解决了
添加教程加载界面
添加一关奖励关卡
其他
部分音乐以及音效为爱给网下载
飞船喷气粒子效果为虚幻商城免费官方资源
其余资源均为组员自己制作
不足
计算引力的时候不应该遍历所有星球,现在星球少还好,星球多了后就会出现卡顿。应该给每个星球加大小合适的碰撞盒,只有进入了碰撞盒后才进行引力计算。