关于自定义或移植游戏引擎

工具、星星、行星 如果您使用 C 或 C++ 开发或自定义游戏引擎,以下要求对于将 Android 支持集成到您的游戏引擎中至关重要。

  • 利用 Android 开发工具
  • 构建 Activity
  • 绘制到屏幕
  • 处理输入事件
  • 输出音频
  • 管理内存
  • 测试和完善
  • 发布到 Google Play

本页介绍的要求不会教您如何从头开始开发游戏引擎,而是会确定 Android 与其他平台相比,Android 在哪些方面相对独特。

利用 Android 开发工具

Android Studio 包含可用于以下目的的工具:

  • 配置您的项目
  • 构建、调试和打包您的游戏
  • 使用系统、CPU 和内存分析器检查游戏的性能
  • 检查游戏的软件包或应用捆绑包的内容
  • 集成 Android SDK 和 NDK 的其他功能

Android 图形检查器 可以描述游戏的渲染性能,并帮助您使用帧分析来调查渲染帧的详细信息。

如果您主要使用 Microsoft Visual Studio,则可以使用 Android 游戏开发扩展 (AGDE) 将 Android 目标添加到现有项目中。AGDE 支持在 Visual Studio 中进行原生调试,并包含许多 Android Studio 分析工具的独立版本。

构建 Activity

您的游戏需要构建并与 Activity 交互。了解 Android 上的 Activity 生命周期,以了解 Activity 是何时创建、启动、恢复、暂停、停止和销毁的。

阅读有关 GameActivity 库的信息,该库集成了并满足了原生 C 或 C++ 游戏引擎的 Activity 相关需求(游戏窗口、生命周期、渲染、处理事件)。

绘制到屏幕

您的游戏需要在屏幕上绘制对象和精灵。了解 Android SurfaceView 以及如何在您的游戏引擎中 配置图形

Android 设备支持不同的显示刷新率。了解 在游戏循环中渲染,以防止帧丢失和帧缓冲区故障。

阅读有关如何 实现帧速率同步 以在 OpenGL 和 Vulkan 中实现流畅渲染的信息。使用性能调优器 优化您的帧速率

使用多重采样抗锯齿 (MSAA) 来提高渲染质量。MSAA 可以以很少的开销使用。要了解更多信息,请参阅博文 Multisampled Anti-aliasing For Almost Free — On Tile-Based Rendering Hardware

处理输入事件

游戏引擎从各种来源接收输入事件。为了获得身临其境的体验,请学习支持不同的 Android 输入源:

输出音频

您的游戏引擎需要在不同的设备和 Android 版本上输出音频。了解 Oboe,我们开源的 C++ 音频库,可以在您的游戏中 加入高性能音频

使用 Oboe 来实现最低延迟,避免特定音频错误,并自动选择最佳可用原生库(例如 AAudio 或 OpenSL ES)。

管理内存

在 Android 设备上,系统会尝试使用尽可能多的系统内存 (RAM),并在需要时执行各种内存优化以释放空间。学习 管理内存使用情况 以避免游戏变慢或退出。

测试和完善

当出现由未处理的异常或信号导致的意外退出时,Android 应用会崩溃。了解如何 检测和诊断崩溃、阅读堆栈跟踪、内存和网络异常、如何使用 logcat 以及如何理解 Java 和 Kotlin 特定的错误。

发布到 Google Play

玩家使用不同国家/地区的各种 Android 设备、网络状况和数据计划下载您的游戏。了解如何使用 Google Play 为大型游戏 交付应用捆绑包和资源包,并享受内容交付网络的优势。