游戏引擎之争就像编程语言之争一样,在游戏开发圈永远是一个火爆的话题,目前市面上主流的一些游戏引擎,我们来给他们做一些比较,了解他们的历史,特点, 为了严谨,备注一下写这个文章的时间编写时间是2021年4月20日。目前国内主流在用的游戏引擎有, Unity, Cocos, Laya, UE4, 白鹭, 接下来我们一起来分析这些引擎的特点。
这里有个游戏开发交流学习小组点击可以直接加入,一起学习交流吧
1: 国民3D引擎Unity
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的特点:
- 能制作精美的3D游戏画面,和定制渲染管线,画面效果不如UE4。
- 能制作各种类型的3D游戏上线,每种类型的游戏都被商业项目验证过。
- 完整的生态,一次开发多, 平台发布(PC, android, iOS, xBox)。
- Unity不开源, 需要支付授权费才可以修改引擎代码, 发布后也要付授权费。
- Unity开发2D游戏相对包体过大。
- Unity 3D H5支持比较薄弱,不支持微信/抖音/华为/Facebook等H5小游戏平台。
2: 国民2D游戏引擎Cocos, 3D引擎的新贵
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特点:
- 引擎完全免费,开源,包体小,定制灵活;
- 引擎开发2D游戏经过大量验证,非常适合2D游戏开发。
- 全新的3D引擎,能开发3D游戏,但是还有提升空间。
- 一次开发,多平台发布,与传统引擎不同的是,可以发布H5的平台。(微信/抖音、华为小游戏平台)
- Creator 3D引擎生态还不够丰富, 如第三方插件等。
- Cocos Creator 开发2D游戏得到大量验证,3D还需产品验证。
- Cocos H5 游戏runtime内核在行业做的非常好,可以提供高效的H5游戏运行方案。
3: Laya 游戏引擎, H5上大规模跑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一定是首选。
4: UE4游戏引擎, 3A游戏的首选引擎
UE4, 开发语言C++和蓝图。UE4是3A游戏开发者引擎的首选,它以逼真的渲染效果著称。很多大型的3A游戏都采用UE4来开发,比如腾讯的《和平精英》等。UE4采用C++开发,虽然有蓝图,但是很多公司正式项目都去蓝图化,采用C++开发游戏,与C#和Js/Ts相比,开发难度大,当然C++可以获得更好的性能。UE4不支持H5,但是可以发布到主流的游戏平台,PC,iOS, Android等,但无法发布到H5游戏平台。总结一下UE4的特点:
- 画面效果好,3A游戏的首选。
- C++开发难度相对较大,所以爱她的程序员和恨她的一样多。
- 开发3A级游戏技术成熟, 画面效果好。
- 不支持H5。
5: 白鹭游戏引擎
白鹭引擎,开发语言是Js/Ts。白鹭游戏引擎对于H5游戏是有着不可磨灭的贡献,它是最早的H5游戏引擎,它里面的很多工具非常好用,到现在还被其他的引擎使用,比如骨骼动画工具,DragonBones被广泛引用到游戏开发中。最早一批的H5游戏开发者一定都是使用白鹭。白鹭引擎在H5游戏这个邻域有着不可磨灭的贡献。后来白鹭也推出了Native平台。总结一下白鹭的特点:
- H5游戏的先驱,为H5游戏做了不可磨灭的贡献。
- H5 2D游戏技术成熟,经过很多商业游戏验证;
- 3D功能有,但是商业项目3D游戏用的比较少;
好了总结了身边的一些游戏引擎,到底学哪个呢?其实学习游戏开发过程中,最终把原理原则搞懂,引擎是工具, 开发者学习开始于工具,但不止于某个工具。