65.9K
CodeProject 正在变化。 阅读更多。
Home

为基于 Intel® 架构的 Android* 平板电脑开发移动游戏图形,第二部分

2014 年 11 月 17 日

CPOL

11分钟阅读

viewsIcon

10666

在本系列文章的最后一部分,我将详细介绍适用于 Android* 平板电脑的最佳 3D 游戏引擎和中间件解决方案,包括免费、开源和专有选项。我还会指出哪些方案原生支持 x86 Intel® 处理器。

引言

在本系列文章的最后一部分,我将详细介绍适用于 Android* 平板电脑的最佳 3D 游戏引擎和中间件解决方案,包括免费、开源和专有选项。我还会指出哪些方案原生支持 x86 Intel® 处理器。

本系列的第一部分介绍了用于软件开发工具包 (SDK) 和 Android Native Development Kit 开发的游戏引擎、创作工具和中间件的基本概念和类别,并列出了 2D 游戏开发的最佳解决方案。

3D 游戏引擎

3D 游戏引擎在 Android 设备上运行,解析来自创作工具的内容,并通过 OpenGL ES* 渲染图形。它们还提供超出 OpenGL ES 范围的基本服务,例如渲染文本字体、检测触摸输入以及提供音频和视频集成。大多数游戏引擎都起源于 Windows* 平台,并于近期移植到 Android。有些引擎功能更全面、更成熟(例如 Unity* 3D),但体积也更大、成本更高;而其他引擎则完全开源免费(例如 Lightweight Java* Game Library [LWJGL] 和 jMonkeyEngine)。

最完整的解决方案甚至可以通过 OpenGL ES 为您的游戏提供跨平台移植到游戏主机、Apple iOS* 设备、Linux* 和 Windows 的能力,这有助于更快地将您的应用程序推向更广泛的市场——但需要付出代价。定价通常根据您需要的功能、您定位的不同平台数量、您的开发团队规模以及您游戏销售收入的多少而分级。当然,您可以通过支付许可费或订阅费获得更好的支持,而对于免费软件,您可能只能获得在线用户论坛的支持。

有些游戏引擎与专有创作工具紧密集成,当游戏发布时,您可能需要支付使用这些工具或引擎的许可费。但开源游戏引擎通常可以导入各种创作工具(无论免费还是付费)的内容,使用多种行业标准的 3D 资产交换文件格式,例如 Autodesk 3ds Max* 对象文件或 Collada。

最后,有些中间件解决方案并非完整 Thus, we can conclude that the given text is actually a description of the content that is written by the author and is based on the content from some of the online resource. 游戏引擎,但提供了构建自定义游戏引擎所需的许多组件,例如 Imagination Technologies PowerVR* SDK 和 LWJGL,成本很低甚至免费。如果您的应用程序范围有限,不需要典型 3D 游戏的所有服务,或者您需要源代码进行定制,那么这些都是不错的选择。

物理引擎

您的游戏可能需要一个物理引擎来为您的动画提供自然的运动,模拟重力、摩擦力、惯性和恢复力对运动中约束刚体几何形状的影响,并检测碰撞。最常用的游戏物理引擎是 Bullet、NVIDIA PhysX* 和 Box2D。Bullet 和 Box2D 是免费的开源项目。Box2D 仅限于 2D,但 Bullet 和 PhysX 提供 3D 碰撞检测以及对可变形软体(如布料和绳索)的支持。Android 上的许多 2D 游戏引擎,包括 Corona、LibGDX、GameMaker:Studio*、Gideros Studio 和 LWJGL,都使用 Box2D;许多 3D 引擎使用 Bullet。PhysX 是 NVIDIA 的专有产品;对于 Android 平台,仅限于教育和非商业用途免费提供。Unity 3D 和 DX Studio* 使用 PhysX。

Havok Project Anarchy*

Havok Project Anarchy* 是一款用于移动游戏开发的全新游戏引擎和综合工具包。其许可允许您免费在 Android、Tizen* 和 iOS 平台上发布您的游戏。它具有可扩展的 C++ 插件架构,包括 Havok 的视觉和物理引擎、动画和人工智能 (AI) 工具;灵活的资产管理系统;以及 Lua* 脚本和调试功能。此外,SDK 还附带了完整的游戏样本和广泛的课程资料。Havok 要求开发者成为联合营销合作伙伴,并使用 x86 工具进行编译,以利用不断增长的采用 Intel 处理器的 Android 平板电脑市场。这是移动游戏开发者一个免费但专业的全新选择。

Unity 3D*

Unity 3D 是目前在 Android 市场上占有最大份额的 3D 游戏引擎。它支持广泛的目标平台,包括 iOS、Windows 和游戏主机。Unity 3D 具有内置的集成开发环境;PhysX 物理引擎;C#、JavaScript* 和 Boo 脚本语言;多人游戏和网络支持;以及流式资产。它还支持从各种创作工具导入的艺术资产。开发者可以免费开始,但发布 Android 版本需要许可,并且许可费用是最高的之一。Unity 3D 不支持配备 Intel x86 处理器的 Android 设备,这限制了使用 Unity 3D 构建的 Android 游戏的市场。

jPCT-AE

jPCT‑AE 引擎是一个易于学习的、全 Java 的 3D 应用程序编程接口 (API),它拥有构建 Android 自定义游戏引擎所需的基本功能。它可免费用于个人和商业用途。它支持 Autodesk 3ds Max 创作工具、骨骼动画、着色器、纹理压缩、碰撞检测、各种光照模式、透明度、雾效,以及为配备 Intel 处理器的 Android 平板电脑提供原生 x86 支持以获得更好的性能。它基于 LWJGL 构建。

游戏玩法

Gameplay 是一款免费、开源、跨平台的 C++ 3D 框架,面向桌面和移动游戏(包括 Android)的独立游戏开发。它具有功能齐全的、基于节点的场景图渲染系统,包含粒子、Bullet 物理引擎、音频和用户界面 (UI) 系统等。它还为 Microsoft Visual Studio*、Xcode*、Eclipse* C/C++ Development Tools 和 CMake 提供了解决方案和工作区。

Esenthel Engine

这款现代化的 2D 和 3D、基于 C++ 的游戏引擎适用于 Windows、Linux、Mac* OS X*、iOS 和 Android,支持脚本、多种渲染器、动画系统、PhysX 和 Bullet 物理引擎以及流式传输。它还包括一个世界编辑器、模型编辑器、数据浏览器和代码编辑器,并为 Android 提供原生 x86 支持,以及一键式跨平台发布。Esenthel Engine 可用于无限制的免费试用(非商业用途)。

Linderdaum Engine

Linderdaum Engine 是一款用 C++ 编写的免费、开源、面向对象的 3D 游戏引擎,适用于 Windows、Android 和 RIM BlackBerry* OS 10。它是一个用于开发交互式 3D 应用程序的集成解决方案,包括游戏以及工业和科学可视化。它还为配备 Intel 处理器的 Android 平板电脑提供原生 x86 支持以获得更好的性能。

ShadingZen

ShadingZen 是一款用 Java 编写的免费、开源的 2D 和 3D 游戏引擎。它专为配备 OpenGL ES 2.0 加速器和不同屏幕尺寸的移动 Android 设备设计,并借鉴了流行的 Cocos2d 框架的概念,利用现代多核移动 CPU 在后台处理并行任务。

Marmalade*

Marmalade* SDK 是一款流行的跨平台 C++ SDK,一些大型游戏发行商正在使用它来开发新的 2D 和 3D Android 游戏。它支持使用 Windows 上的 Visual Studio 或 Mac OS X 上的 Xcode 的各种移动平台。Marmalade SDK 提供对 OpenGL ES 的访问,但它在构建 3D 游戏方面相对较新。该公司还提供 Marmalade Quick,它使用 Cocos2d‑x 支持使用 Lua 脚本语言构建 2D 游戏,以及 Marmalade Juice,它允许您将 iOS 上的 Objective‑C* 项目本机编译到 Android。您可以免费评估这些工具 30 天,但发布需要许可。Marmalade SDK 还为配备 Intel 处理器的 Android 平板电脑提供原生 x86 支持,以获得更好的性能。

ShiVa3D

ShiVa3D 是一款 3D 游戏引擎、编辑器、创作工具、编译器和大规模多人在线服务器,支持包括 Android 在内的多种目标平台。它包括先进的着色系统、物理、抬头显示渲染、Lua 脚本、声音库等。ShiVa3D 采用单一许可、免版税的定价结构,涵盖 Marmalade SDK 支持的所有移动平台。

DX Studio*

DX Studio 是一款免费的 2D 和 3D 游戏引擎,拥有自己的 Windows 编辑器,以及(最近新增的)对 Android 的支持。它使用 PhysX 库进行物理计算,并可以从多个流行的创作工具导入内容。

SIO2 Engine

SIO2 是一款跨平台的 2D 和 3D 游戏引擎,面向 Windows、Bada、webOS、iOS 和 Android。它支持 Lua 脚本、Bullet 物理、寻路、声音 API、着色器、动画和网络支持。SIO2 允许选择创作工具,并提供多种导出插件选项。提供免费评估套件,但发布需要许可。

Unigine*

Unigine* 是一款跨平台的 3D 游戏引擎,面向 Windows、Linux、Sony PlayStation* 3、Mac OS X、iOS 和 Android。SDK 提供两个版本:一个用于游戏,另一个用于模拟、训练、实时可视化和虚拟现实应用程序。提供免费评估套件用于商业项目开发,但发布需要许可。

LibGDX

最佳的免费开源 3D 解决方案之一是 LibGDX。它主要使用 Java,部分使用 C++ 以获得更好的性能。LibGDX 抽象了 Windows、Linux 和 Android 平台之间的差异,因此您可以在台式 Windows 或 Linux* PC 上尽可能多地进行开发,并定期在 Android 设备上测试您的代码。LibGDX 还支持 Mac OS X-、iOS- 和支持 Web Graphics Library 的浏览器。LibGDX 基于 LWJGL、OpenGL ES、FreeType、MPG123、Xiph、SoundTouch Audio Processing Library、Box2D、OpenAL 和 Kiss FFT 构建。

Lightweight Java* Game Library

LWJGL 是一个免费的开源库,用于在 Java 中开发商业级游戏。它提供了对多种高性能、跨平台库的访问,例如 OpenGL ES、OpenCL™ 和 OpenAL,其中一些在 Java 平台上通常无法获得或实现不佳。LWJGL 允许使用 3D 音效进行 Android 游戏开发,并可以访问游戏手柄、方向盘和操纵杆等控制器。许多面向 Android 的 2D 和 3D 游戏引擎都使用此库,包括 jPCT‑AE 和 LibGDX。

jMonkeyEngine SDK

jMonkeyEngine 是一款免费、开源的 3D 游戏引擎,适合希望使用尖端技术创建 3D 游戏的富有冒险精神的 Java 开发者。它提供了用于地形雕刻、电影制作、网络、输入、自定义控件以及音频和视频的工具。支持 Windows、Linux、Mac OS X 和 Android 目标平台。对于物理模拟,jMonkeyEngine 使用 jBullet,这是 Bullet 物理库的 Java 端口。jMonkeyEngine 的一个独特之处在于它与 Blender 创作工具紧密耦合,形成了一个完全开源且免费的 3D 游戏开发解决方案。

PowerVR* SDK

PowerVR SDK 包含可用于为包括 Android 在内的多种平台构建自定义 C++ 游戏引擎的工具和库。特别重要的是 PVRTexTool,它用于将 2D 图像压缩为专有的 PVRTC 纹理格式,以用于 Intel® Atom™ 处理器的 PowerVR GPU。此 SDK 还包括 PVRGeoPOD 工具,用于导入 Collada 等多种流行创作工具的内容,并提供了一系列全面的教程 OpenGL ES 示例程序。此 SDK 是专有的,但以允许性许可证免费分发。可通过 Android SDK Manager 作为 Eclipse 插件进行安装。请按照 PowerVR 下载网站 上的步骤安装 SDK。

表 1 显示了流行的 3D 游戏引擎和可用的 SDK。

表 1. 3D 游戏引擎和 SDK

名称 语言 源代码 成本 Intel® x86 支持 示例
Havok Project Anarchy* C++ 免费 原生 教程
Unity* 3D C#, JavaScript*, Boo 分级 AirAttack HD Lite
LibGDX C++ 和 Java* 免费 可移植
jPCT-AE Java 免费 原生 Max the flyer 3D
游戏玩法 C++ 免费 可移植 示例
Esenthel Engine C++ 分级 原生 示例
Linderdaum Engine C++ 免费 原生 示例
ShadingZen Java 免费 可移植 儿童游戏:3D 立方体
Marmalade* SDK C++ 和 Lua* 分级 原生 高尔夫大战 3D
ShiVa3D C++ 和 Lua 分级 可移植 展示
DX Studio* C++ 免费 可移植 画廊
SIO2 Engine C/C++ 和 Lua 分级 可移植 教程
Unigine C++ 分级 可移植 石油冲刺
Lightweight Java Game Library Java 免费 可移植 太空侵略者
jMonkeyEngine Java 免费 可移植 展示
Imagination Technologies PowerVR* 软件开发工具包 C++ 免费 可移植

结论

现在有大量 2D 和 3D 游戏引擎、创作工具和中间件解决方案可供选择,有助于加速开发利用新一代 Android 平板电脑更大、更高分辨率的显示屏以及加速的 OpenGL ES 2.0 功能的新应用程序。您可以利用这些软件解决方案,并从多种语言、许可和成本选项中进行选择,以简化 Android 平台的复杂性,并提供更具视觉吸引力的用户体验,让您的应用程序脱颖而出。

更多信息

关于作者

Clay D. Montgomery 是嵌入式系统上 OpenGL 驱动程序和应用程序的领先开发者。他的经验包括在 STB Systems、VLSI Technology、Philips Semiconductors、Nokia、Texas Instruments、AMX 以及作为独立顾问,在多个平台上设计图形加速器硬件、图形驱动程序、API 和 OpenGL 应用程序。他曾参与 Freescale i.MX 和 TI OMAP* 平台以及 Vivante、AMD 和 PowerVR 图形内核的早期 OpenGL ES、OpenVG* 和 SVG 驱动程序及应用程序的开发。他开发并教授了关于嵌入式 Linux 上 OpenGL ES 开发的研讨会,并在 Khronos Group 代表多家公司。

© . All rights reserved.