Flappy Bird Download

Ultra-lightweight (<100KB) native C implementation of Flappy Bird for Android, running on OpenGL ES.

⭐ 2,345 stars on GitHub
Latest Release: v1.8

About Software

This project is a highly optimized re-implementation of the classic Flappy Bird game, written entirely in C. It distinguishes itself by its incredibly small footprint, with an APK size of less than 100 Kilobytes. Designed to run on Android 5.1 and above, it utilizes native Android APIs and OpenGL ES 2.0 to deliver smooth performance without the bloat of modern game engines.

The project serves as both a playable game and a technical showcase. It demonstrates how to build Android applications using pure C/C++ (NDK) without Java/Kotlin code for the main logic. By avoiding heavy dependencies and manually handling assets like PNG decoding and MP3 playback (via OpenSLES), it achieves minimal resource usage, making it perfect for low-end devices or as a reference for lightweight native development.

Use Cases:

  • Play the classic Flappy Bird game on modern Android devices (Android 5.1+)
  • Experience an extremely lightweight game (< 100KB APK size)
  • Test Android devices with a minimal OpenGL ES application
  • Study open-source C implementation of a game using Android Native Activity
  • Run a distraction-free, ad-free version of the game

Downloads

v1.8 December 16, 2024
FlappyBird-signed.apkapk
v1.7 October 04, 2024
FlappyBird-signed.apkapk
v1.6 September 24, 2024
FlappyBird-signed.apkapk
v1.5 September 23, 2024
FlappyBird-signed.apkapk
v1.4 September 23, 2024
FlappyBird-signed.apkapk
v1.3 September 23, 2024
FlappyBird-signed.apkapk
v1.2 September 23, 2024
FlappyBird-signed.apkapk
v1.0 September 21, 2024
FlappyBird-signed.apkapk

Package Info

Last Updated
Dec 16, 2024
Latest Version
v1.8
License
Unspecified
Total Versions
8

README

Readme на русском языке

Dev blog in Telegram (ENG/RU) (https://t.me/boevdev)

🐦 Flappy Bird in C: APK Size < 100 Kilobytes! 🚀

📜 History:

It all started in 2021 when I stumbled upon rawdrawandroid (https://github.com/cnlohr/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 (https://github.com/raysan5/raylib), but my first attempt to make a game in C++ using ImGui (https://github.com/ocornut/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!). 🤯

💡 Motivation:

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. 💪

🛠️ Implementation:

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 (https://github.com/elanthis/upng). 🖼️

All of this was combined using OpenGL ES 2, shaders, and Android Native Activity. 🎮

See full README on repository.