首先给出游戏引擎的定义:
游戏引擎是指一些预先编写的可编辑计算机游戏系统或一些交互式实时图形应用程序的核心组件。这些系统为游戏设计者提供了编写游戏所需的各种工具,其目的是让游戏设计者无需从头开始即可轻松快速地创建游戏程序。
其实不用游戏引擎也可以制作游戏,比如C#、VB等都可以制作游戏制作游戏引擎制作游戏引擎,但是过程极其复杂,甚至制作游戏。观看这样的小游戏需要花费大量的时间和精力。后来,为了减轻游戏工作者的工作量,那些游戏制作的前辈们将他们之前设计的程序一个接一个地集成到一个包中,成为了方便后续游戏工作者随时调动的工具。这是游戏引擎。
目前市面上比较有名的游戏引擎有unity3D、Unreal 4、havok等;有一些非常著名但只被个别公司使用的引擎,例如动视暴雪的 IW、EA 的 Frost。
其实这些公司的皇家游戏引擎都是因为大公司有钱而诞生的,他们可以不依赖现成的游戏引擎,从零开始编写游戏。基于OpenGL或Direct3D,自行编写场景解析器和渲染器。为了配合美术和策划,至少要写一个场景编辑器。后来发现手动更改材质配置非常麻烦或者容易出错,所以需要再写一个材质编辑器。后来发现少了点什么,又写了点东西。如果把它写下来游戏动态,那么这些工具就会成为一套完整的3D引擎。
那么我们来看看游戏引擎、游戏和编程语言之间的关系
游戏引擎+编程语言→游戏
编程语言→游戏
以上两个基本上是三者的关系~
那么,如果您制作游戏,只需学习使用游戏引擎即可。够了吗?
如果你只是想做一个类似连连看的小游戏,Unity绝对是首选,基本上拖两下就可以移动。但是如果你从大一点开始,你必须了解 C/C++、OpenGL/DX、图形和线性代数(图形基础)。你看,在大学里,你说学线性代数是没用的。其实线性代数是编程中非常关键的知识!
嗯,其实我今天说的还是比较简单的,因为游戏引擎涉及的东西很多,因为不同引擎支持的编程方式也有点不同,但是C和C++就像龙一样Saber基本能杀哈哈,所以C语言还是高校计算机专业的必修课,甚至一些与编程相关的专业也要学C语言。