定义:
游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如Linux、Mac OS X、微软Windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。
无论是2D游戏还是3D游戏,无论是角色扮演游戏、即时策略游戏、冒险解谜游戏或是动作射击游戏,哪怕是一个只有1兆的小游戏,都有这样一段起控制作用的代码。经过不断的进化,如今的游戏引擎已经发展为一套由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节,以下就对引擎的一些关键部件作一个简单的介绍。
首先是光影效果,即场景中的光源对处于其中的人和物的影响方式。游戏的光影效果完全是由引擎控制的,折射、反射等基本的光学原理以及动态光源、彩色光源等高级效果都是通过引擎的不同编程技术实现的。
其次是动画,游戏所采用的动画系统可以分为两种:一是骨骼动画系统,一是模型动画系统,前者用内置的骨骼带动物体产生运动,比较常见,后者则是在模型的基础上直接进行变形。引擎把这两种动画系统预先植入游戏,方便动画师为角色设计丰富的动作造型。
引擎的另一重要功能是提供物理系统,这可以使物体的运动遵循固定的规律,例如,当角色跳起的时候,系统内定的重力值将决定他能跳多高,以及他下落的速度有多快,子弹的飞行轨迹、车辆的颠簸方式也都是由物理系统决定的。
碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。当两个3D物体撞在一起的时候,这种技术可以防止它们相互穿过,这就确保了当你撞在墙上的时候,不会穿墙而过,也不会把墙撞倒,因为碰撞探测会根据你和墙之间的特性确定两者的位置和相互的作用关系。
渲染是引擎最重要的功能之一,当3D模型制作完毕之后,美工会按照不同的面把材质贴图赋予模型,这相当于为骨骼蒙上皮肤,最后再通过渲染引擎把模型、动画、光影、特效等所有效果实时计算出来并展示在屏幕上。渲染引擎在引擎的所有部件当中是最复杂的,它的强大与否直接决定着最终的输出质量。
引擎还有一个重要的职责就是负责玩家与电脑之间的沟通,处理来自键盘、鼠标、摇杆和其它外设的信号。如果游戏支持联网特性的话,网络代码也会被集成在引擎中,用于管理客户端与服务器之间的通信。
引擎相当于游戏的框架,框架搭好后,关卡设计师、建模师、动画师只要往里填充内容就可以了。因此,在3D游戏的开发过程中,引擎的制作往往会占用非常多的时间。
主流游戏引擎
unity 3d
这是目前最火的游戏引擎之一,像王者荣耀和仙剑六都是unity 3d开发的,这个引擎开发效率很高。这个引擎要用C#来开发。
虚幻引擎
如果说unity 3d是第一的游戏引擎的话,那虚幻引擎能称第二。这是一个开源的引擎,它制作的游戏在画质上比unity 3d精美的多,但开发效率不如unity 3d。《绝地求生》就是这个引擎开发的。这个引擎下限很低,上限也很高,用这个引擎不会编程都可以做游戏,这里面有个叫“蓝图”的东西,用蓝图可以在不懂编程的情况下做游戏。虚幻引擎主要用C++来开发。
cocos系列
cocos系列主要是做2d游戏,不过cocos系列中的cocos creator可以做3d游戏,不过似乎性能不怎么好,开心消消乐就是cocos系列引擎开发的。
(1)cocos2d
这个引擎只能运行在IOS系统上,它是外国人写的。它用object-c开发。
(2)cocos2dx
这个是中国人写的引擎,它支持C++、lua和JAVA。这个引擎的性能比cocos2d强大。
(3)cocos creator
这个引擎虽然可以做3d游戏,但用JS开发,所以性能差,只能做小游戏。
Unity 3D
Unity 3D简介
Unity 3D 也称 Unity,是由 Unity Technologies 公司开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具。
Unity 3D 可以运行在 Windows 和 MacOS X 下,可将游戏发布至 Windows、Mac、Wii、iPhone、WebGL(需要 HTML5)和 Android 等平台。也可以凭借 Unity Web Player 插件发布网页游戏,支持 Mac 和 Windows 平台的网页浏览,是一个全面整合的专业游戏引擎。
业界现有的商用游戏引擎和免费游戏引擎数不胜数。其中最具代表性的商用游戏引擎有 UnReal、CryENGINE、Havok Physics、Game Bryo、Source Engine 等,但是这些游戏引擎不仅名气高,价格也高,大幅增加了游戏开发成本。而 Unity 公司提出了“大众游戏开发”(Democratizing Development)的口号,提供了任何人都可以轻松开发的优秀游戏引擎,这让价格对部分开发方来说不再是一道坎。
时至今日,游戏市场上出现了众多种类的游戏,它们是由不同的游戏引擎开发的,Unity 3D 以其强大的跨平台特性与绚丽的 3D 渲染效果跨足游戏引擎前列,所以现在很多商业游戏及虚拟现实产品都采用 Unity 3D 引擎来开发。
优势:
高能低价易用。
Unity 3D 游戏开发引擎目前之所以炙手可热,与其完善的技术以及丰富的个性化功能密不可分。
Unity 3D 支持从单机应用到大型多人联网游戏的开发。
Unity 3D 的着色器系统进行了功能整合,具有易用性、灵活性、高性能的特点。
Unity 3D 提供了具有柔和阴影以及高度完善的烘焙效果的光影渲染系统。
Unity 3D 游戏开发引擎在价格方面有着其他引擎无法比拟的性价比优势,大幅降低了游戏开发成本。
Unity 3D 游戏开发引擎易于上手,降低了对游戏开发人员的要求。
跨平台
开发人员可以通过不同的平台进行开发。在游戏开发完后即可一键发布到常用的主流平台或运营商的目标平台上。
Unity 3D 只需一键即可完成游戏作品的多平台开发和部署,让开发者的作品在多平台呈现。
综合编辑
Unity 3D 的用户界面具备视觉化编辑、详细的属性编辑器和动态游戏预览等特性。
Unity 3D 中创新的可视化模式让开发人员能够轻松构建互动体验,当游戏运行时可以实时修改参数值,方便开发,为游戏开发节省大量时间。
资源导入
项目可以自动导入资源,并根据资源的改动自动更新。
Unity 3D 几乎支持所有主流的三维格式,如 3ds Max、Maya、Blender 等,贴图材质自动转换为 U3D 格式,并能和大部分相关应用程序协调工作。
脚本语言
Unity 3D 集成了 MonoDeveloper 编译平台,支持 C#、JavaScript 和 Boo 3 种脚本语言,其中 C# 和 JavaScript 是在游戏开发中最常用的脚本语言。
地形编辑器
Unity 3D 内置强大的地形编辑系统,该系统可使游戏开发者实现游戏中任何复杂的地形,支持地形创建和树木与植被贴片,支持自动的地形 LOD、水面特效等,尤其是低端硬件亦可流畅运行广阔茂盛的植被景观,能够方便地创建游戏场景中所用到的各种地形。
物理特效
物理引擎是模拟牛顿力学模型的计算机程序,其中使用了质量、速度、摩擦力和空气阻力等变量。Unity 3D 内置 NVIDIA 的 PhysX 物理引擎,游戏开发者可以用高效、逼真、生动的方式复原和模拟真实世界中的物理效果,例如碰撞检测、弹簧效果、布料效果、重力效果等。
Unity 3D 实际应用
Unity 3D 是目前主流的游戏开发引擎。尤其在 VR 设备的开发中,Unity 3D 游戏开发引擎具有统治地位。
Unity 3D 能够创建实时、可视化的 2D 和 3D 动画和游戏,被誉为 3D 手游的传奇,孕育了成千上万款高品质、超酷炫的游戏神作,其中众所周知的《炉石传说》就是其中之一。
Unity 3D 行业前景广泛,在游戏开发、虚拟仿真、动漫、教育、建筑、电影等多个行业中都得到了广泛运用。
Unity 3D 游戏面应用
3D 游戏是 Unity 游戏引擎重要的应用方向之一,从最初的文字游戏到二维游戏、三维游戏,再到网络三维游戏,游戏的发展进阶在保持实时性和交互性的同时,其逼真度和沉浸感在也不断地提高和加强。
随着三维技术的快速发展和软硬件技术的不断进步,在不远的将来,3D 虚拟现实游戏必将成为主流游戏市场应用方向。
Unity 3D 室内设计面应用
Unity 3D 引擎可以实现虚拟室内设计效果,能够作为一个以视觉形式反映设计者思想的优秀设计工具。
在装修房屋之前,首先要对房屋的结构、外形做细致的构思,辅以大量的设计图纸使之定量化。
虚拟室内设计可以将这种构思变成可视化的虚拟物体和环境,这让传统的设计模式突破到了数字化的所见即所得的境界,大幅提高设计与规划的质量与效率。
Unity 3D 城市规划面应用
城市规划一直是对全新的可视化技术需求最为迫切的领域之一,利用 Unity 3D 引擎进行虚拟城市规划能够带来切实可观的经济效益。
展现规划方案时,虚拟现实系统的沉浸感和互动性给展示对象带来强烈的、逼真的感官冲击,使展示对象获得身临其境的感官体验。还可以通过数据接口在实时的虚拟环境中随时获取项目的数据资料,方便大型复杂工程项目的规划、设计、投标、报批等措施的开展。
Unity 3D 文物古迹展示、保护面应用
利用 Unity 3D 引擎,结合网络技术,可以将文物古迹的展示、保护提高到一个崭新的阶段。
首先表现在将文物古迹实体通过影像数据采集手段建立三维实物或模型数据库,保存文物古迹原有的各种形式的数据和空间关系等重要资源,实现濒危文物古迹资源的科学、高精度和永久的保存。
其次,利用这些技术来提高文物修复的精度,预先判断、选取将要采用的保护手段,同时可以缩短修复工期。
通过计算机网络来整合统一大范围内的文物古迹资源,并且通过网络在大范围内利用虚拟技术更加全面、生动、逼真地展示文物古迹,从而使文物古迹脱离地域限制,实现资源共享,真正成为全人类可以拥有的文化遗产。
如下图所示。利用 Unity 3D 引擎实现虚拟文物古迹仿真可以推动文博行业更快地进入信息时代,实现文物古迹展示和保护的现代化。