Unity 3D脚本编程:使用C#语言开发跨平台游戏
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 Unity 3D游戏引擎进化史

正如Unity Technologies的CEO——David Helgason先生所说:“Unity是一个用来构建游戏的工具箱,它整合了图像、音频、物理引擎、人机交互以及网络等技术。”的确如此,Unity 3D因为它的快速开发,以及跨平台能力而为人所知。那么它究竟是如何“横空出世”的呢?

时间回溯到2002年5月21日下午1点47分。一个叫作Nicholas Francis的丹麦程序员在网上发出了一个寻找合作伙伴的帖子,帖子的内容就是协助他,并为他的游戏引擎共同开发一套Shader系统(Shader即着色器,是一个能够针对3D对象进行操作,并被GPU所执行的程序。通过这些程序,程序员就能够获得绝大部分想要的3D图形效果)。不久之后,有一位叫作Joachim Ante的程序员响应了这个帖子,并决定和Nicholas Francis共同开发这套Shader系统。而作为最初的第三位开发者,也是后来成为CEO的David Helgason先生,在听说了这个项目之后,也决定加入这个项目。

两年之后,他们成立了一个叫作Over the Edge Entertainment(OTEE)的公司,David Helgason成为CEO。他们当时决定开发一种独立开发者也有能力使用的游戏引擎。

而日后Unity 3D游戏引擎之所以获得成功的一大原因,就是得益于对无力承担游戏引擎高额许可费用的独立开发者的支持。

又经过两年没日没夜的工作,Unity 3D游戏引擎最初的版本已经初具雏形,如图1-1所示为早期Unity 3D版本的截图。但是考虑到游戏开发者在没有看到基于Unity 3D游戏引擎开发的成功案例之前,很难说服他们使用Unity 3D。因此,Unity 3D团队认识到,必须要使用他们的新引擎开发一套完整的商业游戏。这不仅可以用来检测和证明他们引擎的能力,同时开发出的这款商业游戏,也可以补贴后续开发的费用。

就这样,Unity 3D开发团队使用他们的新引擎,花费了5个月的时间开发了一款商业游戏——《GooBall》,如图1-2所示。

图1-1 早期Unity 3D版本(version 0.2b)的截图

图1-1 早期Unity 3D版本(version 0.2b)的截图(续)

图1-2 GooBall截图

《GooBall》由Ambrosia Software公司于2005年3月发行。而Unity 3D团队也借开发这款商业游戏的机会,在Unity 3D正式版本发布前修改了一些Bug,调整了若干接口,等等。

这样,Unity 3D的第一个版本(1.0.0)由3个关键人物:David Helgason、Joachim Ante及Nicholas Francis在丹麦开发出来,并且在2005年6月6日发布。

而使用Unity 3D的第一个版本开发出来的项目,也仅仅支持在Mac OSX平台上运行。直到1.1版本,Unity 3D才支持导出能够运行在微软的Windows操作系统及浏览器平台上的项目(此时Unity 3D游戏引擎本身还不能在Windows操作系统上运行)。而此时的Unity 3D游戏引擎仅仅是游戏工业中的一个新生儿,它的用户也仅仅是以游戏开发爱好者和独立开发者为主。与此同时,一些游戏引擎开发公司由于销量不好,最终放弃了它们的游戏引擎。很多Unity 3D的潜在用户此时也担心Unity 3D会重蹈那些公司的覆辙。而OTEE公司用了两年多的时间,才证明了自己有能力对Unity 3D游戏引擎提供足够的支持和更新。

在Unity 3D的第一个版本发布的同时,Unity 3D 2.0版本也几乎马不停蹄地开始了开发。在经过两年左右的开发之后,Unity 3D 2.0版本带着“Unity 3D向前迈的最大一步”的名号,在2007年的Unity开发者大会上发布了。

这个版本的重点在于增强了Unity 3D开发出的项目对微软Windows操作系统的支持,以及提高Web Player跨平台的能力。为了实现这些,Unity 3D的开发团队为Unity 3D游戏引擎添加了对微软Direct X的支持,而Direct X也为那些使用Unity 3D游戏引擎开发出的作品在Windows操作系统上带来了大约 30%的性能提升。这个版本的Unity 3D游戏引擎的新功能还包括:Web数据流的处理、实时阴影、网络通信、地形引擎、Unity素材商店以及一套新的GUI系统。

在这期间,随着智能手机的流行,特别是苹果手机和App Store在全球的风靡,Unity团队甚至还专为iPhone开发过一款专门的引擎——Unity iPhone。

在2008年到2009年这一段时间里,Unity开发团队又认识到了让Unity 3D游戏引擎本身的编辑器同样能够在Windows操作系统上运行的必要性。而为了实现这一点,他们不得不重写了当时的Unity 3D编辑器的代码,使其变成与具体平台无关的部分。而Unity团队也在2009年的游戏开发者大会上发布了能够运行在Windows操作系统上的Unity 3D游戏引擎,也就是Unity 3D 2.5版本。

Unity 3D 3.0版本于2010年9月27日发布。这次升级带来了很多诱人的新功能,包括各大平台统一的编辑器、Beast烘焙系统(lightmapping)、延迟渲染(deferred rendering)、Umbra遮挡剔除(occlusion culling)、FMOD音频引擎等。而随着Unity 3D 3.0版本的发布,Unity已经拥有了超过20万人次的注册开发者,成为了手机平台应用最广泛的游戏引擎之一。

2012年2月14日,Unity团队又发布了Unity 3D 3.5版本。该版本最大的亮点是提供了对Flash部署的支持。

2012年 11月 13日,Unity 3D 4.0版本对开发者开放了下载。在该版本中,又引入了Mecanim动画系统、Shuriken粒子系统等新功能。