什么是引擎?
汽车的引擎我们都熟悉,就是驱动汽车往前跑的核心部件,汽车能跑多快,根本上取决于它的引擎有多强。
那么Unity给自己的定义里的开发引擎是什么含义呢?简单来说,开发引擎是一个功能丰富的软件平台,可以让创作者快速高效开发内容。
Unity最初是从游戏引擎发展来的,那么游戏引擎的概念是什么呢?
和汽车引擎概念类似,游戏引擎是游戏开发的一个核心部件。引擎可以让你在开发游戏的时候,不用从0去研发最底层的技术。基于引擎,可以减少很多的工作量,甚至通过拖拽一些组件就可以开发出一个简单的游戏。
有了汽车引擎,你就可以在引擎的基础上去设计汽车的功能、外观等。
有了游戏引擎,你就不用再去纠结、开发那些底层的通用功能,引擎已经帮你集成了一系列游戏开发所需的功能,你只需要在它的基础上,开发你的游戏视觉、音效、玩法等。
具体来说:开发引擎是开发者开发内容的框架,整合了许多开发的关键模块。你可以将美术资源导入引擎中,然后将这些资源建造场景,添加灯光、音频、特效、物理和动画,然后通过编写代码增加交互和逻辑,最后调试、优化,发布到目标平台。
经过不断的进化,如今的游戏引擎已经发展为一套由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络通信,还有专业的可视化编辑器和插件,几乎涵盖了开发过程中所有重要环节。
游戏引擎主要包含以下几个模块:
图形
现代游戏引擎可以提供非常强大的图形效果,并可以大幅提高开发效率,可以从不同美术软件导入素材,这样你就不必在导入时花费很多时间。对于大多数游戏来说,游戏引擎可以提供全面高性能的渲染架构,并且提供深度优化的图形API,因此可以为游戏提供非常强大的视觉效果。
音频
你可以选择从0开始设计游戏中的声音,从背景音乐、音效、配音,到后期处理。你也可以从专门的资源平台购买音频资源。在引擎中,这些资源可以通过多种方式进行组合和混合。
游戏引擎可以帮你将音频集成到游戏中,也可以通过第三方插件让音效表现的更好。你可以专注于声音的组合、声音在游戏场景的合适位置和时间、合适的触发方式等。
网络
很多玩家喜欢通过游戏与朋友联系,也在游戏中结识了新的朋友。网络游戏需要复杂的网络编程,会带来大量复杂的工作流程和工作量。庆幸的是,很多游戏引擎都有完整的工作流来实现网络通信和多人游戏。
物理
游戏引擎中的物理系统可以为虚拟世界提供物理模拟。不需要你写代码模拟物理效果,也不需要单独处理场景中的每一个物体,也不需要写代码处理物体之间的碰撞。游戏引擎就可以让你通过拖拽或者仅使用几行代码模拟出真实的物理世界。
图形用户界面(GUI)
大多数游戏都有自己独特的界面,比如主界面、玩家引导、剧情等等。几乎所有游戏引擎都为开发者提供了构建用户界面的工具。UI工具可以组合、布局不同UI元素以及处理它们的交互。
代码
一款游戏的核心部分是代码,有时也称作脚本。你可以通过脚本自定义游戏逻辑。另外借助内置的常用脚本,你可以不用自己写代码轻松实现场景的漫游、摄像机控制、动画界面等等。
Unity给自己的定义
Unity:世界领先的实时创作平台
Unity刚开始的时候是一个跨平台的3D游戏引擎,它看准了多平台的风口,首创了一次开发,多平台发布的核心功能,迅速崛起。刚开始的时候名字还是以Unity3d为主,后来丰富了2d功能,就直接叫Unity了。近年来火热的VR和AR开发,在很大程度上要基于三维技术,所以Unity有天生的优势,再加上Unity紧跟科技的风口,在VR和AR领域的支持非常超前。国内外很多VR/AR软硬件厂商都在第一时间支持了Unity引擎。此外随着Unity功能越来越强大,有一些影视的实时渲染放到Unity中来做,可以实时看到最终的效果,不需要等待漫长的渲染时间,取得了非常好的效果。所以,Unity已经是一个强大的实时创作平台。
Unity能做什么?
用Unity可以开发:2D/3D游戏,2D/3D应用,VR,AR,甚至移动APP,网页前端,电影实时渲染等。
2D/3D游戏本来就是Unity的根基,VR和AR也是2D/3D游戏,官方主推的方向。但是APP和网页是什么呢?其实基于Unity强大的跨平台特性,很多开发者在学会Unity之后,在APP和网页设计开发中也会选用Unity作为引擎,许多开发者深深迷恋Unity的开发效率。对于一个项目及项目团队来说,技术路线的悬着,适合的才是最好的。
目前也有很多电影公司使用Unity来进行电影、动漫的制作。这也说明了Unity在功能、易用性、渲染效果上都占据领先地位。
小结
1.游戏引擎是游戏开发的框架,整合了多个开发的关键模块,可以大幅减少开发工作量;
2.Unity可以开发:2D/3D游戏,2D/3D应用,VR,AR,甚至移动App,网页前端 ,电影实时渲染。