Android code repository for the ScapesEngine. For more info on the non-Android components head there.
This repository contains the modules required for Android support that can only be built using the Android Build Tools.
Uses Android provided OpenGL ES 3.0 support (for graphics) and a custom built OpenAL-soft binary` (for audio, most architectures included by default).
The backend provides an abstract activity which is easiest for displaying just the game without any Android specific ui, however a few things are to note:
- The engine is bound to the activity so that restarting the activity also restarts the engine. Consider setting up manual configuration change handling in the manifest. The engine should pick everything up out of the box, which is why supporting activity restarts does not actually help with anything
- The only lifecycle events exposed directly can be listened for using a
ComponentLifecycle
attached to the engine. Any game data must be saved wheneverComponentLifecycle::halt
is called, unless further precautions are taking using e.g. services.
Engine runsFontsScapes works more or less fully(It tests most of the engine)Performance profiling integrations(Systrace and CPU sampler do the job)Keyboard and mouse support(Mouse capture is a noop before api level 26)Gamepad support- Use platforms APIs for
Audioand Image decoding (MediaCodec is a piece of ****) - Power management (The engine currently only knows one mode: drain battery)
- ChromeOS support (No idea if it might already run)
- VR Support, Google says VR is ze future!
The project uses Gradle to build all modules.
Requires an Android SDK and NDK installed with build tools (version can be
configured in gradle.properties
) and CMake support.
You can run :publishToMavenLocal
to install all its module as maven artifacts.
To use anything you can add any module through jitpack.io or set up a composite build.
Android backend for the engine using an activity and foreground service.
- AndroidBackend
Glue layer between Android Parcels and Bundles and tag structures.
- AndroidParcelTag
Glue layer between Android provided SQLite support the the SQLFramework.
- AndroidSQLite
Glue layer between the profiler used in the engine and systrace.
Note: Untested due to not-working related problems on phone.
- AndroidSysTrace
Contains a build of OpenAL-soft and ALAN to provide easy access to 3D audio on Android.
- OpenAL