mirror of
https://github.com/VadimBoev/FlappyBird.git
synced 2024-11-16 07:47:29 +01:00
55 lines
3.4 KiB
Markdown
55 lines
3.4 KiB
Markdown
# 🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀
|
||
|
||
## 📜 История:
|
||
|
||
Всё началось в 2021 году, когда я наткнулся на [rawdrawandroid](https://github.com/cnlohr/rawdrawandroid). Моя цель была проста: создать игру с минимальным весом APK, но при этом, чтобы она была понятной и интересной. 🎯
|
||
|
||
Идея сделать клон Flappy Bird казалась логичной, учитывая, что эта игра уже была портирована на множество языков. 🐤
|
||
|
||
В 2021 году я также изучил [Raylib](https://github.com/raysan5/raylib), но первая попытка сделать игру на C++ с использованием [ImGui](https://github.com/ocornut/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](https://github.com/elanthis/upng). 🖼️
|
||
|
||
Всё это было объединено с помощью OpenGL ES 2, шейдеров и Android Native Activity. 🎮
|
||
|
||
## 🔧 Сборка:
|
||
|
||
1. Скачайте [Visual Studio 2022](https://visualstudio.microsoft.com/).
|
||
2. Установите компоненты: Разработка классических приложений на С++ и Разработка мобильных приложений на языке С++.
|
||
3. Скачайте Android Studio (для apktool, sdk, ndk).
|
||
4. Установите NDK 27.1.12297006 и Android SDK Платформа 30.
|
||
5. Настройте проект для "Debug ARM" и внесите изменения в build.bat.
|
||
6. Компилируйте через CTRL + B. 🛠️
|
||
|
||
## 📄 Авторское право:
|
||
|
||
Я не претендую на авторские права. Право на игру и ресурсы принадлежит **DotGEARS**. 📜
|
||
|
||
## 🌟 Вдохновение:
|
||
|
||
- [rawdrawandroid](https://github.com/cnlohr/rawdrawandroid)
|
||
- [Flapper](https://github.com/its-Lyn/Flapper)
|
||
- [Raylib](https://github.com/raysan5/raylib)
|
||
- [ImGui](https://github.com/ocornut/imgui/)
|
||
|
||
## 🌠 Star History
|
||
|
||
[![Star History Chart](https://api.star-history.com/svg?repos=VadimBoev/FlappyBird&type=Timeline)](https://star-history.com/#VadimBoev/FlappyBird&Timeline)
|
||
|
||
---
|
||
|
||
🎉 Наслаждайтесь игрой и не забудьте поставить звезду! 🌟
|