前段时间在知乎上看到一个脑洞大开的问题:存在用0和1一位数一位数敲出的视频吗?

游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧

很多网友在下面评论,其中一个ID叫“看星星的Go熊”说:

我居然真的去算了一下。确实不管是视频还是其他的计算机程序,最最最底层就是一串0或1的数字串。

1、假设视频大小为100MB,也就是102400KB,也就是104857600字节,也就是838860800个二进制位。

2、假设你有某种工具可以像这样直接敲一串二进制串并且把它转换成视频文件。

3、假设你每秒敲2个数字,不吃不喝,不中断,不出错。

敲完这些,你需要419430400秒,也就是6990506分钟,也就是116508小时,也就是4854天,也就是13年。不吃不喝要敲13年,而且还不能出错哦。这还仅仅是100MB的视频,如果是500MB,这个数字就再乘以5,65年……

从理论上来说,这种可能的确是存在的,但现实中,真的有人会花费几十年的时间做这种低效率的事情吗?实际上也没有这个必要,计算机完全可以帮我们处理这些海量的数据。

这个例子和我们今天要讨论的问题十分相似,所以拿来做一个引子,正如标题所提问的,开发游戏必须使用引擎吗?不过,想要回答这个问题,首先得解释:

什么是引擎?

百科上是这样解释的:游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。

通俗一点就是说,游戏开发者完全没必要从零开始费时费力做一款游戏,而游戏引擎就可以理解成一系列的工具集成,包括渲染、碰撞、物理、动画、音效、网络、脚本等等模块,这是一套解决方案,它能够让你快速地制作并发布一款游戏。

游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧

那么,开发游戏必须使用引擎呢?

以国外一些商业引擎为例,如瑞典EA DICE工作室的寒霜引擎(Frostbite Engine),就是为了《战地》系列制作的,起源引擎(Source Engine)则是由Valve公司为了《半条命2》而开发,国外游戏大厂动用数十上百人耗费数年时间开发大型游戏,在这个过程中,衍生出了游戏引擎这样一个副产品,开发《雷神之锤》的Quake引擎和《战争机器》的虚幻引擎均是如此。

但是对国内开发者而言,尤其是研发手游和H5游戏,除了腾讯、网易有资金去做一些自研引擎,小团队则更适合选择一款商业引擎,缩短开发周期、节约成本。退一步说,就算能力强大到可以凭一己之力编写出各种工具,这些工具实质上也是引擎,称呼不同而已。

例如策划做一个PPT,没有模板当然也可以做,区别在于制作的速度以及最终的效果如何。Stop Trying to Reinvent the Wheel(不要重复造轮子),这一概念在软件开发领域尤其重要。

游戏引擎名词解析

上文已经提到,游戏引擎可以理解成一套游戏开发的解决方案,随着技术的进步,这套方案的复杂程度也越来越高。这里简单地解释一下这些技术名词背后的含义(C2engine引擎技术交流群:189087351)。

游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧

1。摄像机

电影用镜头把故事呈现给观众,而引擎则用摄像机把游戏世界呈现给玩家。在场景中,至少需要摆放一个摄像机,当然也可以摆放多个。多相机的使用可以给你一个双人分屏效果或创建高级自定义效果。你可以让摄像机动起来,或者用物理组件控制它们。几乎你想到的任何画面,都可以用摄像机变成可能。

游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧

2。碰撞

在引擎中,创建的游戏对象是不具有属性的。比如说,虽然在引擎中放置了一颗树,但是如果没有添加属性,那它仅仅只是一个有形状、有贴图的模型。所以,游戏中房屋的墙壁、树木等你不希望玩家“穿过”的物体,都需要加上网格碰撞属性,否则就会出现一些让玩家吐槽的BUG。

3。动画

脚本可以控制模型参数生成动画,但是脚本的编写不够直观,而且较为复杂,所以这时候就需要一个更加高效的实现方式,那就是动画编辑器。基本的人物待机动作和招式、规律运动的地刺、山上滚落的巨石等等,都可以通过动画编辑器实现。但是一些复杂模型动画(如:骨骼连带动画)还是需要在3DMAX或Maya等专业软件中制作。

游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧

4。粒子

简单地说,粒子系统是一些粒子的集合,通过指定发射源在发射粒子流的同时创建各种动画效果。你在游戏中看到的火焰、烟雾、水流、雨雪、灰尘、流星尾迹等等这些视觉效果都是通过粒子系统实现的。强大的粒子系统可以渲染出美轮美奂的震撼视觉效果。

5。打包

这里说的打包自然不是去餐馆吃饭吃不完打包带回家,游戏开发领域的“打包”,指的是将编译好的代码及烘焙好的内容打包到一个可发布的文件集合中,比如一个针对Windows的。exe安装包,或者Android的。apk文件。例如C2engine,就可以一键发布到ios、Android、Mac、windows等等平台,或者以H5的形式发布,能够帮开发者节约大量时间。当然,如果项目包含很多内容及地图,那么打包的时间也会相对较长。

游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧游戏引擎是什么,三分钟带你了解引擎的来龙去脉-风君小屋帮我吧

“游戏引擎科普”,这是专门为游戏爱好者策划的一系列新手向科普类型的文章,和大家一起去揭开游戏引擎行业的神秘面纱,包括国内外引擎的最新情报。