Less than 100 Kilobytes. Works for Android 5.0 and above
Less than 100 Kilobytes. Works for Android 5.0 and above
It all started in 2021 when I stumbled upon rawdrawandroid. My goal was simple: to create a game with the minimal APK size, yet still be understandable and interesting.
The idea of making a Flappy Bird clone seemed logical, given that this game had already been ported to many languages.
In 2021, I also studied Raylib, but my first attempt to make a game in C++ using ImGui failed.
The problems were everywhere: the APK size was around 1 MB, the game crashed, and the APK only contained the armeabi-v7a library (Google's 2022 requirements state that the arm64-v8a library must be included!).
In September 2024, seeing Flappy Bird in C# in the Raylib Discord channel, I decided to try implementing this game in C for Android with an APK size of less than 100 KB.
The idea seemed crazy, but the competitive interest took over.
I started by compiling a "Hello World" in C and packaging the library into an APK.
Sounds were compressed to MP3 format, and OpenSLES was used for playback.
For PNG file decoding, I chose upng. ️
All of this was combined using OpenGL ES 2, shaders, and Android Native Activity.
For Linux and macOS users, you can build the project using the provided Makefile:
.env file in the project root directory (see .env.example for an example).cd FlappyBird
make
For more detailed instructions, please refer to BUILDING.md.
The signed APK will be generated at:
FlappyBird/app/build/outputs/apk/FlappyBird-signed.apk
I do not claim any copyright. The rights to the game and resources belong to DotGEARS.
Enjoy the game and don't forget to star it!
No open issues yet, or sync has not completed.