这是第51篇原创
前言:游戏引擎,表面上看是一个工具,实质上却是一本“技术图谱”,每一个点击行为的背后都有着其独到的意义。每一个模块都索引着数以万行的工程代码、数以百计的科研论文以及数以十计的专业书籍。学习引擎,其实就是一个修炼内功的过程,需要你不断深挖里面的技术细节,找到对应的学习资料并消化理解。
游戏引擎的概念我在前面文章已经说过,其实就是一套整合了各种游戏开发工具、封装底层并提供程序函数库的软件系统。
游戏引擎架构系统分层
引擎技术固然复杂,但通过这些年的不断迭代,大部分商业引擎已经拥有了非常完善的编辑系统、不错的交互体验、详细的文档以及丰富的开发功能,学习的门槛的降低也让更多的岗位参与进来(进而诞生出了越来越多的独立游戏)。下面列举了游戏开发中常见的岗位以及两条常见的协作开发的流水线:
其实学习游戏引擎,前期对于任何岗位来说路线都是相似的,基本上就是一个熟悉基本操作、理解基本概念、拓展专业知识的过程。但进入后期阶段,程序员需要拥有更多的思考和知识储备,需要从代码层面理解并进一步达到能够独立编写的境界。下面分享一下我近些年学习引擎的经验,希望能够帮助到你,
预备阶段:引擎选择,语言基础,计算机基础
Cocos、Cryengine、Unity、Unreal我都有接触过,其实发展了这么多年各有适合的领域,当然也有不少值得诟病的地方。如果非要一句话说出来谁好谁坏是不现实的,也显得很不负责任(其实每天都有人吐槽UE耦合的Gameplay、蓝图不好维护,吐槽Unity一堆半成品功能、资源加载慢、Mono低效等)。
在我看来,大部分人只要考虑学习引擎的成本,就业难度,发展方向就可以了,考虑目前市面上就业以及影响最广泛的是Unity和Unreal,所以只推荐这两个。
不过这两个引擎一开始就给开发者出了道难题:我是学C#还是C++?
如果你是在校生,有时间慢慢学习,那么更推荐Unreal,开源代码有更多的研究空间,C++学透了也是好处多多。
如果你是为了尽快找到一份工作或者快速出成品,Unity上手确实更快一些,C#也相对友好一点。
当然这不是绝对的,任何引擎的开始阶段和大成阶段都是相似的。但Unreal的学习曲线可能曲折一些(C++占了不小的因素),某一个阶段的受挫很可能会影响到开发者学习的动力和进度。
不管怎么说,学习语言、看书都是必经之路,无论哪个方向都要沉下心来好好看一两本经典书籍。比如C++,有《C++Primer》《EffectiveC++》《C++语言的设计和演化》入门和拓展,进阶有《C++Template》《深入探索C++对象模型》《MoreEffectiveC++》,虚幻引擎里面的C++是经过魔改的,如果你专注于写游戏逻辑,确实用不到太多的C++特性,但考虑到未来的成长还是要尽可能深入。C#书籍,《C#图解教程》《C#本质论》《C#高级教程》《深入理解C#》《CLRviaC#》,如果是纯小白,那么先只看一本,其他的慢慢消化。多说一句,语言的本质殊途同归,真正的大佬也不会拘泥于某一个语言。(PS:上述的电子书都可以从我的