如果您使用 C 或 C++ 开发或自定义游戏引擎,以下要求对于将 Android 支持集成到您的游戏引擎中至关重要。
- 利用 Android 开发工具
- 构建 Activity
- 绘制到屏幕
- 处理输入事件
- 输出音频
- 管理内存
- 测试和优化
- 发布到 Google Play
本页面所述的要求并非旨在教您如何从头开始开发游戏引擎,而是识别 Android 相对于其他平台而言相对独特的方面。
利用 Android 开发工具
Android Studio 包含可用于以下目的的工具:
- 配置您的项目
- 构建、调试和打包您的游戏
- 使用系统、CPU 和内存分析器检查游戏性能
- 检查游戏包或应用软件包的内容
- 集成 Android SDK 和 NDK 的其他功能
Android Graphics Inspector 可以描述游戏的渲染性能,并帮助您使用帧分析功能调查渲染帧的详细信息。
如果您主要使用 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 中实现帧同步以进行流畅渲染的信息。使用 Performance Tuner优化您的帧率。
使用多重采样抗锯齿 (MSAA) 提高渲染质量。MSAA 的开销非常小。要了解更多信息,请参阅博客文章基于图块渲染硬件上的多重采样抗锯齿几乎免费。
处理输入事件
游戏引擎从各种来源接收输入事件。为了获得沉浸式游戏体验,请学习如何支持不同的 Android 输入来源:
输出音频
您的游戏引擎需要在不同的设备和 Android 版本上输出音频。了解 Oboe,我们的开源 C++ 音频库,可用于在游戏中集成高性能音频。
使用 Oboe 可实现最低延迟,避免特定的音频错误,并自动选择最佳可用原生库(如 AAudio 或 OpenSL ES)。
管理内存
在 Android 设备上,系统会尝试尽可能多地使用系统内存 (RAM),并执行各种内存优化,以便在需要时释放空间。了解如何管理内存使用情况,以避免游戏变慢或退出。
测试和优化
Android 应用在出现未处理异常或信号导致的意外退出时会崩溃。了解如何检测和诊断崩溃、读取堆栈跟踪、内存和网络异常、如何使用 logcat 以及如何理解 Java 和 Kotlin 特定的错误。
发布到 Google Play
玩家通过不同国家/地区、网络条件和数据套餐中的各种 Android 设备下载您的游戏。了解如何使用 Google Play 交付应用软件包和素材资源包,以便通过内容分发网络优势来支持大型游戏。