APP下载

游戏引擎研究与分析

2018-03-10王龙李韬伟杨振发

软件导刊 2018年2期
关键词:电子游戏

王龙+李韬伟+杨振发

摘 要:电子游戏在近半个世纪发展过程中,成为了发展最迅速的行业之一。游戏引擎是缩短游戏开发周期、提高游戏研发效率的应用程序组件集合,包含多种功能模块接口,是保证游戏开发质量的关键。通过分析游戏引擎的国内外研究现状,剖析游戲引擎的组成原理,提出了游戏引擎的基本架构,分析了游戏引擎开发中绘制和事件双驱动的运行流程机制,设计了游戏引擎评价分析因子,并结合实例进行了简要说明,最后展望了游戏引擎的发展前景。

关键词:电子游戏;游戏引擎;Unreal;CryEngine;Unity3D

DOIDOI:10.11907/rjdk.172317

中图分类号:TP301

文献标识码:A 文章编号:1672-7800(2018)002-0005-03

0 引言

电子游戏从上世纪60年代出现以后,在短短的几十年时间发展迅速,极大地推动了软硬件行业发展。2013 年游戏《Grand Theft Auto V》(Rockstar 2014)发布的 24小时内,就为开发商创造了8亿美元的收入[1-2]。无独有偶,2016年游戏《王者荣耀》成为腾讯科技公司的最佳项目之一,为公司带来丰厚的利润与广阔的市场空间。电子游戏已然成为当今时代一个现象级的产物,不仅能够娱乐大众,还推动了各个行业的发展,是经济的重要组成部分之一[3]。

游戏引擎是缩短游戏开发周期、提高游戏研发效率的应用程序组件集合,包含多种功能模块接口,是游戏开发质量的关键。游戏开发是多个工种合力完成的一项大型复杂的工程[7-9]。游戏引擎出现之前,需要各个领域的专家耗费大量时间与精力才能完成一个简单的游戏。游戏引擎出现后,许多功能组件都进行了封装,开发人员不再需要面对底层开发,不必从零开始,从而有效提高了游戏开发效率。

游戏引擎在最近几年得到了快速发展,也成为互联网用户访问搜索的热点话题之一,图1是游戏引擎的百度指数图。百度指数是以大量网民在百度产生的互联网行为数据为基础,研究关键词搜索趋势、洞察网民兴趣和需求、监测舆情动向等问题的数据分析平台。百度指数能够反映事物在大众传播和舆论中的影响力。游戏引擎的搜索趋势图显示了游戏引擎受大众关注的程度。游戏引擎自2011年后,整体发展比较平稳,15、16年出现过一次较大波动。具体而言,2014年双核心显卡成功问世,意味着普通PC已可以渲染、绘制更精致细腻的3D电子游戏画面,因此游戏引擎引起了商业界、工业界和学术界的关注。2015年Unity3D多平台游戏引擎Unity5正式对外发布,图1 游戏引擎百度指数图使独立开发游戏变得越来越容易,一时间游戏引擎的概念再次被热议。2016年为VR元年,VR受到了广泛热捧,游戏引擎也因此备受关注。

时至今日,游戏引擎的数量在世界范围内有上百种,著名的有Unreal、CryEngine、Unity3D、Torque3D等[5-6]。不同的游戏引擎有着共同的框架结构,本文对游戏引擎的原理以及基本组成进行了研究,针对Unreal、CryEngine、Unity3D等最常用的游戏引擎展开分析,并对游戏引擎的发展作出展望。

1 游戏引擎基本架构

引擎在信息技术领域是指电子平台上运行程序或系统的核心组件,开发人员利用游戏引擎能够高效、便捷地设计和编写程序需要实现的功能[6]。游戏引擎是信息技术领域常见的三大引擎之一,即搜索引擎、杀毒引擎和游戏引擎。游戏引擎常被比作汽车引擎,游戏者感受到的游戏场景、剧情、音乐、逻辑等犹如汽车之于用户的速度、扭矩等,游戏引擎就是汽车的发动机,将游戏中的所有元素有序地组织在一起,为游戏提供强力支撑[10-11]。

游戏开发整个过程可以描述为,开发人员在计算机、音响、显示器等硬件设备上,在程序开发环境下利用开发工具,将游戏场景与真实世界融合显示给玩家,并针对情景设计游戏故事主题,以保证游戏的趣味性。因此,基于游戏引擎开发过程的思维角度,本文将游戏引擎架构设计为以下组成部分,如图2所示。

游戏引擎框架包括4部分:硬件、开发、场景、游戏性,这4个部分共同作用实现游戏引擎,具体介绍如下:①硬件部分主要包括:I/O接口、声音、网络和图形,此部分完成游戏引擎对硬件资源的管理与使用;②开发部分主要包括:开发环境、脚本解析、插件,为开发人员使用引擎、灵活装配功能组件提供支持;③场景部分为两部分:渲染引擎和物理引擎,这是游戏引擎最核心的部分。其中,渲染引擎还包括:光照、阴影、动画、粒子特效等子系统,是游戏体现真实感、交互性的关键组成。物理引擎由两部分组成:一是碰撞检测部分,碰撞检测是虚拟世界中模型与模型之间的物理关系,确保了虚拟场景中的模型不被“穿过”,提高了场景的交互真实感;二是物理模拟部分,包括重力、刚性物理、柔性物理,丰富了虚拟场景对真实世界的模拟;④游戏性部分主要包括:资源管理、场景管理、数学库与人工智能(AI),该部分包括了游戏逻辑、关卡设计,是用户游戏趣味性体验的重要部分。

2 游戏引擎运行流程

游戏引擎运行在计算机、电子设备等硬件平台上,通过引擎初始化启动硬件资源,按照绘制流程运行游戏设计人员设计的代码,实现游戏整个过程。游戏引擎目前已支持在多种不同平台上运行,既可支持传统的桌面平台,也支持页面牵引的网络平台;既支持桌面端的Windows系统和Mac系统,也支持移动端的Andriod系统和iPhone系统。不同平台、不同系统运行略有差异,总体上都满足如图3所示的运行流程。

游戏引擎运行是按照场景绘制和事件触发组织整个游戏过程。根据运行图,流程包括两部分:①场景绘制驱动运行,主要是指在游戏场景中光影发生强弱改变、视角发生移动、动画产生新序列、粒子系统粒子正常衰减等造成的场景内容本身的变化,游戏引擎则会触发重新绘制场景机制,运行程序;②事件驱动的场景变化,比如:输入设备感知到用户发生了向前移动的变化,以及场景模型碰撞被检测、关卡切换等交互事件,同样会引起运行程序启动不同模块。endprint

3 游戏引擎评价分析

游戏引擎经过几十年的发展已有上百种产品,功能也越来越丰富、强大,涌现出了一系列优秀的游戏引擎,如:重量级的规模庞大的Unreal虚幻以及CryEngine;中量級易于快速掌握使用的Unity3D以及DOOM/Quake等。可以说对于任意一个新设计的游戏,它能实现什么样的游戏效果,很大程度上依赖游戏引擎对它的支持。那么,如何评价众多游戏引擎,本文给出以下几个评价因素作为游戏引擎分析的依据,即:编辑器、第三方插件、SDK接口、场景绘制功能、硬件配置性能、平台及市场占有率。

编辑器是开发人员的工具,“工欲善其事,必先利其器”,一个好的编辑平台会大大缩短开发周期;对于第三方插件和SDK接口,当前在软件方面集成优秀的库与插件的效率远远高于自己开发,这是游戏引擎兼容能力的体现;场景绘制能力是检验游戏引擎的核心标准,是游戏最出彩的部分,包括场景光照、凹凸贴图、水面、雾等高级效果是检验游戏引擎最直观的标准;目前,随着移动设备的快速发展,支持跨平台发布游戏成为游戏引擎的最大需求;最后,市场占有率是能够间接反映游戏引擎功能的一个指标,市场越热其发展越快,功能也更新、更完善。

下面结合实例进行说明,如图4所示,Unity3D在近几年里,其百度搜索指数从2011年的与Unreal和CryEngine齐头并进,到2017年已成为游戏引擎的一枝独秀。事实上,这几年Unity3D已多次进行了版本升级,构建了完备的功能,从过去简单的游戏实现方式,发展成如今的场景绘制栩栩如生,可支持多传感器交互以及Windows、iOS、strawberry、Andriod等多个平台,同时支持网页游戏的开发与制作的多样化功能。功能的全面与完善带来了良好的口碑,在市场上发展劲头十足。

4 总结与展望

本文通过对游戏引擎现状与原理的研究,提出了游戏引擎的基本架构,分析了利用游戏引擎开发游戏中绘制驱动和事件驱动的运行流程机制,设计了游戏引擎评价分析因子,并结合实例进行了简要说明。游戏引擎是一系列计算机软硬件的接口,随着相关产业的发展,游戏引擎可支持在更多平台上运行,游戏的开发周期也将大大缩短。此外,Unity3D作为一款中轻量级的游戏引擎,近年来在社区的经营推动下,获得了快速发展,在场景渲染与交互方面表现极为突出,已适应在多种不同平台下的开发,具有广阔的应用前景。

参考文献:

[1] 马越.互联网经济估值研究[J].科技与企业,2016(1):19-20.

[2] 李金泰.电子游戏虚拟空间构成的理论研究[D].北京:清华大学,2015.

[3] 耿卫东.三维游戏引擎设计与实现[M].杭州:浙江大学出版社,2008.

[4] 陈启祥,王长顺.网络游戏引擎中的同步技术研究[J].软件导刊,2009,8(3):100-102.

[5] AZIZ E S S, CHANG Y, ESCHE S K, et al. Virtual mechanical assembly training based on a 3D game engine[J]. Computer-Aided Design and Applications, 2015,12(2):119-134.

[6] JACOBSON J, LEWIS M. Game engine virtual reality with CaveUT[J]. Computer, 2005,38(4):79-82.

[7] 王龙,任步春,等.基于Unity3D的FPS教育游戏研究与设计[J].软件导刊,2016,15(11):79-81.

[8] CHEN L, HUANG X. Research and realization of building the three-dimensional runway of Unity3D game based on PSO algorithm[C].International Conference on Computer Science and Network Technology, 2016:452-456.

[9] 宣雨松.Unity 3D游戏开发[D].北京:人民邮电出版社,2012.

[10] EBERLY D H,EBERLY D H. 3D game engine design: a practical approach to real-time computer graphics[C].Morgan Kaufmann Publishers Inc,2006:1-6.

[11] ERICLENGYEL,伦吉尔,詹海生.3D游戏与计算机图形学中的数学方法[M].北京:清华大学出版社,2016.endprint

猜你喜欢

电子游戏
互联网的未来:电子游戏产业也有元宇宙野心
电子游戏的利VS弊
沉迷电子游戏的小熊
打电子游戏是浪费时间?对那些获得电竞奖学金的人来说并不是
从玩具到电子游戏“乐高”为何能如此“笼络人心” ?
可不可以玩电子游戏
内置电子游戏的运动鞋