如果你正在使用C或C++开发或自定义游戏引擎,以下要求对于将Android支持集成到你的游戏引擎中至关重要。
- 利用Android开发工具
- 构建活动
- 绘制到屏幕
- 处理输入事件
- 输出音频
- 管理内存
- 测试和完善
- 发布到Google Play
此页面上描述的要求不会教你如何从头开始开发游戏引擎,而是确定Android与其他平台相比相对独特的地方。
利用Android开发工具
Android Studio包含您可以使用的工具,用于
- 配置您的项目
- 构建、调试和打包您的游戏
- 使用系统、CPU和内存分析器检查游戏的性能
- 检查游戏包或应用包的内容
- 集成Android SDK和NDK的其他功能
Android图形检查器可以描述游戏的渲染性能,并帮助您使用帧性能分析调查渲染帧的详细信息。
如果您主要使用Microsoft Visual Studio,则可以使用Android游戏开发扩展 (AGDE) 向现有项目添加Android目标。AGDE支持在Visual Studio中进行原生调试,并包含许多Android Studio性能分析工具的独立版本。
构建活动
您的游戏需要构建并与Activity
交互。了解Android上的Activity生命周期,以了解何时创建、启动、恢复、暂停、停止和销毁Activity。
阅读关于GameActivity
库的信息,该库集成了并满足原生C或C++游戏引擎的与Activity
相关的需求(游戏窗口、生命周期、渲染、处理事件)。
绘制到屏幕
您的游戏需要在屏幕上绘制对象和精灵。了解Android SurfaceView
以及如何在游戏引擎中配置图形。
Android设备支持不同的显示刷新率。了解游戏循环中的渲染,以防止帧丢失和帧缓冲区故障。
阅读如何在OpenGL和Vulkan中实现帧速率调节以实现流畅的渲染。使用性能调谐器优化帧率。
使用多样本抗锯齿 (MSAA) 来提高渲染质量。MSAA可以在几乎没有开销的情况下使用。要了解更多信息,请参阅博客文章在基于图块的渲染硬件上几乎免费地进行多样本抗锯齿。
处理输入事件
游戏引擎从各种来源接收输入事件。为了获得身临其境的体验,学习支持不同的Android输入源
输出音频
您的游戏引擎需要跨不同的设备和Android版本输出音频。了解我们的开源C++音频库Oboe,以便在您的游戏中加入高性能音频。
使用Oboe实现最低延迟,避免特定的音频错误,并自动选择最佳的可用原生库(例如AAudio或OpenSL ES)。
管理内存
在Android设备上,系统尝试使用尽可能多的系统内存(RAM),并在需要时执行各种内存优化以释放空间。学习管理内存使用情况以避免减慢或退出游戏。
测试和完善
每当由于未处理的异常或信号导致意外退出时,Android应用程序都会崩溃。了解如何检测和诊断崩溃,阅读堆栈跟踪、内存和网络异常,如何使用logcat以及如何理解Java和Kotlin特有的错误。
发布到Google Play
玩家使用不同国家/地区、网络状况和数据套餐的不同Android设备下载您的游戏。了解如何使用Google Play来交付应用包和资源包,以便大型游戏能够利用内容交付网络的优势。