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

EzAMC


先给出游戏引擎的定义把:

游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些互交式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程序而不用由零开始。

其实不需要游戏引擎也能制作游戏,比如C#,VB这些的都能用来制作游戏,不过过程极为复杂,甚至制作一款连连看这类的小游戏都得花费大量的时间和精力。后来为了减少游戏工作者的工作量,那些游戏制作的前辈们就将他们先前设计过的程序做成一个又一个的程序包整合起来成为了一种随时方便后续游戏工作者调去的工具,这就是游戏引擎。

目前市面上在流通的比较出名的游戏引擎有unity3D,虚幻4,havok等等;还有一些很出名但是只是个别公司御用的引擎比如动视暴雪的IW,EA的寒霜。

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

那我们来理一下游戏引擎,游戏和编程语言之间的关系吧

游戏引擎+编程语言→游戏

编程语言→游戏

上面这两条基本就是这三者之间的关系咯~

那么做游戏的话仅仅学会使用游戏引擎就足够了么?

如果你只是目标做一款类似于连连看这种的小游戏话,unity绝对是首选,随便拖两下基本就能动了。但稍微规模开始大的话就得了解C/C++,OpenGL/DX,图形学,线性代数(图形学的基础)。看到了吧,大学时候你们说学线性代数没用,其实在程序设计的时候线性代数是非常关键的知识!

好了,其实今天说的算是比较简单的,因为涉及到游戏引擎的话还有非常多的东西,因为不同的引擎支持的编程方式也有点不太一样,不过C和C++就像屠龙宝刀基本都能通杀哈哈,因此大学计算机专业到现在C语言也依旧是必修课程,甚至只要是一些和程序设计有点相关的专业也都要学C语言。


麦大麦


首先什么是游戏引擎?以下就是游戏引擎的解释(图片来自百科)
那么简单点讲到底什么是游戏引擎呢?我先举个例子,一家游戏公司要做十个游戏,这十个游戏有40%的代码部分是一样的( 场景切换,声音效果解析,键盘控制角色,场景的创建等等),60%的代码部分是不一样的。游戏公司有两种选择解决方法:

  1. 第一种 这十个游戏都是从头开始写不管是40%一样的部分还是60%的不一样的部分每个游戏都要写一遍。


  2. 第二种 首先写游戏之前把这个十个游戏中把那个40%的一样的代码部分写成若干个类库,组件。开始写游戏的时候只写那个不一样的60%的代码部分,需要些那40% 一样部分的时候就直接调用先前写好的类库,组件,避免重复写一样的代码浪费时间,浪费精力,浪费资金。

游戏引擎就是先前写好的40%的代码部分,任何游戏有可能用到的代码部分写成独立的工具,然后把好几个像这样的工具集合在一个软件上 这就是游戏引擎。

比较流行的游戏引擎有,虚幻4,unity3D,cocos2dx...等等。



游戏引擎与游戏本身是没有什么关系因为你写游戏的时候可以不用游戏引擎直接调用平台(Win,OS,Android)提供给你图形库,声音库,和硬件,输入输出设备有关的类库,库函数。

如果说有关系那就是用游戏引擎写游戏的时候必须要遵守引擎的规范,用引擎写的游戏有一定程度上依赖引擎提供的游戏运行环境。

不过经济上有很大的关系因为上面提到的虚幻4,unity3D等引擎前期是免费,等游戏写完开始盈利到一定的程度以后引擎公司从游戏公司拿一部分作为引擎的授权费。而且不是一次性的。


就算有了游戏引擎的帮助上面讲的那个60%不一样部分还是我们自己用变成语言编写完成。每个引擎支持的编程语言是不一样的,有的支持c/c++,有的c#,有的js。每个引擎支持的编程语言数量也是不一样的,有的引擎只支持一种编程语言有的就好几个变成语言。


以上全是个人理解有很多不足的地方不喜欢勿喷,如有喜欢的朋友记得点赞,点关注。


笑笑笑更好笑


在IT行业和电竞行业,很多人都听说过“游戏引擎”、“编程语言”这类和游戏相关的专业名词,但未必能弄清楚这些名词间的关系。

首先我总结一下“游戏引擎”、“游戏”、“编程语言”三者的关系:

  • “游戏”是最终产物,是一款程序;

  • “游戏”需要用“编程语言”来开发,来编写源代码;

  • “游戏引擎”是已开发好的游戏公共组件,它对外提供了SDK,可以让游戏开发者避免重复造轮子、快速的开发出游戏程序;“游戏引擎”其实也是程序的一种(本身也是由编程语言来开发的),另外支持多种开发语言来调用它。

游戏开发者通过编程语言和游戏引擎来开发出游戏程序。

游戏引擎其实就是游戏开发过程中的必要公共组件和小工具,一般的游戏引擎包含以下子集系统:

  • 渲染引擎,支持二维、三维图像的渲染;

  • 物理引擎,如重力检测、运行检测;

  • 脚本引擎,支持一些脚本语言,如很多游戏引擎都支持Lua脚本;

  • 音效系统,游戏中各类音效的实现与管理;

  • 动画引擎,动画管理;

  • 人工智能,如语义理解

  • 网络引擎

现在主流的游戏引擎如:Unity3D、Cocos2D等,有兴趣的都可以了解一下。

网络圈


\n

{!-- PGC_VIDEO:{"thumb_height": 360, "file_sign": "4693dd738df3e0f1d3cbea003cde4549\


分享到:


相關文章: