想学习游戏引擎架构用哪个开源引擎好?
我猜,题主提问的时候,应该是2014年吧。爷青回啊!
先扯点别的
那个时候,我还在Gameloft引擎组,用的是基于Irrlicht发展起来的内部引擎 Glitch 3D,负责对引擎进行维护、增强和适配,以满足特定项目需要。
很著名的重度手机游戏 《The Amazing Spider Man》系列,《 Iron Man》系列, 《Dungeon Hunter》 系列, 《Modern Combat》 系列, 《Order & Chaos》, 《Heros of Order & Chaos》都是用的这款引擎。
特别是《Dungeon Hunter》 系列, 《Modern Combat》 系列, 《Order & Chaos》, 《Heros of Order & Chaos》,画面效果和游戏性已经不输给现在的游戏了(10年了)。
光栅化图形引擎里能加的东西,都加了。 在Gameloft的工作经历让我受益匪浅,让我充分学习并实践了引擎中各个模块,并应用到商业项目中。
否则我可能和许多人一样,还在不停的寻找什么开源引擎更适合学习吧。
回到正题
抱歉,说了这么多废话,我们回到题主的正题:学习引擎架构,用哪个开源引擎最好。
有了上面的经历,我才发现,引擎的学习和研发,是万万不能离开商业项目的。加上这个大前提,可以选的就不多了。
我先说结论,再说原因吧。
推荐一:Cocos Creator
十年前,OGRE是首选,其次是 Irrlicht。
但现在,我优先推荐: Cocos Creator
Cocos引擎_游戏开发引擎Cocos Creator 是 Cocos 引擎的最新版本,采用的是双核架构。支持2D、3D、原生与Web。
原生端内核使用C++编写,Web端内核使用TS编写, 对等架构,确保效果一致性。如果只是想看管线,甚至只需要看TS版本就可以了,非常方便。
如果对TS不熟悉,只想看C++的,直接看C++部分也行。 并且,Cocos Creator 的3D架构是从2015年开始设计的,没有历史包袱,很干净整洁。
目前支持:OpenGL,OpenGL ES,Valkan,Metal,WebGL,WebGPU 图形API。作为学习,我觉得已经非常棒了。
这里有一些视频可以看看:
我还写过一些版本介绍:
麒麟子MrKylin:Cocos Creator 3.6 新特性详解 1/3:编辑器篇麒麟子MrKylin:Cocos Creator 3.6 新特性详解 2/3:渲染篇麒麟子MrKylin:Cocos Creator 3.6 新特性详解 3/3:性能篇推荐二、UNREAL ENGINE 4
Unreal Engine | The most powerful real-time 3D creation toolUNREAL ENGINE 是公认的世界最强引擎,我就不多说了。
推荐三:UNITY3D
https://unity.com/UNITY3D排最后,并不是说它架构不好,而是因为它不开源。有人会说,那URP呢? 抱歉,URP 只是渲染管线,还不足以让你掌握引擎架构。
当然,如果只是想研究引擎渲染管线的话,UNITY3D 是非常不错的选择。
为什么?
可能还会有人提到什么 O3DE,Godot之类的,当然,这些也很强。
但,我们在学习的同时,还是应该看投入回报,之所以锁定在 Cocos Creator,UNREAL ENGINE,UNITY3D 这个三引擎,是因为:
1、这是世界上现存的商业化游戏引擎 TOP 3。
商业化引擎就是指,有很多商业产品在使用的引擎,有很多公司在招聘使用它的开发者。
2、商业化使得这些引擎的功能都经过了充分迭代,并且可以应用到项目。
正如题主所说, KlayGE等引擎,更多是作为学术验证,而非项目生产。
3、精通商业化引擎,使你的外在价值更高,获得更多的机会。
当然,如果你不考虑工作和养家糊口的问题,选什么都一样。
希望这篇文章能够给想要学习引擎研发的朋友们一些帮助。
写在最后
不小心搜到这个问题,很是感触,就很想认真回答一下。
在2000~2010这段时间,图形研究和引擎开发可谓是百家争鸣,随便一个小团队,都能找到会写引擎和图形的朋友。作为程序员,毕业要进游戏行业的话,会写引擎,懂3D图形甚至是标配。
而现在的情况,由于游戏引擎越来越好用,能够做引擎的人才逐渐出现了断层。
随着元宇宙需求的日益增多,3D渲染技术的需求再次高涨,引擎技术人才(引擎工程师、引擎架构师、渲染工程师、技术美术)在接下来的日子里又将是被各大公司挣抢的人群。
希望越来越多的朋友加入到引擎研究行列,了解引擎原理,才能将引擎用得更好。
我是麒麟子,大家可以关注我,一起研究和探讨更多关于游戏引擎和图形渲染的知识。