购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 Unity游戏引擎

1.2.1 游戏引擎

在游戏引擎还没有出现的年代里,电子游戏基本都是横版的 2D 游戏。这些目前看起来很简单粗糙的游戏,当时的开发周期平均达到 8 个月左右。一方面是因为受当时技术与设备的限制,而另一方面却是因为每次开发游戏都需要重新编写代码。每款游戏中涉及底层技术的代码,其实有很多是重复的。所以如果每次开发都重新编写,就会造成开发中大量的重复性劳动。因此后来的开发人员就尝试将一些经常要用到的代码编写到一起,形成一个框架。每次需要开发新游戏时,就在这些现成的框架基础上进行修改和添加,从而节约大量的时间和成本,提高了游戏开发的效率。而这些框架,就是现代游戏引擎的雏形。

因此,所谓游戏引擎,其实就是一种特殊的软件,用来给游戏开发者提供各种开发工具,以便让他们能集中精力于游戏的逻辑和设计上,可以更容易、更快速地制作出游戏,而无须花太多时间关注底层技术。一般来说,一个游戏引擎内部都会包含多个功能模块,常见的有 2D/3D图像渲染、物理系统、动画系统、音效处理、资源管理、输入/输出系统、网络互联等。

① 2D/3D 图像渲染: 主要负责把游戏中的模型、动画、光影、特效等各种视觉效果实时计算出来,并显示在屏幕上。渲染一直都是游戏引擎中最重要的功能之一,其性能直接影响游戏最后的输出质量和运行速度。

② 物理系统: 其实就是一套力学规则,包括物体之间发生碰撞时的力学模拟、物体与自然环境之间的力学模拟、角色骨骼运动的力学模拟等,目的是让游戏中物体的运动可以更加符合现实中的规律,比如碰撞、重力、摩擦力、飞行轨迹的计算等。

③ 动画系统: 包含骨骼动画和模型动画两部分内容。通过动画系统,可以让游戏中的角色拥有更丰富的动作表现。

④ 音效处理: 负责游戏中各种声音的播放,以及不同的播放效果,比如混响、立体、声音的障碍等。

⑤ 资源管理: 负责载入和管理游戏所需的各种资源,包括离线资源管理和运行资源管理。

⑥ 输入/输出系统: 主要负责处理玩家与游戏之间的交互,包括来自键盘、鼠标、触屏、摇杆、陀螺仪、手柄等各种设备的信号。

⑦ 网络互联: 主要处理网络发包和延迟、异步通信、同步通信、服务器端软件配置管理、服务器程序的最优化等。

经过多年的竞争和发展,目前主流的游戏开发引擎包括 Unreal Engine、Godot Engine、Cry Engine、Hero Engine、Unity、AppGameKit等,如图 1.10所示。其中 Unity因其学习门槛低、易使用、兼容几乎所有的游戏平台、具有强大的开发者社区,以及最具竞争力的授权条款等优势,近年来在游戏开发领域占据越来越重要的地位。截至2018 年 5 月的统计数据表明,在移动端游戏领域,全球 50%的移动游戏是采用 Unity 开发的。这些游戏下载量达到了 240 亿次,运行在 60 亿台独立设备上。在 VR 开发方面,69%的 Oculus Rift 平台内容、74%的 HTC Vive平台内容、87%的 Gear 平台内容,以及 91%的 HoloLens平台内容都是采用 Unity开发的。

图1.10 当前主流的游戏开发引擎

1.2.2 Unity简介

Unity,又称 Unity3D,是 Unity Technologies 开发的一款跨平台的专业游戏引擎。围绕这个引擎,还有一个完整的游戏开发生态链,用户可以通过 Unity 引擎来轻松实现各种游戏创意和三维互动开发,创作出各种 2D 和 3D 的游戏内容,一键部署到各种游戏平台上,并在 Asset Store(Unity 官方资源商店 https://assetstore.unity.com/)上分享和下载各种游戏资源,在官方社区(https://unity3d.com/cn/community)与其他开发者进行知识分享和问答交流,从而提高自身的开发效率。

Unity的主要特性包括以下几个。

① 可扩展一体化编辑器: Unity 具有一个强大的图形操作编辑器Unity Editor,可以让用户在开发周期中进行快速的编辑和迭代。这个编辑器的界面非常友好,如图 1.11 所示,无论对于习惯使用 3D Max、Photoshop 等软件的设计师,还是习惯使用 Visual Studio、Eclipse 等软件的程序员来讲,都是非常容易理解,而且能快速上手的。Unity Editor 具有所见即所得的编辑功能,能在其中调整场景的地形、灯光、动画、模型、材质、音频、物理等参数。甚至用户自定义脚本中的参数也可以在 Unity Editor 中调整。而且所有这些参数调整的结果,都可以通过这个编辑器中提供的动态预览功能,实时观察。另外,如果用户对Unity Editor 有更个性化的要求,还可以自己编写编辑器脚本,或者使用第三方插件来创建属于自己的编辑界面和功能。

图1.11 Unity Editor的界面

② 多平台的导出功能: 用户可以在 Windows 和 Mac OS X 平台上使用 Unity 开发游戏,因为 Unity 使用底层 Mono 技术,所以用 Unity开发的游戏不用修改任何代码就能一键发布到几乎所有主流的游戏平台上去,包括各种移动端(iOS、Android、Windows Phone 等)、PC 端(Windows、Linux、Mac OS X 等)、游戏机专用平台(Wii、Xbox360、PS4等),以及 Web等,如图 1.12所示。这使得用户只要集中于设计和开发游戏本身即可,而无须过多考虑各平台事件的差异。

图1.12 Unity支持发布的平台

③ 强大的图形引擎: Unity 的最新图形引擎与多种平台上的底层图像 API 都有紧密联系,可以快速访问各种原生图像 API,包括图 1.13 中的 Vulkan、iOS METAL、DirectX12、NVIDIA VRWORKS 以及 AMD LiquidVR。这使得 Unity 能充分利用各种平台上 GPU 等硬件更新带来的好处。另外,还配备了新一代可编程渲染管线(SRP),让用户可以根据目标平台定制渲染流程,为特定硬件设备优化性能。

图1.13 Unity可以快速访问的原生图像API

④ 便捷的资源导入: 只要将资源拖入 Unity,就能自动导入。而且如果资源发生了改动,也能跟着自动更新。其支持从大部分主流 3D软件中导入模型和动画,包括 3ds Max、Maya、Cinema 4D、Cheetah3D等,支持的图像格式包括.psd、.jpg、.png、.gif、.bmp、.tga、.tiff、.iff、.pict 和.dds,支持的音频格式包括.mp3、.ogg、.aiff、.wav、.mod、.it 以及.sm3,支持的视频格式包括.mov、.avi、.asf、.mpg、.mpeg 以及.mp4,支持的文本格式包括.txt、.htm、.html、.xml以及.bytes。

⑤ 强大的物理引擎: 在 Unity 的最新物理引擎中,包含全面的效果器、关节和碰撞机的 Box2D,并内置有 NVIDIA 的 PhysX3.3,能实现高度逼真和高性能的游戏体验。

除这些以外,Unity 在实时行为分析、对 VR/AR/MR 的支持、变现盈利模式等方面都具有自己的特点。详细情况可以查阅 Unity 的官网https://unity3d.com/cn/unity。

1.2.3 用Unity开发的游戏

因为 Unity 的诸多优点,近年来在游戏开发领域,Unity 的使用率在不断提高,也出现了一大批使用 Unity制作的优秀作品。

① 纪念碑谷(Monument Valley): 如图 1.14 所示,这是USTWO 公司研发的系列解谜类手机游戏,于 2014 年正式发行,目前为止已有 I 和 II 两个版本。在《纪念碑谷 I》中,玩家在视错觉的干扰下,通过探索隐藏的小路、击败神秘的乌鸦人来帮助主角艾达公主走出纪念碑迷阵。《纪念碑谷 II》则通过一段穿梭于神奇建筑之间的冒险之旅,传递给玩家一个关于母亲与女儿之间陪伴、成长与重逢的故事。这个系列的游戏用风格奇幻、设计精巧的画面,打破了人们对手机游戏毫无艺术性的固有印象。《纪念碑谷 I》被苹果公司评为当年最佳 iPad 游戏,并获得了 2014 年度苹果设计大奖。《纪念碑谷 II》则被 TGA 评为2017年度最佳移动平台游戏。

除了视觉,这款游戏也非常重视玩家的操作体验。整个游戏的设计安静而内敛,节奏缓慢,舍弃了传统游戏中嘈杂的配乐,而采用了禅乐。没有独立于游戏画面的操作界面,使玩家始终保持与游戏画面的接触,保证了沉浸感。

图1.14 用Unity开发的游戏《纪念碑谷》

② 无尽空间(Endless Space): 这是 Amplitude Studios制作并发行的系列回合制策略游戏,分别在 2013 年和 2017 年推出了《Endless Space》和《Endless Space 2》,如图 1.15所示。整个系列都以星际殖民为主题,贯穿了“探索、扩张、采集、歼灭”的精髓。玩家可以在众多外太空文明和物种之中,选择扮演某个星际文明的领袖,带领自己的部族对其他星系进行探索。前后两部作品都具有电影级的 CG动画、精美的太空场景以及生动的角色。舰队战斗时的多角度镜头切换和慢速回放,也让玩家拥有观看科幻电影的体验。《Endless Space》获得了 2013年 Unity全球游戏大赛(Unity Awards)的金立方奖和玩家选择奖共两项大奖。而续作《Endless Space 2》则获得了2017年Unity Awards的最佳3D视觉奖。

图1.15 用Unity开发的游戏《Endless Space》

图1.16 用Unity开发的游戏《SUPERHOT VR》

③ SUPERHOT VR: 这是一款由独立团队 SUPERHOT Team 开发的第一人称射击VR游戏,如图1.16所示。游戏用极简的画面风格和“减速子弹时间”这个特殊概念,让玩家能完全沉浸在紧张刺激、且富有临场感的 VR 枪战中。这款游戏在 2017 年度 Unity 全球游戏大赛中获得最佳 VR游戏奖。

④ Night in the Woods: 这是一款 Infinite Fall 开发的 2D 动作类冒险游戏,荣获了 2017 年度 Unity 金立方奖以及最佳 2D 视觉两个奖项,如图 1.17 所示。在游戏中,玩家将扮演从大学辍学的小猫 Mae Borowski,在自己生活的动物小镇中开始了一场荒诞离奇的冒险。游戏虽然具有儿童插画的手绘风格,但是主题却是偏黑暗和严肃的。让玩家通过游戏剧情的推进,了解到亲情、友情以及生命的意义。

图1.17 用Unity开发的游戏《Night in the Woods》 AhW+cfZ4UVWodz29pj9nCtddSJQDXESrXPR2dxN+qrwbdqQWTGY5lp6y8O1NzrN4

点击中间区域
呼出菜单
上一章
目录
下一章
×