3.4 KiB
🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀
📜 История:
Всё началось в 2021 году, когда я наткнулся на rawdrawandroid. Моя цель была проста: создать игру с минимальным весом APK, но при этом, чтобы она была понятной и интересной. 🎯
Идея сделать клон Flappy Bird казалась логичной, учитывая, что эта игра уже была портирована на множество языков. 🐤
В 2021 году я также изучил Raylib, но первая попытка сделать игру на C++ с использованием ImGui потерпела неудачу. 💔
Проблемы были везде: вес APK был около 1 МБ, игра вылетала, и в APK была только библиотека для armeabi-v7a (требования Google от 2022 года это наличие arm64-v8a библиотеки!). 🤯
💡 Мотивация:
В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать реализовать эту игру на Си для Android с весом APK менее 100 КБ. 🚀
Идея казалась безумной, но спортивный интерес взял верх. 💪
🛠️ Реализация:
Начал с компиляции "Hello World" на Си и упаковки библиотеки в APK. 📦
Звуки были сжаты до формата MP3, а для их воспроизведения использовался OpenSLES. 🎵
Для декодирования PNG файлов я выбрал upng. 🖼️
Всё это было объединено с помощью OpenGL ES 2, шейдеров и Android Native Activity. 🎮
🔧 Сборка:
- Скачайте Visual Studio 2022.
- Установите компоненты: Разработка классических приложений на С++ и Разработка мобильных приложений на языке С++.
- Скачайте Android Studio (для apktool, sdk, ndk).
- Установите NDK 27.1.12297006 и Android SDK Платформа 30.
- Настройте проект для "Debug ARM" и внесите изменения в build.bat.
- Компилируйте через CTRL + B. 🛠️
📄 Авторское право:
Я не претендую на авторские права. Право на игру и ресурсы принадлежит DotGEARS. 📜
🌟 Вдохновение:
🌠 Star History
🎉 Наслаждайтесь игрой и не забудьте поставить звезду! 🌟