游戏的引擎到底什么,它在游戏中起到什么作用?

所谓游戏引擎,简单地来说,就是一组专门用于游戏编程的API(Application Programming Interface,应用程序编程接口,不懂编程的可以简单粗暴地理解为一组函数)的集合。使用游戏引擎,能够简化我们的游戏编程工作。为了便于大家理解,我举个比较容易明白的编程方面的类似例子。比如说,在我们实际的编程中,会经常根据需要编写大量的函数,每一个函数能够完成一定的功能。

简而言之,每个函数就是一个功能载体。例如,要实现查找功能,就编写一个 bool find(string ObjName) 函数,该函数带一个参数,即要搜索的对象名,并返回一个 bool(逻辑真假)值。如果该对象没有找到,就返回假(false),否则返回真(true)。这样,如果我们在编写程序的过程中,想确定一下某个对象到底存不存在时,只要调用这个函数即可,从而大大简化了工作量。

同样的道理,游戏引擎也是做的类似的工作。在游戏编程中,由于考虑到性能等等多方面的问题,很多时候需要直接访问硬件底层,如果不使用游戏引擎,带来的工作量是相当之大的,难度也是非常之高,有些时候甚至是不可能完成。不过,有了游戏引擎,工作量就大大减轻了,因为游戏引擎本质上就是一组可供我们调用的函数集合,它已经为我们封装了那些底层的代码。

我们无需关心这些功能具体是如何实现的,只需要根据我们的要求调用相关函数即可。还是用上面那个搜索函数的例子来类比,你要想实现查找,就调用 find 函数。至于 find 函数是怎么实现查找 ObjName 对象的,用的是什么算法,在搜索过程中需分配多少内存,查找如何根据一个字符串去匹配一个对象或者遇到错误又如何处理,等等,我们无需去关心。

为什么顽皮狗没用虚幻引擎却开发出了画质同样令人惊叹的《神秘海域4》?

索尼第一方游戏都是用的自家的游戏引擎,顽皮狗常年的日积月累这个引擎技术已经达到顶级水平,像画面并不是非要用虚幻引擎才能达到,像大的游戏公司都有自己的游戏引擎比如:r星的雷霆引擎,动视的iw引擎,Valve的起源引擎,Crytek工作室的ce引擎,美国艺电的寒霜引擎,卡普空的RE引擎,史克威尔艾尼克斯的夜光引擎,小岛秀夫工作室的FOX引擎,世嘉的龙引擎,育碧的Anvilnext引擎还有雪莲花引擎。

游戏引擎是什么?它与游戏软件本身是什么关系,它与编程语言是什么关系?

先给出游戏引擎的定义把:游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些互交式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程序而不用由零开始。其实不需要游戏引擎也能制作游戏,比如C#,VB这些的都能用来制作游戏,不过过程极为复杂,甚至制作一款连连看这类的小游戏都得花费大量的时间和精力。

后来为了减少游戏工作者的工作量,那些游戏制作的前辈们就将他们先前设计过的程序做成一个又一个的程序包整合起来成为了一种随时方便后续游戏工作者调去的工具,这就是游戏引擎。目前市面上在流通的比较出名的游戏引擎有unity3D,虚幻4,havok等等;还有一些很出名但是只是个别公司御用的引擎比如动视暴雪的IW,EA的寒霜。

其实这些公司的御用游戏引擎的诞生就是因为大公司有钱,完全可以不依赖现成的游戏引擎而让自己从头开始编写游戏。基于OpenGL或者Direct3D,自己写场景的解析器,自己写渲染器。为了跟美术和策划合作,至少还得写一个场景编辑器,后来发现老是手工改材质配置非常繁琐或者是容易出错,就需要再写个材质编辑器。后来又发现缺个啥,再写个什么。

如果完完整整都写下来,那么写出来的这些个工具,就成了一套完整的3d引擎了。那我们来理一下游戏引擎,游戏和编程语言之间的关系吧游戏引擎+编程语言→游戏编程语言→游戏上面这两条基本就是这三者之间的关系咯~那么做游戏的话仅仅学会使用游戏引擎就足够了么?如果你只是目标做一款类似于连连看这种的小游戏话,unity绝对是首选,随便拖两下基本就能动了。

但稍微规模开始大的话就得了解C/C ,OpenGL/DX,图形学,线性代数(图形学的基础)。看到了吧,大学时候你们说学线性代数没用,其实在程序设计的时候线性代数是非常关键的知识!好了,其实今天说的算是比较简单的,因为涉及到游戏引擎的话还有非常多的东西,因为不同的引擎支持的编程方式也有点不太一样,不过C和C 就像屠龙宝刀基本都能通杀哈哈,因此大学计算机专业到现在C语言也依旧是必修课程,甚至只要是一些和程序设计有点相关的专业也都要学C语言。


文章TAG:各种主流游戏引擎盘点  游戏引擎怎么用  各种  主流  游戏  
下一篇