加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 网络游戏 > 网页游戏 > 正文

敲开游戏引擎的大门,聊聊引擎的来龙去脉

发布时间:2020-02-20 06:29:51 所属栏目:网页游戏 来源:站长网
导读:副标题#e# 游戏引擎究竟是什么?恐怕就算是资深行业人士也很难三言两语说清楚。让我们一起来敲开游戏引擎的大门,聊聊引擎的来龙去脉。 1什么是游戏引擎 什么是游戏引擎?其实这很难给出明确的定义。在很多游戏的宣传中,我们总会听到对游戏引擎的推崇。绚
副标题[/!--empirenews.page--]

  游戏引擎究竟是什么?恐怕就算是资深行业人士也很难三言两语说清楚。让我们一起来敲开游戏引擎的大门,聊聊引擎的来龙去脉。

  1什么是游戏引擎

  什么是游戏引擎?其实这很难给出明确的定义。在很多游戏的宣传中,我们总会听到对游戏引擎的推崇。绚丽的特效,流畅的体验,似乎都是游戏引擎的功劳。在游戏玩家看来,游戏画面的表现力越好,游戏场面的震撼程度越大,游戏体验的真实感越强,底层的游戏引擎就可能越强大。

  看看业界给出的一些定义。

  游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地写出游戏程序而不用从零开始。大部分游戏引擎都支持多种操作平台,如Linux、Mac OS X、Windows。游戏引擎包含渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效引擎、脚本引擎、电脑动画引擎、人工智能引擎、网络引擎以及场景管理引擎。

  根据上述定义,在很多人看来,游戏引擎负责把很多已有的零部件组装起来,如同组装手机,CPU、屏幕、摄像头、主板等都是别人生产的,手机厂商按照自己喜欢样式组装一下就好了。

  下面再看看Game Engine Architecture(中文书名《游戏引擎架构》,ISBN是978-7-121-22288-7)是怎么说的:

  通常,游戏和其引擎之间的分界线是很模糊的。一些引擎有相当清晰的划分,一些则没有尝试把二者分开。在一款游戏中,渲染代码可能特别“知悉”如何画一只妖兽(Orc);在另一款游戏中,渲染引擎可能只提供多用途的材质及着色功能,“妖兽”可能完全是用数据去定义的。没有工作室可以完美地划分游戏和引擎。这不难理解,因为随着游戏设计的逐渐成形,这两个组件的定义会经常转移。

  似乎游戏界引擎专家也无法真正给引擎下一个明确定义,虽然大家都知道什么是游戏引擎,却很难用三言两语把它表述出来。本节尝试用比喻的方式把它讲清楚。

  假设我们穿越回20世纪80年代,我们的手中已经有整套的FC游戏《超级马里奥》(见图1(a))的代码,现在我们要开发另一款FC游戏《冒险岛》(如图1所示)。此时我们需要从零开始吗?显然,这两款游戏有着太多共性,都是一个游戏角色在横板卷动的地图上蹦来蹦去,都可以踩死怪物。当然,也有不同,画面不同,声音不同,关卡不同……但对于共同的功能,聪明的我们当然会重用一些现成的代码。而这种横板卷轴游戏模板的通用性非常好,目前游戏界对它的需求量也非常大,所以我们决定把这种特定类型游戏的核心功能提炼出来,供那些也要开发这种游戏的人使用。

敲开游戏引擎的大门,聊聊引擎的来龙去脉

  (a)

敲开游戏引擎的大门,聊聊引擎的来龙去脉

  (b)图1《超级马里奥》与《冒险岛》游戏画面

  后来,蹦蹦跳跳的游戏逐渐没落,即时战略游戏开始兴起,有人要开发即时战略游戏《红色警界》(如图2所示)。

《红色警界》游戏画面《红色警界》游戏画面

  虽然游戏模板的代码能渲染2D动画、播放声音、处理鼠标键盘的按键响应,但无法用于即时战略游戏。因为玩家们想要的是多人联网,这就要求程序能够处理大量同屏2D动画,能够快速编辑适应即时游戏的关卡,能够运行无法与玩家和平相处的AI,甚至能够让游戏运行在不同的地方,比如PS1和PC。可是原有的游戏模板根本做不到这些。

  直到有一天,卡马克设计了一款叫《DOOM》(中文名《毁灭战士》)的游戏(如图3所示),这简直就是PC(DOS系统)游戏史的一个里程碑。这款游戏漂亮的3D画面,让很多游戏爱好者在电脑房(很遗憾,那时只有局域网)“火拼”。

《Doom》游戏画面《Doom》游戏画面

  卡马克又写出了全3D的游戏《QUAKE》,而且支持当时最强大的3D加速卡,人们再次被震惊了。崇拜卡马克的人们用《QUAKE》的代码制作了新的射击游戏——《Counter-Strike》,也就是家喻户晓的CS。《QUAKE》的动画、渲染的程序也被拿来继续开发其他游戏。

  故事总归是故事,但对于《冒险岛》来说,被复用的那部分《超级马里奥》代码其实就是最早的游戏引擎。不过它的技术没那么先进,功能也不甚强大,还缺乏顺应潮流的更新,以致最终销声匿迹了。但卡马克的代码则不同,它超越了当时人们的想象力。他不但为射击游戏制定了完整方案,而且实现的代码功能强大。其高度的复杂性和健壮性,甚至让很多人乐于用其中的某些模块去开发非射击类的游戏,结果不但节省开发时间而且游戏健壮性也不错。这几乎是一部简短的游戏引擎发展史。

  我们为什么要如此辛苦地探讨引擎的定义?每个人心中都有自己的哈姆?雷特,对错已经没那么重要。开发属于我们自己的游戏,了解哪个引擎更强大以及什么引擎更适合,才是研究游戏引擎的真正意义所在。

  2那些年我们认识的引擎

  关于引擎的第二个争论就是到底用哪个引擎。

  从卡马克的时代开始,国外就有了关于游戏引擎的概念。根据游戏需求的不同,游戏厂商要么自己开发引擎,要么购买商业引擎。但真正的商业引擎不但必须有规范的开发流程,以便于定制化,而且要有后续的技术支持来帮助购买引擎的人解决遇到的各种问题,以保障购买者能够实现想要的功能。但能真正实现商业化的引擎也仅有少数几款。

  商业引擎数量少,加之每款引擎的授权费用高昂,所以很多团队更愿意自己开发引擎。而几乎每一款知名游戏都有自己的引擎,比如育碧的《刺客信条》、EA的《战地》、科乐美的《实况足球》。但自家的引擎同样需要不断迭代,以保证跟上时代的发展,否则落后的游戏引擎终究会被淘汰。

  在国内曾经技术匮乏的那个年代,Gamebryo和Ogre算是最早的两款引擎,Gamebryo是用得最多的商业引擎,Ogre是用得最多的非商业引擎。现如今,除了传统大厂商在自己迭代引擎之外,大部分厂商选择了商业引擎。国内厂商更是如此,在3D游戏引擎的选择上都很明确,手机端用Unity,PC端用Unreal Engine。这些引擎不同于以往特定类型的游戏引擎,它们耦合性很低,通用性更好。那些年风光的引擎如图4所示。

那些年风光的引擎那些年风光的引擎

  游戏引擎曾经百花齐放,如今则大局已定。那么自研引擎是否已是明日黄花了呢?

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读