1.1 初识游戏引擎和Unity
随着计算机软硬件技术的发展,对游戏画面和音效的要求越来越高,开发难度也变得越来越大,一些实力雄厚的公司将自己的技术商业化,作为游戏引擎供其他开发者使用,使开发者可以很大程度地忽略底层技术的复杂性,集中精力在游戏的逻辑和设计上,从而提高生产效率。
一些比较知名的商业化游戏引擎包括Unreal、CryEngine、Quake、Source、Renderware、Game Byro、Torque Game Engine、Ogre 3D(仅是一个图形引擎)等,这些引擎都曾经非常活跃,有些也很昂贵。随着市场的变化,一些缺乏竞争力的引擎已经逐渐退出了历史舞台,有兴趣的读者可以通过网络了解一下这些引擎的历史,几乎也是一部3D游戏发展史。
Unity(也称Unity 3D)是一套包括图形、声音、物理等功能的游戏引擎,提供了一个强大的图形界面编辑器,支持大部分主流3D软件格式,对2D游戏也有全面的支持,主要使用C#语言进行开发,使开发者无须了解底层复杂的技术,即可快速开发出高性能、高品质的游戏产品。实际上,在游戏引擎的家族中,Unity是“后起之秀”,但其发展迅速,目前已经成为世界上最活跃的游戏引擎。
在Unity的早期版本,使用Unity开发的知名游戏仅限于一些手机平台上的休闲游戏,如《Battle heart》等,随着Unity的不断升级和普及,现如今很多国内外的游戏大作都是由Unity开发的,比如暴雪公司的《炉石传说》和国内的《王者荣耀》等。
Unity是跨平台的游戏引擎,支持包括Windows、Mac、Linux、Web、iOS、Android、Windows Phone、Xbox、Play Station等大部分主流游戏发布平台,还包括各种VR(虚拟现实)平台,如图1-1所示。
图1-1 Unity支持的主流平台
在Unity早期的版本,可以将游戏导出为Flash或Unity自己的网页格式放到网页上,但随着HTML5的发展,Unity在网页游戏领域已经主要转移到Web GL平台上。笔者曾经开发的一些游戏,除了在移动平台上发布,也发布到了网页游戏平台KONGREGATE上,有兴趣的读者,可访问http://www.kongregate.com/,然后搜索游戏的英文名Wild Defense,就可以玩到笔者过去完成的一个塔防游戏,如图1-2所示。
Unity的主要开发环境是在Windows或Mac上面,因为在Windows上开发有很多优势,可以在Windows平台开发和测试,然后将游戏移植到其他平台。本书中的大部分示例是在Windows上完成的。
图1-2 网页版野人大作战
在开始使用Unity之前不得不提一下Asset Store(https://www.assetstore.unity3d.com/),它是Unity官方的在线商店,如图1-3所示。Asset Store里面主要出售Unity的插件或美术资源,它已经成为Unity的一个重要组成部分,很多插件在Unity开发中已经是必不可少的,在本书的示例中,也将使用到很多插件和美术资源,有一部分是免费的。
图1-3 Asset Store的页面截屏