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

Marmalade C++ 和 ShiVa3D: 适用于 Android x86 的游戏引擎指南

2015年10月30日

CPOL

13分钟阅读

viewsIcon

14324

本指南将详细介绍使用 Marmalade C++ SDK 7.1 和 ShiVa3D 游戏引擎为 Android x86 架构构建跨平台 Android 应用程序的详细步骤。

Intel® Developer Zone 提供跨平台应用开发工具和操作指南、平台和技术信息、代码示例以及同行专业知识,帮助开发者创新并取得成功。加入我们的社区,获取 Android物联网Intel® RealSense™ 技术Windows 的开发工具、访问开发者套件、与志同道合的开发者交流想法,并参与黑客松、竞赛、路演和本地活动。

正在构建跨平台 Android 应用?此前,我们分享了如何使用 Unity* 游戏引擎为 Android* 应用添加 x86 支持,以及如何使用《虚幻* 引擎 4》等游戏开发套件。然而,在本指南中,我们将详细介绍使用 Marmalade C++ SDK 7.1 和 ShiVa3D 游戏引擎为 Android x86 架构构建跨平台 Android 应用程序的详细步骤。

Marmalade C++ SDK

Marmalade SDK 是一个跨平台软件开发套件,包含开发、测试和部署移动设备应用程序所需的库文件、示例、文档和工具。

Marmalade SDK 的基本理念是“一次编写,随处运行”,这样就可以将单一代码库编译并在所有支持的平台上执行,而不是为每个平台使用不同的编程语言和不同的 API 进行编写。这是通过提供一个基于 C/C++ 的 API 来实现的,该 API 作为每个平台核心 API 的抽象层。

Marmalade SDK 打包提供示例项目和教程,并且还有在线文档

设置

以下是在Windows* 平台上使用 Marmalade 的步骤。对于 Mac OS*,请参考此文档

对于 Windows 平台,在实际安装 Marmalade SDK 之前,需要满足以下先决条件:

  • Windows 7 或更高版本
  • 必须安装 JRE 5 或更新版本。
  • Microsoft Visual Studio* 2008SP/2010/2012 Express/Pro 版本
  • 需要安装 (C++), Scons (C++), 和 ZeroBrane (Lua)
  • Android ADT bundle
  • Android NDK
  • Apache Ant (可选)

在开始构建项目之前,需要更新一些环境变量

  • 设置 ANDROID_SDK_ROOT = 提供 SDK 文件夹的完整路径。例如:在我这里,我将 ADT bundle 下载并解压到 D:\android\,所以我的路径是:D:\android\adt-bundle-windows-x86_64-20131030\sdk
  • 设置 NDK_ROOT = NDK 文件夹的完整路径,我的路径是:D:\android\android-ndk-r9b
  • 设置 JAVA_HOME = 您安装 JAVA JDK 的路径,对我而言是:C:\Program Files\Java\jdk1.7.0_45
  • 设置 ANT_HOME = 您安装 Apache Ant 的路径,我的路径是:C:\ant\apache-ant-1.9.2
  • 更新 Path 变量,使其包含以下内容:JDK 文件夹的路径、JDK bin 文件夹的路径、NDK 路径、Ant bin 文件夹的路径、SDK tools 文件夹的路径以及 SDK platform-tools 文件夹的路径,每个路径之间用分号 (;) 分隔。例如,在我这里,我将添加以下内容:

    %ANT_HOME%\bin;C:\Program Files\Java\jdk1.7.0_40\bin;D:\android\adt-bundle-windows-x86_64-20131030\sdk\tools;D:\android\adt-bundle-windows-x86_64-20131030\sdk\platform-tools;%JAVA_HOME%\bin

    注意:任何变量的末尾都不要包含 \ 或 ` 或任何特殊字符。

现在您已准备好下载 Marmalade SDK

使用 Marmalade SDK 进行 Android x86 开发

Marmalade 提供三种创建项目的方式:

I. 手动创建
II. 通过命令行
III. 通过 Marmalade Hub

以下是使用这些方法创建 Hello World 项目的步骤。

注意:项目文件夹的路径将被称为:{$PROJECT PATH}。例如,如果项目位于D:\Marmalade_Projs,那么就是

{$PROJECT PATH} = D:\Marmalade_Projs

通过 IDE 手动创建

要手动创建 Hello World 项目,您需要创建以下两个文件:

  1. HelloWorld.mkb

    Marmalade 使用扩展名为 .MKB 的纯文本文件格式来存储项目信息,包括:

    • 构建选项
    • 子项目
    • 源文件
    • 资源(图形、音频等)
    • 部署选项

    有关 MKB 文件的深入知识,请参考官方文档

  2. HelloWorld.cpp

    这将包含应用程序的源代码。

运行项目的步骤

  1. 导航到您之前创建的 HelloWorld.mkb 文件并双击它。
  2. 您会看到它执行了许多功能,并自动生成了两个新的子文件夹,其中包含构建文件。
  3. 生成的 Visual Studio 项目随后将在 Microsoft Visual Studio 中打开进行编辑、编译和/或测试,如下图所示。

  4. 要使用 Marmalade 的 x86 模拟器进行编译和运行,请进行以下更改:
    1. 点击 Debug > HelloWorld_vc11x Properties…

    2. 将打开以下窗口。然后点击 Configuration Manager(如下图中圈出)

    3. 从下拉菜单中选择 x86 Debug 选项(如下图所示),然后点击 Close 按钮。

    4. 现在,点击 Debug > Start Debugging 选项(如下图所示)。

    5. 您可能会收到一个警报(如下图所示),点击 Yes。

    6. 如果出现警告(如下图所示),再次点击 Yes。

    7. 项目将成功调试并运行,输出如下:

使用命令行

  1. 打开命令提示符。
  2. 导航到项目目录。
  3. 输入以下命令:
    >>mkb.bat Hello.mkb --execute --rebuild
    这将为所有变体(ARM 和 x86)重新构建项目。
  4. 按如下方式在 mkb 文件中配置 x86 选项:
    option
    {
    android-x86
    }
    D:\MarmaladeProject> mkb.bat Hello.mkb --execute --debug
    D:\MarmaladeProject> mkb.bat Hello.mkb --execute --Release

    这将为选定的变体构建项目。

    重要提示:要在命令行中运行,请将 s3e 二进制文件路径附加到系统 PATH 环境变量中。
    例如:set PATH=%PATH%;D:\Marmalade\7.0\s3e\bin;
    或者更新位于“此电脑->属性->高级系统设置->高级->环境变量->系统变量”中的 PATH 系统变量,以包含 s3e 二进制文件路径。
    MyComputer->Properties->AdvancedSystemSettings->Advanced->Environment Variables->System variables to contain the s3e binary path

通过 Marmalade Hub

在 Windows 开始菜单中找到“Marmalade Hub”并运行它。

当窗口出现时,点击“Marmalade C++”(如下图左侧)。

如果显示欢迎屏幕(如上图右侧),请点击 Close 继续(如下图中圈出)。然后点击 Create New Project 按钮(如下图所示)。

之后,您将看到以下表单:

  1. Project Name:输入项目名称。在本例中,是 HelloWorld1
  2. Create In:输入要创建项目的文件夹(相当于手动过程中的 {$PROJECT PATH})。

然后点击 Create Project 按钮。您将看到以下屏幕:

Marmalade Hub 不允许编辑源文件,而是提供了一个 Open in IDE 功能,该功能将使用默认 IDE 打开项目,您可以在其中编辑源文件。点击 Open in IDE 按钮在 Visual Studio 中打开项目。

要调试和运行项目,请按照文档前面手动部分“运行步骤”中的第 4 步进行操作。成功执行后,您可以通过点击 Marmalade Hub 屏幕中的 Run 按钮(如下图所示)来运行应用程序。

输出或二进制文件

构建过程完成后,假设主机上安装了 Visual Studio Xpress 2010,则二进制文件生成如下:

  1. <projectfolder>/build_<projectName>_vc10x/Debug_IwGx<projectName>_vc10x_gcc_X86_android/IwGx<projectName>.so
  2. <projectfolder>/build_<projectName>_vc10x/Debug_IwGx<projectName>_vc10x_gcc_X86_android/IwGx<projectName>.obj

例如

  1. C:/Marmalade/7.0/examples/HelloWorld/build_iwgxhelloworld_vc10x/Debug_IwGxHelloWorld_vc10x_gcc_X86_android/IwGxHelloWorld.so
  2. C:/Marmalade/7.0/examples/HelloWorld/build_iwgxhelloworld_vc10x/Debug_IwGxHelloWorld_vc10x_gcc_X86_android/IwGxHelloWorld.obj

Marmalade SDK (7.1) 仅支持基于 IDE 中运行配置或 mkb 文件中的 options 标签指定/配置的选项的单个 APK。它不支持 FAT 二进制文件,也就是说,一次只能生成 x86 或 ARM 的 APK。

生成多个 APK 后,您可以使用多 APK 支持将它们提交到 Google Play* 商店。此功能允许您发布针对 x86 CPU 架构的应用程序的不同 APK。

ShiVa3D* 游戏引擎

ShiVa3D 游戏引擎与 Marmalade 不同。ShiVa3D 是一个 3D 游戏引擎,带有一个图形编辑器,用于为 Web、游戏机和移动设备创建应用程序和视频游戏。

它可以生成适用于 Windows、Mac OS、Linux*、iPhone*、iPad*、BlackBerry* Tablet OS/BlackBerry 10、Android、Palm OS、Wii* 和 WebOS 的游戏和 3D 图形模拟,可以独立运行或嵌入在 Web 浏览器中。

该游戏引擎使用 OpenGL*、OpenGL ES* 或 DirectX*,也可以在软件模式下运行。ShiVa3D 支持行业标准插件,如 NVIDIA PhysX*、FMOD* 声音库和 ARToolKit。

ShiVa3D Web Edition 是一个免费、无限制且功能齐全的版本,可用于测试目的。

除了编辑器外,您还可以使用ShiVa3D Authoring Tool 来编译由编辑器生成的 Windows、Mac OS、Linux、iPhone、iPod、iPad、Android、BlackBerry QNX 和 Palm 的源文件。

ShiVa3D 安装

在使用 ShiVa3D 之前,您需要满足某些先决条件。请注意,此处假定您将在 Windows 上进行开发。

  1. Windows 要求
    1. 需要 Windows 7 或更高版本。
  2. 下载列表
    1. 下载 Android ADT Bundle
    2. 下载 NDK
    3. 下载并安装 Cygwin*Cygwin 是一个程序,它使您能够在 Windows 上获得类似 Linux 的体验。您可以安装 Cygwin 的某些软件包,并拥有一个最小化的类 Linux 环境。当提示选择软件包时,搜索并安装下面的软件包:
      • autoconf, automake, binutils, gcc-core, gcc-g++, gcc4-core, gcc4-g++, gdb, pcre, pcre-devel, gawk, make, python

        注意:同时选择 make 的 GUI 版本,否则您将无法使用 NDK 构建项目。
    4. 下载 JDK
    5. Apache Ant
    6. Microsoft Visual Studio C++ Express:下载Microsoft Visual Studio
  3. 环境变量编辑列表
    1. 设置 JAVA_HOME = 您安装 JAVA JDK 的路径,对我而言是:C:\Program Files\Java\jdk1.7.0_45
    2. 设置 ANDROID_SDK_ROOT = SDK 文件夹的完整路径。例如:在我这里,我将 ADT bundle 下载并解压到 D:\android\,所以我的路径是:D:\android\adt-bundle-windows-x86-20131030\sdk
    3. 设置 NDK_ROOT = NDK 文件夹的完整路径,我的路径是:D:\android\android-ndk-r9b
    4. 设置 ANT_HOME = ANT 文件夹的完整路径,对我而言是:C:\ant\apache-ant-1.9.2
    5. 更新 Path 变量,使其包含以下内容:JDK 文件夹的路径、JDK bin 文件夹的路径、NDK 路径、Cygwin bin 文件夹的路径、ANT bin 文件夹的路径、SDK tools 文件夹的路径以及 SDK platform-tools 文件夹的路径,每个路径之间用分号 (;) 分隔。例如,我添加了以下内容:

      D:\cygwin64\bin;C:\Program Files\Java\jdk1.7.0_40\bin;D:\android\adt-bundle-windows-x86_64-20131030\sdk\tools;D:\android\adt-bundle-windows-x86_64-20131030\sdk\platform-tools;%JAVA_HOME%\bin;%ANT_HOME%\bin

      注意:任何变量的末尾都不要包含 \ 或 ` 或任何此类特殊字符。

现在,先决条件已满足,您可以下载并设置 Windows 上的 ShiVa3D。

下载 ShiVa3D Web Edition

您可以在以下网址下载 ShiVa3D:http://www.stonetrip.com/download.html

在该页面您会找到很多选项。请选择与 Web 版本对应的选项(如下图所示)。

此软件包将包含以下内容:ShiVa Editor、ShiVa Authoring Tool、ShiVa Mobile Development Tools、ShiVa Server PLE 和 ShiVa Players。

使用 ShiVa3D 导出第一个应用程序的步骤

  1. 点击 General > Game Editor > Game > Export… 导出您的应用程序(如下图所示)。

  2. 填写表单并点击 Export(如下图所示)。我的导出文件夹是:D:\ShiVa3D_prog\game_export。您可以选择任何您偏好的文件夹。



    注意:导出应作为单个 .stk 文件进行,如下图所示。

使用 ShiVa3D Authoring tool 构建第一个应用程序的步骤

  1. 关闭 ShiVa Editor 并运行 ShiVa3D Authoring tool。您将看到一个类似下面的窗口。

  2. 双击选择 Android 选项,将显示一个类似下面的屏幕。

  3. 在相应的输入框中导入上一步导出的应用程序,方法是选择 folder 选项(圈出)并浏览到该文件。同样,您可以通过点击其对应的 folder 图标(圈出)并导航到所需文件来添加图标或启动闪屏的图像。

  4. 点击右下角的 Settings 选项(圈出),将显示下面的屏幕。

  5. 点击其对应的 folder 图标并导航到相应文件夹,添加 Cygwin、Android NDK 等所需软件包的文件夹。
  6. 然后点击 OK,您将返回到之前的屏幕。
  7. 点击 Step 2: Authoring(如下图所示)。

  8. 在圈出的位置输入软件包名称(如下图所示)。

  9. 然后点击 Step 3: Build,将显示一个类似下面的屏幕,您可以在其中设置最低 Android API 级别、CPU 支持和输出文件夹。

  10. 选择适当的值后,点击右下角的 Build 选项(如下图中圈出)。
  11. 构建成功后,您将看到以下屏幕。

在 ShiVa3D 的情况下,我们只能通过 ShiVa3D Authoring tool 进行构建,它有一个 GUI。没有命令行选项。下面记录了配置 GUI 选项的步骤。

  1. 如何配置 x86 平台
    1. 首先,使用 ShiVa Editor 开发并导出您的游戏。请确保在导出的文件名中,除了 a-z、A-Z、0-9 或 _ 之外,不使用任何其他字符(任何其他字符都会在构建过程中导致错误)。重要的是,游戏必须先由 ShiVa Editor 导出,否则我们将无法在 ShiVa3D Authoring tool 中对其进行操作。
    2. 现在打开 ShiVa3D Authoring tool 并双击 Android 选项。按照上面提到的步骤进行,但有以下区别:
      当您执行上述 g-h 步骤时,您会看到一个名为 Authoring Type 的选项(如下图所示)。



      默认情况下,此字段的值为 APK Package。如果您只想获取可以直接安装在设备上的应用程序的 .apk 文件,请保持不变。

      注意:在这种情况下,您将不会获得任何二进制文件,因为它们将存储在 Windows 临时文件夹中,并且在构建完成后会被删除

      如果您对二进制文件而不是 .apk 文件感兴趣,请从下拉列表中选择第二个选项:Project。这将确保生成一个 .zip 文件,其中包含所有二进制文件。但是,在这种情况下,.apk 包文件不会生成。

      上述 .apk 或 .zip 文件的生成输出文件夹在步骤 i 中指定。您将看到以下窗口,当您向下滚动时,会显示 Output folder 选项。



      在这里,您可以通过使用 folder 图标并浏览到所需的文件夹,或者键入完整路径来输入所需的输出文件夹。

      要为 x86 平台进行构建,请点击 Output folder 选项上方的 CPU support 选项(如下图所示)。从下拉菜单中选择 x86 选项。请注意,此选项的默认值为 Default,需要将其更改为 x86 才能为 x86 目标构建游戏。



      如果 Minimum OS Support 字段的值小于 API – 9,则可能会出现错误。请选择合适的 API 级别(如下图所示)。

  2. 构建输出

    确保您已根据前面的部分中的说明进行了更改后,您就可以为 x86 目标平台构建游戏了。输出取决于您选择的是 APK Package 还是 Project,但无论哪种,都会位于 Output folder 中。我的输出文件夹是:D:/ShiVa3D_prog/authoring_tool_output

    如果您选择了 APK Package,则该文件夹包含一个 .apk 文件,如下所示:

    D:\ShiVa3D_prog\authoring_tool_output\FistApp_1-debug.apk

    如果您选择了 Project,则该文件夹包含一个 .zip 文件,如下所示:

    D:\ShiVa3D_prog\authoring_tool_output\FistApp_1_Android.zip

    这个 .zip 文件将包含所有必需的二进制文件、清单文件、make 文件、资源文件和构建文件。

相关文章与资源

© . All rights reserved.