在之前的元宇宙中有提及到游戏主播这个行业,那对应的就会有游戏开发者,对于开发最快捷的方式当然是使用游戏引擎进行开发了呀,那接下来我们就来说说这方面的内容吧 !
本篇文章主要讲解,游戏开发中常用的5个游戏引擎及其idea特性的介绍和对比
游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如Linux、Mac OS X、微软Windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。
游戏引擎是一个为运行某一类游戏的机器设计的能够被机器识别的代码(指令)集合。它像一个发动机,控制着游戏的运行。一个游戏作品可以分为游戏引擎和游戏资源两大部分。游戏资源包括图象,声音,动画等部分,列一个公式就是:游戏=引擎(程序代码)+资源(图象,声音,动画等)。游戏引擎则是按游戏设计的要求顺序地调用这些资源。
主流中很常用的游戏引擎分别为,ue4,unity,cocos,laya,egret,在国内其中unity、ue4占比最多,其次是cocos,再者是laya和egret。
不乏有些公司采用自己研发的游戏引擎做开发,例如:雪崩、死亡、末日、顽皮狗、等一系列。
说明:资料和教程最多的游戏引擎之一,很方便学习游戏开发的初学者。
官网:https://www.cocos.com/
不爽的地方:需要安装额外的idea
不爽点:idea比较繁琐,需要使用其他的额外idea,ui方面需要使用其他的工具。
推荐点:对小白入手很友好,游戏引擎性能也是杠杠滴、使用人数也很多
Cocos Creator 使用JavanScript/TypeScript开发。回到2010年,手游刚刚兴起的时候,如果没有听过Cocos, 那么你一定不是手游行业的。
2010年的时候,能跨平台开发的游戏引擎只有Cocos(Unity还不能支持手机平台), 2010年的时候手机硬件性能还有限,大部分都是2D游戏为主,Cocos 成为了国民手机移动端游戏引擎,那时,很多手机游戏,都是基于Cocos开发,也让它迅速了占领了开发者的市场。
后来随着手机硬件的发展,3D游戏越来越多,手游市场份额慢慢的被Unity取代。Cocos引擎完全免费,包体小,做2D游戏技术成熟, Cocos Creator开发工具于Unity的易用性一样,极易上手。
H5技术成熟,最近2年,全新引擎全面支持3D,一次开发能发布到PC端,Android,iOS,微信抖音华为等各大H5小游戏平台。
总结一下Cocos Creator特点:
1、引擎完全免费,开源,包体小,定制灵活;
2、引擎开发2D游戏经过大量验证,非常适合2D游戏开发。
3、全新的3D引擎,能开发3D游戏,但是还有提升空间。
4、一次开发,多平台发布,与传统引擎不同的是,可以发布H5的平台。(微信/抖音、华为小游戏平台)
5、Creator 3D引擎生态还不够丰富, 如第三方插件等。
6、Cocos Creator 开发2D游戏得到大量验证,3D还需产品验证。
7、Cocos H5 游戏runtime内核在行业做的非常好,可以提供高效的H5游戏运行方案。
说明:适合做小游戏、3d等各类型平台游戏的引擎
官网:https://www.egret.com/
特点:开发工具全面,可以做ui、龙骨,不需要从其他的工具中来回切换
不爽的地方:资料相对其他游戏引擎较少一点,对小白很不友好
推荐点:开源免费、适配全平台、支持3d
白鹭引擎,开发语言是js/Ts。白鹭游戏引擎对于H5游戏是有着不可磨灭的贡献,它是最早的H5游戏引擎,它里面的很多工具非常好用,到现在还被其他的引擎使用,比如骨骼动画工具,DragonBones被广泛引用到游戏开发中。
最早一批的H5游戏开发者一定都是使用白鹭。白鹭引擎在H5游戏这个邻域有着不可磨灭的贡献。后来白鹭也推出了Native平台。
总结一下白鹭的特点:
1、H5游戏的先驱,为H5游戏做了不可磨灭的贡献。
2、H5 2D游戏技术成熟,经过很多商业游戏验证;
3、3D功能有,但是商业项目3D游戏用的比较少;
说明:一款国外的游戏引擎,做3d游戏很不错,3d游戏模型资源很多,教程很多,也很适合新手入门
官网:https://unity.cn/
特点:可以团队协作、可以制作高端游戏、可以制作规模宏大的游戏。
不爽点:购买价格比较贵
推荐点:大型游戏、手游、使用人数居多、资料很多,教程很多
Unity, 使用C#或Lua语言开发。国民3D引擎,这个称号说明了Unity在3D引擎的市场地位,中小型的游戏公司做3D游戏,基本都是用Unity, 很多大公司的游戏也用Unity, 比如《王者荣耀》, 国外什么情形呢?AppStore上面80%的3D游戏都使用Unity游戏引擎开发。
为什么Unity打败了众多高手,成为国民游戏引擎,我们也好好的说一下。时间回到2010年左右,当时页游比较火,Unity那个时候引擎的定位是能开发PC端游和页游的游戏引擎。
随着手游时代来临,市场急需一个3D游戏引擎,能一次开发多平台发布到Android与iOS, 而Unity成为了当时唯一的3D游戏引擎解决方案。和手游市场一起,Unity实现快速增长。
Unity能成为国民引擎还有一个很重要的原因,就是对初学者很友好,很方便就可以上手,极大的降低了3D游戏开发难度, Unity引擎的市场份额越来越大,技术人才, SDK,第三方插件, 技术资料等也越来越完整。
总结一下Unity的特点:
1、能制作精美的3D游戏画面,和定制渲染管线,画面效果不如UE4。
2、能制作各种类型的3D游戏上线,每种类型的游戏都被商业项目验证过。
3、完整的生态,一次开发多, 平台发布(PC, android, iOS, xBox)。
4、Unity不开源, 需要支付授权费才可以修改引擎代码, 发布后也要付授权费。
5、Unity开发2D游戏相对包体过大。
6、Unity 3D H5支持比较薄弱,不支持微信/抖音/华为/Facebook等H5小游戏平台。
说明:非常适合做html5、各类平台小游戏的游戏引擎。
官网:https://www.layabox.com/
特点:兼容性很好,相对比egret,兼容各个小游戏平台的程度较高【个人体验】
不爽的地方:ui编辑方面需要下载其他工具
推荐点:简洁清爽、兼容性好、支持3d
Laya游戏引擎,使用As, js, Ts开发。H5 刚新起时,H5跑3D游戏,很多公司都不看好,认为以H5的性能,不足以跑效果好的3D游戏, 但是H5游戏有普通游戏无法比拟的优点就是不用安装,点开就可以玩。
那个时候PC页游已经发展成熟,同时手机页游大规模兴起,页游依靠FlashPlayer,而到手机上,就没有FlashPlayer这个东西,随之取代的就是H5。
对于是页游的开发者,想要把游戏跑到手机网页上,就需要将Flash开发的游戏,转成H5游戏。Laya最开始就是完成这件事情的。
所以Laya支持的开发语言有AS, JS, TS,就是这么来的。Flash转H5,商业上不上太成功,后来随着h5的发展,直接转为H5 3D游戏引擎,是最早在H5上跑出大型商业3D游戏的H5 3D引擎, 在H5 3D这块积累了很多经验和成熟上线的产品案例,现在80%左右的3D微信抖音oppo vivo小游戏都是laya引擎做的。
Laya是先做H5平台,然后再做的native平台(PC, iOS, Android)。总结一下Laya的特点:
最早的被大规模商业项目验证的H5 3D游戏引擎,发布微信抖音等小游戏平台非常成熟。
借用强大易用的Unity编辑器可兼容3D资源,如果一个游戏是Unity开发,你要移植到H5,那么Laya一定是首选。
说明:UE4 是 AAA 游戏开发者的首选引擎,以其逼真的渲染而闻名。很多大型3A游戏都是使用UE4开发的,比如腾讯的《和平精英》等。
官网:https://www.unrealengine.com/zh-CN/
特点:3A级游戏技术开发成熟,画面效果好
不爽点:购买价格比较贵
推荐点:大型游戏、手游、使用人数居多、资料很多,教程很多
UE4, 开发语言C++和蓝图。UE4是3A游戏开发者引擎的首选,它以逼真的渲染效果著称。很多大型的3A游戏都采用UE4来开发,比如腾讯的《和平精英》等。
UE4采用C++开发,虽然有蓝图,但是很多公司正式项目都去蓝图化,采用C++开发游戏,与C#和Js/Ts相比,开发难度大,当然C++可以获得更好的性能。
UE4不支持H5,但是可以发布到主流的游戏平台,PC,iOS, Android等,但无法发布到H5游戏平台。
总结一下UE4的特点:
1、画面效果好,3A游戏的首选。
2、C++开发难度相对较大,所以爱她的程序员和恨她的一样多。
3、开发3A级游戏技术成熟, 画面效果好。
4、不支持H5。
名称 | 开发语言 | idea | 是否开源 | 资料情况 |
---|---|---|---|---|
laya | As, js, Ts | 简洁方便,导出便捷 | 非,但可免费用 | 适中,官方有基础教程 |
unity | C# | 需要购买 | 否 | 很多,包括视频教程 |
egret(白鹭) | js/Ts | 简洁方便,需要安装额外idea,可以做动画龙骨,工具很全 | BSD 开源协议许可 | 适中 ,官方有基础教程 |
ue4(虚幻4) | C++ | 简洁方便,需要安装额外idea | 需要购买 | 很多,包括视频教程 |
cocos | cocos2d支持object-c、cocos2dx支持C++、lua和JAVA、cocos creator支持js | 简洁方便,需要安装额外idea | 是 MIT 开源协议许可 | 很多,很多 |
1、unity基于的是相对比较开放的原则,ue4基于的是相对比较封闭的原则,也就是说,一般意义上,不修改源代码的情况下,unity可以自定义的自由度比ue4高,ue4相对封闭,很多东西都提供了完善的工具,但是并不太提供自定义和修改。其实很难说哪个更好,举个例子,unity的character controller基本需要自己写或者通过plugin完善,类似的例子还有很多,比如behavior tree,unity也没有提供官方的解决方案目前,网上大多数的plugin确实是好事,但是大部分也是看上去能用,要真的打磨到production level也需要不少精力。ue4呢?很多工具都已经做到很不错的质量,能够实现的功能一般都比unity的第三方插件好,但是也是有那个问题,需要做一些修改的时候如果不改代码就很难,虽然封装的很不错但是有点“强迫你follow它的架构的意思”。
2、资料和文档还有视频和社区,unity其实已经非常非常成熟了,经历了这么多年的迭代,有全球最大的社区,最多的资料和视频,非常非常多的人使用unity,可以这么说,一个新游戏需要踩的坑基本全世界肯定有人踩过了,这对团队来说是极大的优势,但是有一个很严重的问题,一般的开发团队没有源代码,真正遇到坑之后,基本没有太好的办法去解决,这对一个成熟的团队来说是很致命的,所以现在很多使用unity的成熟团队都购买了源代码。ue4我记得2014年的时候我也研究过一段时间,当时的感觉真的是,资料非常少,但是过了这么多年,再转头重新研究,发现真的是完全改善了,这也得益于epic大量的投入和开发者越来越庞大,一般的问题基本都能找到答案,但是还有一个天然的优势,就是源代码的开放,就算你不修改,阅读源代码也比很多文档直接好用很多,同时这也是一把双刃剑,对于不熟悉c++的团队来说这反而成了一种阻碍,大体来说还是unity的支持更好一点点,但是也差不太多,特别是这两年epic的急剧发展。
3、最后稍微介绍一下gameplay framework方面的对比,unity采用gameobject和component的架构,ue4也采取了类似的架构,但是更加hybrid一点,无论是历史遗留原因还是其他原因,ue4有很冗长的继承结构,actor也能有component,但是很多例子也有直接使用actor自身的,不完全依赖component。unity采用的是prefab,ue4相应的功能有blueprint,这个结合我自身的经验,ue4的robust程度和方便程度远远大于unity,他的每一个模块的自定义editor真的比unity的方便太多,特别是setup方面的。从引擎内定的editor来比较ue4的迭代效率比unity高很多,特别是中大型项目的迭代速度。另外个人感觉如果比较熟悉的话小团队制作一些游戏prototype速度也不会比unity慢。
开发2D游戏:
开发3D游戏:
Cocos
优:Cocos这么多年的市场地位在那里摆着,Cocos的技术底子在那里,所以Cocos还是非常值得信赖的。 Cocos Creator是一个非常好的产品,可以参考Unity ,至于为什么还是请参考Unity
劣:尺有所长必有所短,往往自己的长处也就是自己的短处 Cocos IDE、Cocos Studio让开发者对于Cocos Creator 非常怀疑(万一哪天被干掉了,虽然@王哲说不会干掉,但是狼来了) Cocos布局H5算是非常早了,但是太早了(懂的人自然懂),后来遇到挫折一度搁浅,错过了发展的黄金时期,现在成熟度和Egret有些距离 。
Egret
优:正是由于Cocos当初H5推进的一度搁浅让白鹭能够出现《围住神经猫》这个爆款。至于各个公司发的PR什么引擎适合小游戏,什么引擎适合重度游戏,都是忽悠不懂技术的人。引擎成熟到一定程度,基本上所有引擎的性能差别微乎其微,大家比的都是服务。不展开了,这是产品理念。 上边说了爆款,后边H5市场上最成功的几个H5游戏基本都是Egret开发的,比如挂机类《愚公移山》、传奇类《传奇世界》《决战沙城》、模拟经营类《猫来了》《猪来了》、回合制《梦道》、年度爆款《传奇来了》自然选择了Egret。 与此同时白鹭的H5工作流也越来越完善,目前来看依然是最成熟的H5引擎
劣:上边说了Egret占据了非常好的时间点切入H5引擎市场,但是转眼间Egret引擎已经三岁了,而H5技术这三年的变化是非常大的,2014年你需要预判技术的发展走向,是选择as、js还是ts,你选择DOM、Canvas还是WebGL等等,没有谁是先知,你可能做对了99件事,但是一件事错了就需要弥补。比如2.5那次版本升级,从GUI转向EUI,很多开发者不解,但是需要做,而这些事Egret、Cocos已经经历了很多次。
Laya
优: Laya的优势也非常明显,等Laya切入进来的时候H5市场已经非常明朗,先做Canvas然后准备WebGL 没有历史包袱,LayaAir满打满算还没有一年,按照前边Cocos和Egret走过的路快速走一遍,最重要的就是时间。Laya刚刚切入市场的时候推出了LayaBox,这个也是没有经验做了一个非常错误的决定,但是正是因为没有市场份额,所以去年中的时候直接砍掉了LayaBox也没有人会说什么,甚至大家都以为LayaAir就是LayaBox其实是完全不同的引擎。
劣: 时间太短,Cocos和Egret经过的路他没有走过,所以犯了推出LayaBox又砍掉的错误,还没有经历过Egret GUI转向EUI那种问题,因为LayaAir还不到一年,所以成熟度有待商榷。 工作流不完善,需要使用第三方工具自己去组建工作流 最大的劣势就是Cocos有原生行业霸主地位背书,Egret有H5最成功的商业项目背书,而Laya目前没有一个成功的商业项目(月流水1000w以上)。