游戏向来是硬软件性能、多样输入法以及图形支持等技术发展的强劲推动力。以安卓平台为例——在可预见的未来,相比其他应用,游戏及其玩家更能促进市场发展并带动游戏设备升级。尽管安卓平台已相当成熟,但发展的步伐还在迈进。除系统完善及应用广泛的优点之外,如今其设备的卓越性能已能匹敌新一代的控制台系统。
不过安卓平台最值得称赞的一点是——从简单的休闲小游戏到复杂的多人游戏,只有想不到的,没有不可能成功的(比如:Flappy Bird)。而玩家年龄、性别和品味的多样化将安卓市场划分为不同的目标群体,让大大小小的游戏开发公司都能有立足之地。
蓦然回首,当年区区几家游戏巨子独占鳌头的光景还历历在目——横跨台式电脑及控制台两个市场,以优秀的开发者团队和知名品牌授权作支撑,一手占据着宝贵资源来构建游戏平台服务,一手掌握着高端技术来不断开发运行稳定、性能优良的游戏……这种种将该产业那道门槛铸造得高耸入天,不知名的小公司和独立开发者如何能轻易跨越呢?
相比之下,移动市场对待开发者更公平一些。手机游戏开发之所以能在这产业急流中顶住风吹浪打,有两个原因——一方面,庞大而复杂的用户群体让无名之辈也可以夹缝里求生存;另一方面,现成的移动开发工具和服务比以往更为丰富。
工具和服务即可显现安卓手机游戏平台身为王者的成熟风范。谷歌这一安卓开发核心和其合作伙伴为保证该平台的繁荣费劲了心血。诸多工具、API和服务旨在促进安卓项目顺利完成,其中不乏专门服务于游戏开发者的项目。
以下是一些范例:
- 开发者:不管是任何人,想进入移动市场从未这么容易过。安卓应用开发、上线可一气呵成。安卓应用基本都用Java语言编写——该语言凭借其自身优越性广为开发者追捧,同时也是全球高校计算机科学课程上最热门的物件导向程式语言。
- 开发工具:安卓开发工具完全免费——既无昂贵的编译器,也无许可证费用。Eclipse集成开发环境为人熟知,安卓设计工作室前景看好,标准安卓工具功能齐全、不断出新……英特尔作为开放手机联盟成员之一,也推出了一些工具,帮助开发者在x86开发环境以及兼容x86的安卓设备上提高工作效率。
- 安卓SDK:安卓SDK包含一套稳定可靠且功能齐全的API,Java开发者使用起来会得心应手;Open GL ES(OpenGL for Embedded Systems)是服务于手机等嵌入式设备的开放式图形库,帮助开发者编写图形密集型应用;安卓的内置图库和动画库则使再简单的游戏也能拥有超棒视觉效果。
- 本地开发:各类游戏库让人眼花缭乱?偏爱C/C++游戏开发者可选择安卓NDK,可免去重新编码之苦。
- 第三方游戏引擎:很多游戏引擎能帮助安卓开发者提升开发速度,省去了重新编写代码的麻烦,反响相当不错。除了提高游戏可移植性之外,游戏引擎还包含大部分常见游戏设计模式以及生成游戏资产的工具,例如纹理和关卡。
- 游戏开发和第三方库:第三方库可以省去游戏开发者不少力气。除了针对个别设备处理器进行了优化从而节省算法开发时间之外,第三方库比优化编译器能更好地优化代码。
- 游戏服务:谷歌(Google Play Game Services)和亚马逊(Amazon GameCircle)已推出各自的系列游戏开发服务,帮助开发者专注于游戏的核心功能,并为游戏轻松添加社交功能。
- 游戏发布:各种各样的分销机制可供开发者选择。
显而易见,可供选择的游戏开发工具实在不少。开发者完全可以专心编写游戏的核心代码,最大程度的优化游戏。话说回来,何必浪费太多时间在没法儿让游戏脱颖而出、让用户眼前一亮的工作上呢? 不论个人开发者或是大型游戏工作室,预算紧缺或是预算充裕——成功的大门永远敞开着。以下着重讨论上文所提及的资源。
开发者、英特尔开发工具和安卓SDK 很多文章、书籍和大学课程都以熟悉安卓平台为重点,这些就不多谈了。 安卓开发者网站将会是入门者的好帮手。在这里你可以了解安卓更多信息、下载安卓SDK和工具,开始你开发者生涯的第一步。 另外英特尔开发者专区有一些针对安卓开发和调试的开发工具可供选择。英特尔图形性能分析器(Intel Graphics Performance Analyzers :Intel® GPA)提供图形密集型游戏开发过程中的性能分析数据。英特尔硬件加速执行管理器(Hardware Accelerated Execution Manager)可节省时间,加速安卓游戏或其他应用在主机上的模拟。
安卓NDK 安卓NDK可以将你的应用(仍然用Java编写)和现成的C和C++库连接起来,从而使以往编写过的非安卓平台游戏代码用于安卓应用开发。尽管其本身有局限性和性能上的小隐患,但是当你不想浪费时间编写一大堆代码的时候,安卓NDK不失为一个好选择。(学习如何在英特尔架构下安装NDK以及如何用它来开发应用)
第三方游戏引擎 游戏引擎堪称游戏开发的核心。如今可供安卓游戏开发者的选择又有哪些呢?即便是最简单的游戏,从零开始也要在开发和功能上花费大量的时间和精力。不过吃力不一定讨好,因为两者都不足以创造脱颖而出——或者更恰当地说——一鸣惊人的效果。 游戏的功能和开发大同小异,设计框架也基本雷同。第三方开发者已经意识到了建立安卓游戏共享库和共享引擎的必要性,开发者大可不必大费周折。
游戏引擎提供技术支持,简化游戏开发,从而使开发者专注于游戏架构的细节改良,节省大量的时间和精力。游戏开发者普遍选择在简历上列出曾经使用过的游戏引擎从而为自己的开发能力升值。知名的引擎可以减少测试的麻烦,还具备针对性优化等诸多优势。举个例子来说,很多游戏引擎都提供针对英特尔设备的优化。
游戏引擎种类繁多,各有优势,诸如提供完整的游戏插件,底层库支持,2D/3D等等。囊括所有功能的游戏引擎通常提供整套开发工具,从格式转换器、关卡设计、映射工具、物理引擎到动画控件。还有一些提供常用的游戏机制和任务比如Avatar creation。 除安卓平台游戏引擎之外,还有同时支持主机和手机的跨平台引擎。安卓平台游戏引擎实在多不胜数,比如:Unreal Engine 4、Unity 3D、Marmalade、Project Anarchy (Havok/Intel)、GameMaker: Studio、Corona Game Edition、Cocos2Dx、AppGameKit、libgdx、AndEngine等。
游戏开发须选择最合适的游戏引擎,这是必修课。功能较齐全的重量级游戏引擎通常比轻量级的小引擎更为复杂。另外,功能较齐全的引擎已拥有独立的开发圈子。雇佣这些开发者,向他们寻求帮助就变得更容易。 还有一些使用单一代码库的游戏引擎专门提供跨平台支持,其使用者通常会用脚本语言来编写游戏。另外一些游戏引擎要求用针对不同平台的本地代码。总之游戏引擎选择不同,许可费用也会不同。
如果游戏开发对用户设备要求较高的话,那么针对不同处理器(比如英特尔x86)最优化的游戏引擎将是不二之选。 就算游戏适用于所有平台,若运行起来马马虎虎可不行。针对处理器调试过的游戏引擎能保证游戏在所有平台上都实现最佳性能,让游戏开发者尽享优质的新一代安卓设备才具备的尖端硬件功能。换句话说,这种引擎即使在廉价又迟钝的传统安卓设备上也可开发出广泛兼容各种安卓设备的游戏。 不同种类的游戏引擎举例如下,以供参考。来看看Libgdx和Project Anarchy,两者是游戏引擎中不同风格的典型代表。 Libgdx是一款2D/3D游戏引擎,兼容多种平台系统,包括安卓、Windows、Linux、Mac OS、黑莓、iOS,甚至还适用于浏览器。跟诸多跨平台环境不同的是,Libgdx主要用简便的Java语言来编写。除了为2D/3D界面提供图形API之外,还有OpenGL、数学库和物理库等基本模块。 Libgdx支持音乐和音效,各种API都包含在内,涉及文件、参数选择和文件格式解析。另外还有一些项目设置、字库生成和粒子编辑的工具。Libgdx游戏引擎是开源的,也一直受到悉心维护。Libgdx项目非常活跃,具有相当完善的文档数量,为众多应用和游戏所用。如果你并不介意使用Eclipse和一款典型的开放源代码环境来开发游戏的话,那么选择Libgdx准没错。 Project Anarchy是Havok(英特尔公司旗下产业)推出的一款移动游戏开发引擎,涵盖从物理引擎到音频3D定位,从代码分析到地形编辑等相当齐全的功能。跟Libgdx不同的是,Project Anarchy使用须有许可证。Project Anarchy的免费许可证可以为移动应用提供诸多便利,功能齐全的Havok引擎则需要另外的许可证。 Project Anarchy适用于安卓、ARM,x86和iOS系统。经许可可支持Windows、台式电脑或者控制台。其整套的工具可以满足游戏开发者团队的不同需要,包括设计、图形、动画和开发。 Project Anarchy提供专业的解决方案,但更倾向于使用Visual Studio和Perforce源代码控制一类的传统商业开发工具,这便与一些独立移动开发者所想的有所不同。如果你的游戏开发团队更擅长使用传统的游戏开发方法和工具,那么就选Project Anarchy吧。 以上只是众多游戏引擎中的两个典型代表,但是足以说明安卓游戏引擎广泛的选择余地。
游戏和处理器优化的第三方库
除了安卓SDK和谷歌服务之外,还有很多第三方库可供选择。举个例子:英特尔提供了很多工具和第三方库——尤其适用于那些对设备要求较高的游戏,开发者们一定不想错过。 尽管搭载英特尔x86处理器的安卓设备在第三方库上选择有限,英特尔仍大力发展高度优化过的第三方库,使开发者——包括游戏开发者从中受益。 这些第三方库针对特定英特尔技术进行了优化,用起来比优化编辑器更顺手。不过,由于它们仅能为x86 NDK所调用,开发者必须提供适用于其他处理器的应用NDK实现接口,或者具备一个Java实现接口。 英特尔的高性能多媒体函数库(Integrated Performance Primitives :Intel® IPP)提供媒体和数据算法,涵盖过滤、变换、色彩空间转换、统计等模块,甚至适用于视觉计算软件。 在如今的游戏开发中,高性能以及并行执行能力(parallel execution)成为必备要素,以保持渲染管线高效运转,动画或音频效果逼真或是改良人工智能和网络等。 英特尔的线程构建模块(Threading Building Blocks:Intel® TBB)库为开发高性能和具备并行执行能力的应用提供了一个框架。除了SDK以外,安卓也许还有其他工具可以提高并行执行能力,但是却不具备可移植性。有了Intel® TBB,这个问题便迎刃而解,而且还附加了针对英特尔硬件的优化。
移动和游戏服务
除了安卓SDK、第三方游戏引擎和第三方库,其他服务也同样值得关注——游戏开发者定能发现日后派的上大用场的宝贵资源。 第三方,比如大名鼎鼎的谷歌,为安卓开发者提供着形式多样、内容丰富的整套服务。对于开发者来说,Google Play Game Services是个不错的开端,这里为社交类游戏提供诸如排行榜、成就、云端储存(cloud-saving)、回合制策略游戏和实时游戏模式等支持。
其他服务则非针对游戏本身——例如Google Play的应用程序内部付费机制(Google Play In-App Billing)和Google移动广告服务(Google Mobile Ads)可以让游戏赚钱;谷歌+服务(Google+ services)将社交网络融入游戏中;需要云服务吗?试试Google Cloud平台(以谷歌广受欢迎的移动引擎作支撑)和谷歌云端推送(Google Cloud Messaging)吧;谷歌分析(Google Analytics)用来收集应用及其用户的重要数据;想在亚马逊上发布游戏?Amazon GameCircle是开发者的不二选择。
游戏发布
时间、精力、汗水和眼泪铸造出来的游戏等待的不就是上线的那一刻吗?安卓平台为开发者提供多样的游戏发布途径。 大部分开发者都将游戏发布在诸如Google Play和亚马逊Appstore这样的知名市场上,且都遵循大同小异的程序:花点儿钱创立一个账户,等着谷歌或亚马逊将游戏列入他们的应用清单,接着卖给终端用户,然后收钱,扣除利润,最后剩下的才会流入开发者的口袋。 大部分开发者都将游戏发布在诸如Google Play和亚马逊Appstore这样的知名市场上,且都遵循大同小异的程序:花点儿钱创立一个账户,等着谷歌或亚马逊将游戏列入他们的应用清单,接着卖给终端用户,然后收钱,扣除利润,最后剩下的才会流入开发者的口袋。就是这么简单。当然还有其他分销渠道来发布游戏。如果你要推出x86应用,可以在英特尔开发者专区(Intel Developer Zone)找到一些灵感。 别忘了,分销渠道会因不同的游戏引擎和第三方库而受到限制,但若是免费和开源的游戏引擎就没什么问题了。不过,我们所提及的某些商业游戏引擎将规模和知名度定为硬性指标,要求开发者只能在Google Play、亚马逊Appstore一类的知名应用商店里发布游戏。 另外,一些游戏引擎许可条款囊括了收入共享,对游戏定价、游戏内购买和货币化方法产生一定影响。在选择游戏引擎之前,还是先把那些条条款款浏览一遍较好。
小结
如今游戏开发的门槛堪称历史最低,而安卓平台所提供的工具和服务使得开发者能够迅速将功能齐全的游戏推向市场。坐享最庞大的用户群,安卓注定会吸引无数玩家的青睐。休闲风格?史诗题材的拟真角色扮演?选择安卓平台,创意不再只是创意。
|