使用UE4开发3A游戏心得(二)
本篇从游戏客户端的角度谈谈对UE4引擎的一些开发经验,我19年年中初次使用UE4开发,最开始基本每天都花大量的时间拉代码,编译代码,而且还各种崩溃,开发效率极低,每天都在加班。好在经过2年多的摸索,渐渐找到了适合UE4开发的一些套路,主要有三点:1.业务逻辑尽量用lua开发
2.一些策划和美术配置用蓝图实现
3.基础系统、引擎定制、性能优化用c++
针对第一点,有的同学多次反对用lua,但这里重点不在lua,而是要保证游戏的业务逻辑可以高效稳定的开发,这里用任意一种脚本语言即可,但不要用蓝图。脚本语言在开发中最大好处是不用频繁开关编辑器,不用频繁编译c++代码,没有c++各种平台问题,不会动不动就打不出包,不会动不动就各种崩溃,更不说脚本语言还有强大的热更新功能。
针对第二点,UE编辑器和蓝图配合使用起来还是很不错的,比如关卡编辑器、动画编辑器、材质编辑器、剧情编辑器等等。我们游戏中策划的大多数表还是用Excel导成bin的,但有些配置是用蓝图配置的。
针对第三点,用c++开发的模块一般都对性能有很高要求,但很少随业务频繁改动。基础系统比如移动同步模块、网络同步模块、寻路、核心战斗、动画模块、大世界场景加载、角色模块等等,这些系统最好在c++层搭好框架,并做好有针对性的性能优化。引擎定制分两种,一种是工具开发,比如编辑器扩展、美术工具链等等,另一种是修改UE4引擎源码,比如针对性优化一些渲染效果、修复一些引擎bug、增加一些引擎本身不支持等功能等等。
网上有很多人喜欢讨论unity引擎和UE4引擎的优劣,单从做业务的角度来看,我认为只要都用lua开发,二者开发效率基本差不多,反正都不用频繁编译和开关引擎,这样和各方人员协作起来都很快速,只需拉新content即可验证最新功能。lua建议放在content中,不过和蓝图一样,要注意和c++代码的同步问题。
使用unity引擎开发游戏,引擎定制用c++,核心战斗模块使用c#,普通业务用lua。使用UE4引擎则是引擎定制和核心战斗模块都用c++,普通业务用lua。从这个角度来看,UE4反而比unity还简单点,而且UE4蓝图也不是一点用都没,还是可以配合编辑器发挥些作用的。
从招聘的角度来看,做这种大型游戏,游戏客户端团队需短期快速膨胀,但目前市面上有c++经验的人很少,有UE4中c++经验的人更少。好在我们业务开发基本都是lua,只要有游戏开发经验的人都可以快速融入团队,形成战斗力,后续则可慢慢培训其c++,成为独当一面的骨干。 请问UE4开发该如何入门呢? 你是学生还是已经工作了呢? 学生 自学能力强的话,你可以去B站搜索UE资料,基本都有入门视频,搞一个完整的跟一遍的话就差不多,后面还有很多方向可以选,对渲染感兴趣的话可以去看计算机图形学相关的,对游戏本身感兴趣的话,建议专攻动画,这样工作也好找些 别复读了,虽然我也知道你们码字不容易,全是数据漏洞。 请问为什么不推荐用蓝图? 这篇是复制我自己的之前回答的,不过整理了一下[大笑] 简单的配置或流程开关之类还是用蓝图搞,具体业务逻辑还是用lua或C++。蓝图可能还是用不习惯吧,没大规模用过,没太多精力去解决蓝图多人协作、性能、编写规范之类的事情 现在行业里的ue客户端大部分是哪个方向的领域呢
页:
[1]
2