手游客户端开发-游戏引擎介绍

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

基于传统软件的思维,第一个想到的问题是手游客户端用什么语言开发?就像传统软件时要选用C/C++开发,还是用java,还是C#等。第二个问题是,要不要给Android开发一套程序,给IOS再开发一套?就像给windows开发一个程序,给MAC OS再开发一套程序一样。也许开发一个普通的手机应用还要考虑平台和语言的问题,但对于手游,这些大可以不用关心,需要关心的是选什么游戏引擎


那么什么是游戏引擎呢?


一个学术点的定义是,游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统和组件为游戏设计者提供各种编写游戏所需的工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。


通俗一点来说,每个游戏都有很多共同的部分模块,比如图像渲染,音效编辑,物理行为,碰撞检测,脚本控制,电脑动画,人工智能,场景管理,网络通信等等,把这些公共的模块,常用的行为,能复用的程序封装成一个框架性的软件,就是游戏引擎,它就是一系列的工具和生产链。


引擎相当于游戏的框架,框架打好后,关卡设计师、建模师、动画师只要往里填充内容就可以了。一个游戏作品可以分为游戏引擎和游戏资源两大部分。游戏资源包括图象,声音,动画等部分,列一个公式就是:游戏=引擎(程序代码)+资源(图象,声音,动画等)。游戏引擎则是按游戏设计的要求顺序的调用这些资源。


大部分引擎都支持跨平台,如手游中常用的cocos2d系列和unity3D系列,都同时支持Android和IOS平台,这就解决了平台问题。


那么语言问题呢?还是以cocos2d-x和unity3D为例,Cocos2d-x支持C++,JavaScrip和lua,unity3D支持C#,Javascript和Boo(自带的语言,很少用),所以游戏引擎选好了,再看看开发人员熟悉哪个语言,就挑一个用吧。


所以手机客户端开发,先要进行开发技术选型,一般来说就是对游戏引擎进行选型。是否选取某个游戏引擎,一般从以下几个方面进行考虑:2D/3D、跨平台性、性能、可扩展性、开发工具、资源丰富程度和技术趋势等。


下面介绍下手游领域常用的游戏引擎及其特点:


Cocos2d--休闲游戏的完美之选


正如其名称所显示的,它是一个2D游戏引擎,cocos2的系列引擎是世界上最受欢迎的开源选项。它有很多分支来支持多种语言,如Objective-C, C++,C#,Java,JavaScript,Ruby以及Python等等,但C++版本的维护最积极,也有最广泛的支持平台。

优点:

  • 它支持非常广泛的平台,特别是移动平台。

  • 免费和开源(MIT许可)

  • 提供广泛的扩展,工具和开源代码。

  • 很多社区创建了实例和学习资源。

  • 大型的社区支持。

  • 含硬件加速的图形和出色的性能。

  • 音频支持(大多数版本)

缺点:

  • 没有大公司提供支持和错误修复。

  • 有些API不太规范。Cocos2d最初是用Python写的,很早就改用Objective-C来编写,后来又移植到C++,所以其中的API有不同语言的痕迹,并不规范。

  • 它不鼓励良好的结构。

     


Unity3D--大众之王


Unity功能很强大,它原来是专门为3D游戏设计的,但后来3D游戏中也需要2D画面,为避免依赖外部工具,又增加了2D的支持。它具有广泛的跨平台支持,也是当前使用最为广泛的手游3D引擎。

优点:

  • Unity具有非常多的资源和插架,提供了很多免费和价格合理的内容。

  • Unity的可视化编辑工具很优秀,更可以通过插件扩展。

  • 它支持广泛的资源格式,并按目标平台自动转换为最佳的格式

  • 它支持非常广泛的平台,包括移动、桌面、网页和家用游戏机。

  • 很溶剂就部署到多个平台。

  • 不需复杂的配置,就能渲染出高品质的效果。

  • 免费版本包括了大部分功能。

缺点:

  • 不容易进行团队协作。Unity有一个资源服务器产品以帮助团队协作,但非常昂贵。如果不使用它,团队成员之间共享代码和资源有时就很痛苦。

  • 性能不是很好。Unity所使用的编译器不能很好地对ARM进行优化。

总体来说,Unity是一个不错选择,尤其是对于那些不要求达到硬件性能极致的个人开发者。


UNREAL -- AAA级引擎走进大众市场


Unreal有着悠久的历史,它是顶级PC和主机平台3D游戏引擎之一,从第三代引擎开始支持移动平台。它的定价方式比较独特。每月19美元另加5%的收入份额。

Unreal引擎是用C++编写的,并且C++是它官方唯一支持的开发语言,Xamarin公司开发了一个C# 语言的支持,但是需要购买Xamarin的授权。

优点:

  • AAA级的游戏品质

  • 拥有游戏开发中各方面最先进的工具

  • 提供完整源代码访问,可以扩展,定制和修复引擎的错误

  • 这个定价模式非常适合高风险的游戏开发

缺点:

  • 开发语言仅支持C++,这是对初学者不太友好的语言

  • 工具和引擎的学习曲线比unity的更陡峭

  • 引擎对旧设备的支持有限

  • 该定价模式对一个成功的项目来说非常昂贵

对运行于高端移动设备的高品质3D游戏来说,Unreal是一个很好的选择,但它并不是适合每个人。


客户端引擎总结


每个游戏都有自己的引擎,而受到公众认可的引擎却不多,这里仅仅介绍几个流行的手游游戏引擎,还有很多其他的手游引擎。很多大公司,会开发自己的游戏引擎,当然开发引擎本身,和开发游戏一样,也是一个赚钱的好项目。

另外,随着HTML5的兴起和发展,很多HTML5的游戏引擎也应运而生,多用于手机网页游戏,而不是手游APP的开发,这里不再做深入介绍,感兴趣的同学可以自行搜索。



dotNET跨平台 2015-08-23 08:49:05

[新一篇] 一組科學家發明的偽永動機,不明覺厲

[舊一篇] 如何判斷自己是否適合自由職業?
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表