摘要

游戏开发者知道 Android 中蕴藏着巨大的机遇。 在 Google Play 商店的前 100 款应用中,约一半是游戏应用(在利润最高的前 100 款应用中。它们所占的比例超过 90%)。 如要跻身该市场,开发速度很关键。 一些刚起步的独立开发者更愿意从零開始来开发自己的全部代码;可是为了达到更高的质量而不用花费数年的时间进行开发,其它人可能会选择已有的游戏引擎。 在选择引擎时,你能够考虑下面几个因素:

  • 成本 — 你计划支出多少费用?
  • 维度 — 你的游戏是二维还是三维?
  • 语言 — 你的开发者了解哪些编程语言?
  • 艺术家管线(Artist pipeline) — 它与内容创建工具的集成情况怎样?
  • 所有资源訪问 — 你是否须要进行訪问。以便对该引擎做出深层的更改?

眼下能够使用的 Android 游戏引擎有非常多,可是这些引擎在这些标准上有非常大区别。 随着採用英特尔® 处理器的高性能 Android 设备越来越多地向市场普及。选择一款针对基于 x86 的 Android 设备进行优化的引擎比以往更重要。 本文将可帮助选择适合你的游戏的引擎,以便为你的 Android 客户提供最佳的性能。

最佳选择

本文对最佳备选引擎从下面三个方面进行了检測。


Epic Games 的 Unreal*
Engine
 自 1998 年首次公布起,长期以来一直占有重要地位,它在电脑、控制台和移动平台领域促成了大量的成功案例。

Unreal Engine 包括下面工具:

  • Unreal Editor (3D 内容编辑器)
  • 蓝图视觉脚本编辑(拖放编辑)
  • Persona 动画工具
  • 面向 AI 、光线和其它效果的编辑器和工具

Project
Anarchy
* 是 Havok 近期开发的一款引擎。 它将 Havok 业经证明的主要游戏技术与针对移动开发进行定制的引擎相结合。 Project Anarchy 包含下面组件:

  • Havok Vision Editor (3D 内容编辑器)
  • 採用 Havok Physics 的 Havok Vision Engine
  • Havok Animation Studio (拖放编辑)
  • Autodesk Scaleform* (UI 工具)
  • 面向 AI 、光线和其它效果的编辑器和工具

Marmalade*
是一款跨平台软件开发套件,专为移动游戏的高速创建和构建。

Marmalade 比前两款技术都要新。于 2011 年刚作为一款游戏公布。 Marmalade 包括下面元素:

  • Marmalade C++ SDK
  • Marmalade Quick (Lua)
  • Marmalade Juice (Obj-C)
  • Web Marmalade (HTML5/JavaScript*)

成本

很多引擎可依据所需的功能提供多种价位。 决定价格最常见的因素有目标平台和你团队或企业的规模。

Unreal Engine 要求每月交付 19 美元的注冊费,并且要求收取基于其技术所开发的所有项目所得的所有收入的 5%。

该款技术支持定制价格结构、额外支持和面向控制台的开发选项。

Project Anarchy 眼下(并且将来会继续)免费供各种规模的团队在开发移动游戏时使用。 假设用户须要针对 PC 或控制台进行开发,获得深层的訪问和其它工具,也可购买高级版本号。

对于基本开发而言, Project Anarchy 无疑是最经济的选择。它仅仅要求与你的游戏一起进行联合推广。

写这篇文章时,Marmalade 可供收入低于 500,000 美元,开发者低于 3 人的团队免费使用 1 年的时间。 这是临时的促销活动,获得许可一般须要支付 149 美元以上的税费。

更高的价位可提供很多其它的目标平台开发和直接的开发者支持。

维度

3D 游戏的吸引力无可争辩,可是对于很多简单的游戏而言,2D 是更好的选择,它须要的时间和资源投资比 3D 少得多。 你的游戏维度与所选的引擎有密切的关系。

Marmalade 没有 3D 图形支持,可是 Unreal Engine 和 Project Anarchy 可提供该支持。 这些引擎为在 3D 开发中提供最佳体验,已做出了无数次改进。

简而言之,三款引擎都可用于 2D 开发。可是 Unreal Engine 和 Project Anarchy 的功能不仅于此。 Project Anarchy 眼下可提供一款 alpha 级的 2D 工具集演示样例。Unreal Engine 和 Marmalade 也均可提供 2D 演示样例代码。

专为高速开发而设计的 Marmalade 工具的一个子集 Marmalade Quick 仅针对 2D 。

三款引擎均可用于 3D 和 2D 游戏。可是 Marmalade 更适合 2D,Project Anarchy 和 Unreal Engine 更适合 3D。

语言

假设你团队中的开发者熟悉某款引擎中使用的编程语言(假设使用过更好),学习过程将会显著缩短。

在 Unreal Engine 4 之前的版本号中,Unreal Engine 的游戏编程是在 UnrealScript 中完毕的,后者是 Epic 全部的脚本编写语言,其採用类似 C 语言的语法。 随着 Unreal Engine 4 的公布,C++ 成为基本的开发语言。

Project Anarchy 基于 C++。使用 Lua 编写脚本。 很多引擎会尽可能地使用轻型脚本语言(如 Lua),以降低低级别任务(如内存管理)的风险。

Marmalade 包含多种工具集。详细取决于所需的语言。

基本 SDK 使用 C++,Marmalade Juice 使用 Objective-C*,Marmalade Quick 使用 Lua,Web Marmalade 专门针对 HTML5/JavaScript 开发而设计。

在语言选择的丰富性方面,Marmalade 的确具备突出的优势。 你的开发者可以更好地依据其喜欢的开发方式使用某种形式的 Marmalade。 该特性与抽象层“仅仅需编写一次。就可以随处应用”的本质密切相关。

艺术家管线

过去。开发团队中仅仅有编程人员。 如今,游戏工作室(不管大小)都明白划分了编程人员和艺术家的职责。 可以与内容创建工具密切集成的引擎可在竞争中占领优势。

Unreal Engine 和 Project Anarchy 均包括针对布局、关卡设计、资产操作等的 3D 编辑器。这些对 3D 艺术家尤为实用,由于其界面与很多 3D 艺术工具相似(它们还可与引擎的编辑器结合使用来创建资产)。

Unreal* Editor(左)和 Havok Vision Editor (右)

Unreal Engine 包括“蓝图编写(blueprint scripting)”功能,在该功能中,脚本组件(如动作)可形象化为拖放元素。

Unreal* Editor 中的蓝图编写(Blueprint scripting)功能

Project Anarchy 可提供一款相似的基于状态机的设计工具用于动画设计。

Project Anarchy* 分层状态机动画工具

尽管 Marmalade 拥有一个大型社区,用于开发开源插件和工具来支持开发工作(当中的大部分可从该站点获取:http://github.com/marmalade),可是 Marmalade 官方套件并未针对非程序猿提供不论什么资源。
凭借全面的工具套件,Project Anarchy 和 Unreal Engine 在该方面占有优势。

所有资源訪问

从可能性方面而言,创建自己的引擎另一个优点,就可以以对其进行改动。 由于可以訪问所有的源码,所以你可以更改当中的不论什么内容,或在其它的新目标平台上加入自己的支持。

Unreal Engine 在这一方面最大方;假设你支付了Unreal Engine 4 注冊费,便可以訪问所有资源。

Project Anarchy 可提供一些组件的源,假设须要所有的源。须要支付更高的费用。 用户可随时訪问低级别的资源,可是仅可对免费版本号进行改动。

尽管 Marmalade 拥有大量开源插件。可是其本身为封闭源。 你可以訪问最高层网,可是无法訪问其它源。

大部分开发者可能并不操心这一点,可是游戏引擎设计越复杂。你就越须要对每个细节有更高的控制力。

特性比較

Marmalade

Project Anarchy

Unreal Engine

最低成本

免费促销/149 美元 + 增值税

免费

19 美元/月 + 5%

维度

3D

可实现

适用

适用

2D

最轻松

alpha 级工具集

可实现。演示样例

语言

C++、Obj-C、Lua、HTML5

C++、Lua

C++

非程序猿功能

第三 方

3D 编辑器,Animation Studio

3D 编辑器。Blueprint scripting

全源

不能够

部分。但都在最高层

能够

总结

此处进行比較的每款引擎都有其专长和一处独有优势。 假设须要考虑未来成本,则可以选择 Project Anarchy。 假设考虑到技能和深层改动和扩展引擎的需求,Unreal 是成本最低的方式。 对于高速开发 2D 游戏,Marmalade 是不二之选。

市场上还有更多的免费和开源引擎 ,这些引擎堪与本文中所比較的三款引擎相媲美,可是我们选择这三款引擎而非其它,是由于这些引擎的性能可以助力你的游戏在多种 Android 设备上绽放华彩。

參考文献

关于作者

Brad Hill 眼下担任英特尔开发者关系部门的软件project师。 Brad 负责调研关于英特尔硬件的新技术,并通过英特尔® 开发者专区以及在开发者会议上与软件开发者分享最佳方法。 此外,他还担任学生黑客松的project总监。负责为全美范围内高等院校的优秀黑客松提供代码执行支持。

为基于 x86 的 Android* 游戏选择合适的引擎的更多相关文章

  1. Android研究之为基于 x86 的 Android* 游戏选择合适的引擎具体解释

     摘要 游戏开发者知道 Android 中蕴藏着巨大的机遇. 在 Google Play 商店的前 100 款应用中,约一半是游戏应用(在利润最高的前 100 款应用中.它们所占的比例超过 90% ...

  2. MyBatis 内置日志工厂基于运行时自省机制选择合适的日志工具

    mybatis – MyBatis 3 | 日志 http://www.mybatis.org/mybatis-3/zh/logging.html MyBatis 内置日志工厂基于运行时自省机制选择合 ...

  3. MySQL如何选择合适的引擎以及引擎的转换。

    我们怎么选择合适的引擎?这里简单归纳一句话:"除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎." 除非万不得已,否则不建议混 ...

  4. 基于cocos2d-x的Android游戏中使用fmod音频引擎

    cocos2d-x的音频引擎是cocosDenshion, 它的Android版比较弱, 只能播放一个背景音乐和些许音效, 如果要实现稍微复杂一点的音频播放, 比如同时播放几个音轨就不能了. 这一点远 ...

  5. 如何选择mysql存储引擎

    一.MySQL的存储引擎 完整的引擎说明还是看官方文档:http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html 这里介绍一些主要的引擎 ...

  6. 【转载】如何选择MySQL存储引擎

    一.MySQL的存储引擎 完整的引擎说明还是看官方文档:http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html 这里介绍一些主要的引擎 ...

  7. 教你如何选择Android游戏引擎

    我们进行Android游戏开发时选择游戏引擎是必须的,但是该如何选择呢?哪个Android游戏引擎更加适合自己呢?本文就提供了三个游戏引擎的对比说明,阐述了它们各自的特点,为大家选择引擎提供了参照. ...

  8. 为什么没有好用的Android游戏引擎?

    随着Android平台的不断发展,最近Android开发人员数量呈现出上升势头,就连以往较为冷门的游戏开发领域也涌现出不少生力军.然而,全新的问题正摆在了刚開始学习的人面前,非常多他们从未遇过的问题開 ...

  9. Android游戏引擎总汇 原文出处:http://software.intel.com/en-us/blogs/2012/03/13/game-engines-for-android?page=1

    随着Android系统的使用越来越广泛,了解一下Android平台下的游戏引擎就非常有必要.而同时因为基于Intel x86的移动设备越来越多,我也非常关注支持x86的移动游戏引擎.然而就目前为止游戏 ...

随机推荐

  1. BZOJ3697 采药人的路径 【点分治】

    题目 采药人的药田是一个树状结构,每条路径上都种植着同种药材. 采药人以自己对药材独到的见解,对每种药材进行了分类.大致分为两类,一种是阴性的,一种是阳性的. 采药人每天都要进行采药活动.他选择的路径 ...

  2. 给长标题加...css

    .wrap{ white-space:nowrap;overflow:hidden;text-overflow: ellipsis; } <th class="wrap"&g ...

  3. bzoj1433 [ZJOI2009]假期的宿舍 最大流

    [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3429  Solved: 1459[Submit][Status][D ...

  4. Flask获取post提交数据

    完成示例 # flask 代码 from flask import Flask,request ... @app.route('/get_tasks',methods=["POST" ...

  5. foj 2144 三位几何+区间覆盖

    题目大意:一个人站在三维坐标系下的原点处用炮打蚊子,给出n个蚊子的起始坐标跟单位时间匀速移动的方向向量,距离他R以内的蚊子都可以打到,不过他也需要休息,没蚊子的时候也可以休息下.求他要起来多少次打蚊子 ...

  6. Linux Malloc分析-从用户空间到内核空间【转】

    转自:http://blog.csdn.net/ordeder/article/details/41654509 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文 ...

  7. LeetCode OJ--Rotate List

    http://oj.leetcode.com/problems/rotate-list/ 取得后面k个节点,然后截断插到前面.如果k比list长,则按照求余算. 去后面的k个节点:使用两个指针,第一个 ...

  8. 记一次安装centos7及gnome桌面

    https://blog.csdn.net/bingbingtea/article/details/79553669

  9. Win10下安装Docker及tensorflow(cpu版)

    1.准备工作: 1)64为操作系统,win7或者更高 2)支持“ Hardware Virtualization Technology”,并且,“virtualization ”可用(可进入任务管理器 ...

  10. python 操作系统和进程

    一. 操作系统介绍 多道程序系统 多道程序设计技术       所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行.即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种 ...