《武装原型》开发心得

Demo下载地址:http://pan.baidu.com/s/1jH8JAlw
系统环境:Windows7 SP1 x64
硬件环境:PC机
开发工具:UE4 4.13
使用语言:蓝图
游戏类型:动作过关
Demo职责:使用UE4引擎实现原版游戏《Broforce》的核心功能以及核心玩法。

本人从高中时买了一套正版《虚幻2 觉醒》,初始玩的时候就被游戏的“影音效 ”震撼着了。游戏自带有关卡编辑器(虚幻2编辑器),当时只知道在编辑器中缩放、平移、旋转游戏中的物体以及简单的使用BSP刷子构建简单物体。由于当时本人几乎找不到UE2有用的学习资料,最终放弃研究下去……直到今年6月份正式在家学习虚幻4的游戏开发,在学习过程中不得不感叹虚幻4引擎的强大!当把蓝图基本功能学习完毕后就产生了开发一个2D游戏项目的想法。好了,废话不多说,下面把游戏中核心部分开发心得传授给大家!

一、关卡地图篇:
原作关卡数量多达20多个,印象中总计是99个地图(可能有偏差)。在原作中的地图编辑功能很强大,个人感觉是FREE LIVES团队在U3D中自己开发的地图编辑器。自然UE4中的paper2d tile map editor显得功能和细节有点儿弱,但是主要功能还是能实现的。 在原作游戏中地图功能最核心的部分就是“破坏”效果,例如当子弹把地图某个Tile打“死(Tile有HP)”后产生土块粒子。在UE4中Tile HP为0后立即使用Rebuild Collision方法重构地图组件。说到Rebuild Collision,开始开发项目使用的是UE4 4.9版本开发,这个版本调用无效存在Bug,我先后换了4.11、4.12版本测试后,居然还是无效,最后我在4.13版本的官方修复Bug描述中看到了希望,最终4.13调用有效(当时内心是欢呼了一阵子),所以建议大家如果需要这种功能,直接使用4.13版本的UE4。至于怎么给Tile加入HP,这里需要大家自己探索,当然免不了自己定义Tile的结构体,结构体中定义一些例如ID、名称、HP等等属性。地图中有很多桥、油桶、梯子等道具,从个人角度来看,应该都归并到地图Tile组件类型中,但是paper2d的地图编辑器功能相对较弱,除非使用UE4 C++扩展paper2d地图编辑器功能(不清楚能否扩展),或者自己使用UE4 C++开发一套2D地图编辑器,最终个人决定设计一个道具蓝图类实现对应功能。

二、玩家角色篇:
在原作中,玩家角色类型较多,我只做了一种角色功能,游戏的主要角色Rambo。这个角色基本技能就是无脑的开枪、近距离匕首攻击、仍手雷、跳跃、攀爬墙壁等,这些功能建议尽量少用Box Collision作为碰撞处理,最好使用射线碰撞检测类型作为功能开发,个人觉得这种方法能轻松实现复杂的碰撞类型。如果想要实现多种不同技能的可控制的角色功能,这时需要蓝图面向对象开发方式,这样开发起来轻松方便很多。

三、敌人篇:
原作中关卡数量众多随之敌人种类数量也特别多,毕竟是主要目的是学习UE4蓝图功能,所以我只选择了基础敌人:步枪兵、自爆兵、巡逻狗、机枪兵、一个直升机BOSS。这些类型敌人的AI使用的是蓝图设计,没有使用行为树,原因是行为树与3D地图网格导航相结合使用,没有深入测试和了解脱离地图网格导航能否作用。所以最终决定只使用敌人蓝图类设计AI。从游戏整体来讲,个人觉得AI是开发周期中占时较长的,需要耐心设计。

四、粒子篇:
游戏中的血块特效、tile碎块特效、碎木特效等没有用到复杂的表现技术,都是基础功能。
ps:火焰爆炸特效不是本人设计的。

五、环境特效:
当前Demo没有。

六、UI篇:
游戏中菜单功能主要使用Widget开发功能,HUD用于设计游戏中的角色状态表现。使用的技术都是蓝图基础功能。

总结:
希望大家自己多动手挖掘UE4的功能,有问题多查看官方文档、官方问答区、多Google,这样解决问题成功率较高!游戏中的玩法、功能、细节、特效、关卡数量与原作比基本上是“小巫见大巫”,请大家不要认真对比,当前Demo只是自己练习并巩固蓝图开发水平。目前发现蓝图的功能局限性较大,之后打算转入UE4 C++开发,希望未来能与大家在UE4游戏开发道路上越走越远。

ps:本人从AboutCG官方Youtube等渠道学习蓝图游戏开发!

赞一个:)

ps:bt并不是必须和3d寻路结合起来的,完全可以用在2d游戏中。

之前上传的Demo启动后有时会出现崩溃的Bug,现已解决,遇见该问题的朋友根据帖子中的地址重新下载即可!

学习有成,不错不错,最难得的是在完全不同的领域里面去做尝试,像素风格的游戏目前还是比较少看到的。
期待最终成品的完成。