Using a game engine on Android

Beaker, light-bulb, lightning bolt As a developer, using a game engine lets you concentrate your energy into building your game instead of having to build an entire technology stack.

Take advantage of Android development tools

Android development tools can assist your Android game development no matter which game engine is being used. Android Studio includes tools you can use to:

  • Examine the performance of your game using system, CPU and memory profilers
  • Inspect the contents of your game’s package or application bundle
  • Integrate additional features of the Android SDK and NDK

The Android Graphics Inspector can characterize the rendering performance of your game and help you investigate the details of rendered frames using frame capture.

Evaluate your engine

When considering a game engine for use on Android, you should evaluate its compatibility with Google Play requirements and support of desired Android features. Make sure your game engine supports common requirements as listed below.

Google Play requirements

Starting in August 2021, Google Play will require all Android apps to be submitted as Android App Bundles, and to use a target API level of 30 or higher. Verify that the engine you want to use can meet these requirements.

In-app purchases

If your game design uses in-app purchases verify that your engine has support for the Google Play Billing Library (GPBL). Depending on the engine, GPBL may be directly integrated into the engine, or may be accessible via an add-on or plugin.

Google Play Core features

The Google Play Core Library provides a runtime interface to the Google Play Store. With the Play Core Library, you can:

  • Notify the user about app updates
  • Download and access data in asset packs
  • Request in-app reviews

If you intend to use any of these features, verify the engine supports the Google Play Core Library, either directly or using an add-on or plugin.

Application permissions

Some Android features require user consent before they can be used by a game. The Android Permissions system is used to request access to these features. If your game requires permissions, make sure the engine has a method of specifying them in its project options, or allows you to customize the application manifest to include required permissions.

Notifications

Android Notifications are used to notify or message the user when they aren’t playing your game. If this feature is important to your game, verify the engine supports sending and processing notifications.

Engine resources

The following commercial and open-source game engines have robust support for Android. For each game engine, we have provided guides on configuring engine projects for Android to help ensure a polished and engaging user experience when running on an Android device.

Defold

Defold is an open-source engine that uses the Lua programming language as its scripting language. Defold has extensive support for 2D games and graphics, with built-in support for particles, sprites, tile maps and Spine models. Although Defold has a 2D focus, it uses a 3D rendering engine and supports rendering 3D models and meshes, as well as customizing materials and shaders. Physics support is built-in, with options for 2D or 3D physics. Defold is based around a visual editor with layout and property tools for game scenes and objects. The Defold editor includes integrated script editing and debugging features. Native code is supported in the Defold engine through a plugin system.

Guides

Godot

Godot is an open-source engine suitable for both 2D and 3D games. It supports a range of capabilities that encompasses everything from 2D sprites and tile maps to 3D models with physically-based rendering and global illumination. It has a built in physics system that supports 2D and 3D physics. There are multiple programming language options for Godot, including the custom GDScript language, C# 8.0, C++, as well as visual scripting. Godot engine projects are built around core Scene and Node objects. It includes a visual editor for creation and editing of these objects. The editor also features integrated editing and debugging support for the GDScript language.

Guides

Unity

Unity is a commercial game engine that has been used by many games. Unity is designed for both 2D and 3D game development. Unity has been used for everything from basic 2D sprite games to games featuring large complex 3D worlds. Unity has multiple renderer options, including the Universal Render Pipeline, designed for performant 2D or 3D graphics on mobile device hardware. Unity uses the C# programming language, with plugin support for interfacing with native code. Because of its popularity, Unity has a wide range of official and community information and education resources. Unity operates the Unity Asset Store, which is a vast marketplace of prebuilt art and code assets, both free and paid, available for use in Unity projects.

Guides

Unreal

Unreal Engine 4 is a commercial game engine specializing in high-end 3D games with sophisticated graphics. Unreal includes a visual editor for editing game levels and working with imported models and material assets. Unreal Engine 4 does not use a built-in scripting programming language. The Unreal Editor does feature a visual scripting system called Blueprints, which can be used to construct game and interface logic. Game functionality can also be implemented as C++ code. Epic Games, the developer of Unreal, operates the Unreal Engine Marketplace as a digital storefront for Unreal Engine resources. The Unreal Engine Marketplace has a wide variety of prebuilt art and code assets available, both free and paid, for use in Unreal projects. The Android Game Development Extension can be used to debug Unreal projects running on Android.

Resources