Welcome to android-vulkan source code repository. This project was started as personal hobby. Main purpose of the project is learning and implementing the most recent programming techniques for robust 3D game engines on the Android mobile devices. Two years later the project goals were extended to 3D physics engine development, Lua embedded scripting language integration, spatial sound rendering and HTML5 + CSS rendering system for UI.
android-vulkan is 3D engine framework. android-vulkan is dedicated to Vulkan API learning, 3D physics engine development, Lua embedded scripting language integration, spatial sound rendering and HTML5 + CSS rendering system for UI.
Useful documentation is located here.
Note desktop operating system requirements apply for builder machine only. In other words you can build, deploy and debug the project out of the box as soon as you are able to install proper Android Studio.
The canonical way is to use real Android device via USB connection. Android emulator is never tested and there are no plans to support it.
Pay attention that all 3rd party libraries already prebuild and project has all needed header files. You do not need to build them by yourself. Same applies to SPIR-V shader blobs and game assets.
- Windows 10+ or Monjaro KDE
- Android Studio Ladybug | 2024.2.1 Patch 3
- Android Studio Gradle Plugin 8.7.3
- Android NDK 27.2.12479018 (side by side)
- Minimum Android SDK version: Android 11 (API level 30)
- Compile Android SDK version: Android 15 (API level 35)
- Android SDK Build-Tools 35.0.0
- Android SDK Platform-Tools 35.0.2
- Kotlin 2.1.0
- Kotlin Gradle plugin 2.1.0
- CMake 3.31.1
- Gradle 8.12-bin
- DirectX Shader Compiler 1.8.2407.10120
d39324e0635130e834a68e33b0c603cf5fc9fb4f
- libfreetype 2.13.3
59320b2d3c2584ac01914ed0deff64bcc8fb23b2
- libogg 1.3.5
7cf42ea17aef7bc1b7b21af70724840a96c2e7d0
- libvorbis 1.3.7
bb4047de4c05712bf1fd49b9584c360b8e4e0adf
- libvorbisfile 1.3.7
bb4047de4c05712bf1fd49b9584c360b8e4e0adf
- stb_image 2.30
5c205738c191bcb0abc65c4febfa9bd25ff35234
- Vulkan Validation Layers 1.4.303
e1b6492a0b1491f82f3f6c5a2054b7bdc711ad5f
- Lua 5.5.0
2fccd3c4b9043a77b0be2da74c8c7ffe31ce28c7
- Real Android 11 device with Vulkan 1.1.131 support
- ARM Neon A64 native support
To begin, clone this repository onto your local drive.
Optional: Recompile project shaders to SPIR-V representation via DirectX Shader Compiler. See manual here.
Create and setup Android certificate. See manual here.
Next step is to compile project via Android Studio IDE as usual.
XBOX ONE S controller is supported via Bluetooth connection. Other controllers are not tested.