先给出游戏引擎的定义把:
游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些互交式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程序而不用由零开始。
其实不需要游戏引擎也能制作游戏,比如C#,VB这些的都能用来制作游戏,不过过程极为复杂,甚至制作一款连连看这类的小游戏都得花费大量的时间和精力。后来为了减少游戏工作者的工作量,那些游戏制作的前辈们就将他们先前设计过的程序做成一个又一个的程序包整合起来成为了一种随时方便后续游戏工作者调去的工具,这就是游戏引擎。
目前市面上在流通的比较出名的游戏引擎有unity3D,虚幻4,havok等等;还有一些很出名但是只是个别公司御用的引擎比如动视暴雪的IW,EA的寒霜。
其实这些公司的御用游戏引擎的诞生就是因为大公司有钱,完全可以不依赖现成的游戏引擎而让自己从头开始编写游戏。基于OpenGL或者Direct3D,自己写场景的解析器,自己写渲染器。为了跟美术和策划合作,至少还得写一个场景编辑器,后来发现老是手工改材质配置非常繁琐或者是容易出错,就需要再写个材质编辑器。后来又发现缺个啥,再写个什么。如果完完整整都写下来,那么写出来的这些个工具,就成了一套完整的3d引擎了。
那我们来理一下游戏引擎,游戏和编程语言之间的关系吧
游戏引擎+编程语言游戏
编程语言游戏
上面这两条基本就是这三者之间的关系咯~
那么做游戏的话仅仅学会使用游戏引擎就足够了么?
如果你只是目标做一款类似于连连看这种的小游戏话,unity绝对是首选,随便拖两下基本就能动了。但稍微规模开始大的话就得了解C/C++,OpenGL/DX,图形学,线性代数(图形学的基础)。看到了吧,大学时候你们说学线性代数没用,其实在程序设计的时候线性代数是非常关键的知识!
好了,其实今天说的算是比较简单的,因为涉及到游戏引擎的话还有非常多的东西,因为不同的引擎支持的编程方式也有点不太一样,不过C和C++就像屠龙宝刀基本都能通杀哈哈,因此大学计算机专业到现在C语言也依旧是必修课程,甚至只要是一些和程序设计有点相关的专业也都要学C语言。
领取专属 10元无门槛券
私享最新 技术干货