独立游戏开发是一项巨大的业务,独特之处在于开发者的赚钱能力与暴雪(魔兽世界、暗黑破坏神)或 Bioware ( 大众效应、龙腾时代等大牌专业游戏公司不相上下。诚然,能达到这样高度的独立开发者并不多见,但阅读这篇文章的人可能会继续开发下一个*《我的世界》或愤怒的小鸟*。不久前,做一名独立游戏开发者意味着在几个网站上发布你的游戏,并期待最好的结果。但是随着移动设备的爆炸,Steam 的 Greenlight 服务的开放,以及使人们有可能登上游戏机的工具,印度人有能力与 AAA 开发者面对面,甚至用出版商不会接触的原创和有风险的游戏超越他们。
在印度人可以选择用于游戏开发的工具中,Unity 已经成为首选之一。除了提供大多数开发人员创建游戏所需的一切的免费版本、不断增加的功能、24 个受支持的平台、开发人员可以在其中购买和销售内容的资产商店、可供学习和获得支持的庞大开发人员同行社区,以及 unity 团队帮助您的优秀文档、教程和视频之外,Unity 正在帮助数百万开发人员(截至 2015 年有 450 万注册开发人员)实现他们创建自己游戏的梦想。根据 2015 年开始的统计,超过 6 亿游戏玩家玩了使用 Unity 开发的游戏。它占据了 45%的游戏引擎市场,47%的游戏开发者正在使用它。
在这本电子书的过程中,我们将介绍 Unity 的主要功能,并使用这些功能来创建一个小型的二维游戏。我们将仔细检查每一步,从下载和安装 Unity 到扩展已完成的游戏,其功能将使其类似于现在在个人电脑和游戏机上销售的游戏。我会假设你有一些基本的 C# 知识,这是 Unity 游戏中最流行的编码语言。一些关于游戏编程基础的知识会很有用,但是即使是对游戏开发完全陌生的人也应该能够很快上手并运行。我们将要创建的游戏让人想起旧游戏 Robotron 2084 (或 Smash TV )。对于那些年龄不够大,不记得那个伟大游戏的版本的人来说,这里有一个设置——角色被困在一个竞技场里,摧毁不断产生的鬼魂。为什么是鬼?谁知道呢——也许我刚刚看完捉鬼敢死队?但是图 1 提供了一个最终游戏的截图。
图 1:完整的游戏截图
Unity 于 2005 年 6 月 8 日首次发布。在此后的 11 年多时间里,它已经升级到目前稳定的 5.4.2 版本(截至 2016 年 10 月底)。在写这篇文章的时候,5.4 版本的测试版已经提供给那些喜欢生活在前沿的人。
Unity 是一个跨平台的游戏引擎。跨平台意味着它要么在多个硬件/操作系统组合上运行,要么允许用它创建的内容在多个硬件/操作系统组合上运行。在统一的情况下,两者都是正确的。目前,Unity 可以安装在 OS X 和 Windows 操作系统上。Ubuntu 支持(Linux 操作系统的一个版本)于 2015 年 8 月发布测试版。
游戏引擎是允许创建视频游戏的软件。至少,这意味着软件允许开发人员编写代码在屏幕上绘制二维/三维图形,获取和处理使用鼠标、键盘、游戏手柄或其他硬件的玩家的输入,并通过硬件的扬声器播放声音和音乐。通过该引擎,各种各样的其他功能可能成为可能——物理和碰撞检测、网络、人工智能、视频等。Unity 支持所有这些以及更多。我们将只使用其中的几个功能,但我们将致力于实现其他功能,以使我们创建的游戏对游戏玩家有吸引力。
Unity 和其他游戏引擎一样,有一个集成开发环境(IDE),开发者可以在其中创建游戏。Unity 的 IDE 有两个部分——主 Unity 编辑器和代码编辑器。我们将很快看到统一集成开发环境和接口。
MonoDevelop 是通常的编辑器,直到开发了一个插件,允许 Visual Studio 编写和调试 Unity 游戏脚本。最初,在 Linux 上使用的另一个开源 IDE 的一个端口是专门为开发 Unity 游戏而定制的,该版本与 Unity 打包在一起。
图 2:单一开发环境
首先,你应该去 Unity 网站下载最新版本。截至本文撰写之时,最新版本为 5.4.0f3。主下载站点将提供当前可用的所有不同版本,但您会想要免费的个人版本。接下来,您应该创建一个 Unity 帐户。您可以在https://id.unity.com/account/new找到创建页面。
设置好您的 Unity 帐户后,运行您下载的安装程序。点击几个“下一步”按钮后,您将进入“选择组件”对话框,如图 3 所示。
图 3:统一安装程序对话框
在这个对话框中,您会发现一些重要的选项可供选择。
默认情况下,Unity 使用 MonoDevelop,但是如果您使用 Visual Studio 作为您的 IDE,您将需要检查 Microsoft Visual Studio Tools for Unity,它将允许您使用它作为您的 Unity 默认编辑器。如果没有 Visual Studio,可以下载社区版。
示例项目可能是一个很好的起点,因为您可以在 Unity 中学习自己的方法。
默认情况下,仅选中“窗口构建支持”选项。如果你计划支持其他平台,你会想要检查那些。请注意,为了能够将您的游戏部署到特定平台,可能会有成本或其他要求。
安装 Unity 后,启动它,您将看到“新建项目”对话框,如图 4 所示。
图 4:新建项目对话框
新项目的默认设置是三维。在创建项目之前,请确保单击二维—我们将创建的游戏是二维的,最好从正确的设置开始,而不是以后转换。您还可以选择创建项目时添加到项目中的资产包。如果您忘记了,以后可以轻松添加软件包。您可能想添加的一个包是 Visual Studio 2015 工具。
选择您想要包含的包后,给项目一个合适的名称(我称我们将要创建的游戏为幽灵竞技场),选择位置(虽然我使用默认将我的所有项目保留在一个位置),然后单击创建项目。当 Unity 完成时,您将看到类似图 5 的内容。
图 5:默认统一集成开发环境
团结已经准备好了。查看上图,您可能会发现 Unity 的界面有点吓人。让我们花点时间来看看这个界面的主要特性。
菜单让我们可以使用 Unity 的大部分功能。“文件”菜单允许您:
- 创建、打开和保存场景(有关更多信息,请参见场景部分)
- 创建、打开和保存项目
- 显示“生成设置”对话框
- 构建并运行您的项目
- 退出应用程序
当然,都很标准。
“编辑”菜单的前三个部分与大多数其他应用程序相似,它们提供撤消和重做功能—剪切、复制、粘贴和删除。“复制”菜单项创建层次结构中当前选定的任何对象的副本。在剩下的项目中,您可能会处理很多以下内容:
-
播放、暂停和步进—虽然您可以使用菜单项或它们的快捷方式,但您可能会使用工具栏按钮来代替。
-
项目设置—此菜单下的子菜单允许您为以下区域设置许多已定义的值:
-
音频—允许您指定默认设置,如全局音量、扬声器模式(立体声、四声道、环绕声等)。),默认情况下禁用音频。
-
编者ˌ编辑
-
输入—允许您为游戏中的动作(如射击、跳跃和移动)指定键和按钮的默认值,以及控件的灵敏度和死区。
-
网络—允许您指定发送到控制台的调试消息的级别,并设置每秒通过网络发送数据的默认次数。
-
物理学(二维和三维)
-
播放器—允许您指定默认分辨率和平台特定设置、图标以及游戏和公司名称。
-
质量—允许您为每个平台指定默认设置以及一些渲染设置,以获得更高或更低的质量。
-
图形-允许您为许多着色器设置指定默认值。
-
脚本执行顺序
-
标签和图层-允许您指定标签,以便通过代码和渲染图层来识别对象。
-
时间—允许您指定固定时间步长的默认值、物理计算和代码事件的最大允许时间以及时间刻度(用于项目符号时间等效果)。
| | 注意:定义-死区是围绕控制器轴中心的一个小的设定半径,用户输入被忽略。 |
资产菜单非常简单。它允许你添加资产(比游戏对象大的东西)到当前场景。您可以创建一个新的资产,它可以是从代码到新场景到物理材料的任何东西。在后面的部分中,我们将深入探讨我们将在游戏中使用的一些特定资产。您还可以导入包,这些包是组合在一起的资产,用于制作更大的东西。这些可能是你的游戏水平;由模型、纹理和附加代码组成的武器;或者它们可以是完整的基础游戏,你可以添加自己的功能。“资源”菜单也是您可以在编码集成开发环境中打开项目的地方。
游戏对象菜单允许你添加对象,如精灵、用户界面元素、灯光和三维对象,如立方体和圆柱体。您也可以调整“层次结构”中场景中或场景视图中已经存在的对象(如果您有很多对象,并且需要将视图集中在一个对象上,这很有用)。
组件菜单允许你添加组件到游戏对象或场景。组件是游戏对象的功能部分。你会发现诸如物理碰撞器、音频过滤器、导航网格的障碍物和网络管理等项目。
“窗口”菜单允许您使用几种预设布局来更改统一集成开发环境的布局。您还可以设置和删除自己的自定义布局。此菜单还允许您访问统一集成开发环境中的资产存储,而不是使用单独的浏览器窗口。您还可以显示集成开发环境的各个部分,例如层次结构、项目、控制台或检查器(如果您隐藏了它们)。
“帮助”菜单有标准菜单项,但也包括下载应用程序测试版和管理许可证密钥的链接等项目。
层次结构将向您显示当前场景中的对象。通过在层次结构中移动对象,可以使它们成为其他对象的子对象。您还可以选择多个对象,以便快速编辑公共属性、复制它们或用它们制作预设。右键单击某个对象会显示该对象的上下文相关菜单。
| | 注:定义-预制构件是一个模板或蓝图,允许您创建它的新实例。对预置的改变在所有情况下都会被反映出来。 |
在层次窗口中选择一个对象将在检查器窗口中显示其属性,如图 6 所示。
图 6:检查器窗口
“检查器”窗口允许您快速更改属性,并根据属性在“场景”窗口或“游戏”窗口中查看其效果,而无需实际运行游戏。如图 6 所示,甚至可以设置附加到对象的脚本中的属性。
通过单击每个部分左上角的箭头,可以隐藏每组属性,这样您就可以确切地看到您需要看到的内容。单击右上角的齿轮会显示一个菜单,允许您重置该部分的属性、删除组件、在窗口列表中上下移动组件或复制并粘贴组件。单击该书将显示该部分中该项目的文档的“帮助”部分。
“项目”窗口显示已添加到项目中的所有资产。项目中的资源可以组织到文件夹中,这意味着您可以有一个文件夹来存放所有脚本、场景、音频文件、精灵等。对于大型游戏来说,这种组织方式对于您快速找到所需的资产至关重要。
“项目”窗口的左侧显示了资产的层次结构。层次结构的根永远是“资产”文件夹。单击一个文件夹将在窗口右侧显示该文件夹中的所有资产。点按右侧的资源将在“检查器”窗口中显示该资源的属性,底部“检查器”窗口的特定于资源的部分将允许一些操作,例如播放音频文件并看到带有传达宽度/高度、图形文件类型、文件大小等信息的精灵。
你在场景窗口中设计游戏的各个部分。您可以通过从层次结构中将资源拖到其中,或者通过菜单项添加新资源来实现这一点。“游戏”窗口向您显示了游戏实际运行时当前场景的外观。
您可以使用工具栏按钮控制如何在场景中导航。从左到右,它们是这样工作的:
- 手动工具-选择此选项后,在场景中单击并拖动将移动相机对象。按住 Alt 键,同时左键单击或右键单击将围绕当前枢轴点移动相机或放大或缩小。
- 平移工具(translate tool)-选中对象时单击该对象将显示控件,允许您在场景中的 x、y 和 z 轴上移动对象。
- 旋转工具(rotate tool)-选择对象时单击该对象将显示允许您在 x、y 和 z 轴上旋转对象的控件。
- 缩放工具-选择对象时单击该对象将显示允许您在所有轴上同时调整对象大小的控件。
- 调整大小工具-选择对象时,单击该对象将显示允许您在独立于其他对象的轴上调整对象大小的控件。
还有在场景中移动和在场景中移动对象的快捷键。您使用哪些快捷键将取决于您的普通键盘和鼠标风格。
当你习惯了 Unity 的界面时,你也可能会发现自己在场景中移动东西时犯了很多错误。撤销将成为你非常亲密的朋友。
Unity 编辑器的功能比在一本简短的电子书中讨论的还要多。Unity 的在线文档非常广泛——试图通读整个文档将是一项艰巨的任务。当你遇到一些你不知道或不需要弄清楚的事情时,阅读相关部分,以及访问 Unity 论坛,是最好的方法。当你习惯了 Unity 和游戏开发,你会想要构建更大更复杂的游戏。文档将成为另一个朋友,Unity 网站上的其他材料也是如此。
Unity 游戏的典型结构是将不同类型的资产组织到它们自己的文件夹中。对于我们的游戏,我们只需要六个文件夹:
- 动画片
- 声音的
- 预制构件
- 景色
- 剧本
- 鬼怪;雪碧
右键单击项目窗口中的资源文件夹或资源文件夹窗口本身,并为我们需要的每个文件夹选择创建|文件夹。您应该得到图 7 中的结构。
图 7:项目文件夹结构
在这一点上,你现在有一个空白的石板来开始创建你的游戏。我们先来看看场景和场景管理。