游戏的引擎到底是什么,它在游戏中起到什么作用?
所谓游戏引擎,简单地来说,就是一组专门用于游戏编程的API(Application Programming Interface,应用程序编程接口,不懂编程的可以简单粗暴地理解为一组函数)的集合。使用游戏引擎,能够简化我们的游戏编程工作。
为了便于大家理解,我举个比较容易明白的编程方面的类似例子。比如说,在我们实际的编程中,会经常根据需要编写大量的函数,每一个函数能够完成一定的功能。简而言之,每个函数就是一个功能载体。例如,要实现查找功能,就编写一个 bool find(string ObjName) 函数,该函数带一个参数,即要搜索的对象名,并返回一个 bool(逻辑真假)值。如果该对象没有找到,就返回假(false),否则返回真(true)。这样,如果我们在编写程序的过程中,想确定一下某个对象到底存不存在时,只要调用这个函数即可,从而大大简化了工作量。
同样的道理,游戏引擎也是做的类似的工作。在游戏编程中,由于考虑到性能等等多方面的问题,很多时候需要直接访问硬件底层,如果不使用游戏引擎,带来的工作量是相当之大的,难度也是非常之高,有些时候甚至是不可能完成。不过,有了游戏引擎,工作量就大大减轻了,因为游戏引擎本质上就是一组可供我们调用的函数集合,它已经为我们封装了那些底层的代码。我们无需关心这些功能具体是如何实现的,只需要根据我们的要求调用相关函数即可。
还是用上面那个搜索函数的例子来类比,你要想实现查找,就调用 find 函数。至于 find 函数是怎么实现查找 ObjName 对象的,用的是什么算法,在搜索过程中需分配多少内存,查找如何根据一个字符串去匹配一个对象或者遇到错误又如何处理,等等,我们无需去关心。同样的,有了游戏引擎,比如说我们要想在屏幕上渲染一个 3D 图形,只需要调用该引擎提供的 3D 渲染函数即可,至于这些 3D 渲染函数内部究竟如何实现,在不同系统上又是如何做到迅速高效地在屏幕上绘制出精美一致的图形,我们无需去关心。