Ви запускаєте мобільну гру — і на другому екрані вона зависає на 2 секунди. GPU-профілювання показує сплески, а Flame-івський game loop гальмує. Це типова проблема, яку ми вирішуємо щодня. Наша команда розробляє ігри на Flame понад 5 років, випустивши 15+ проектів в App Store та Google Play. Пропонуємо розробку під ключ: від прототипу до ASO-оптимізації. Економія бюджету до 30% за рахунок вивіреної архітектури. Зв'яжіться з нами, щоб обговорити вашу ідею.
Flame — ігровий двигун поверх Flutter. Не окремий фреймворк, а пакет, який додає game loop, систему компонентів, фізику та обробку вводу прямо в Flutter-проект. Це означає: одна кодова база для гри та для UI навколо неї (меню, налаштування, магазин), нативна робота на iOS, Android, Web та Desktop.
Чому варто обрати Flame для 2D-гри?
Flame використовує Component/Entity систему. FlameGame — кореневий компонент з game loop. Component — базовий клас для всього: спрайти, тексти, колізії, UI-елементи.
class SpaceGame extends FlameGame { @override Future<void> onLoad() async { add(Player()); add(StarBackground()); add(EnemySpawner()); } } HasCollisionDetection mixin додає колізії до гри. ShapeHitbox (Rectangle, Circle, Polygon) — хітбокси компонентів. Callbacks onCollisionStart, onCollision, onCollisionEnd.
Фізика реалізується через Forge2D (Box2D-порт для Dart) — окремий пакет flame_forge2d. Для простих ігор вбудованої колізійної системи Flame достатньо без Box2D.
Які проблеми вирішує Flame-архітектура?
Перша проблема — зв'язування ігрової логіки з UI. Flame вирішує її через FlameGame.overlays: ви можете вбудовувати Flutter-віджети (кнопки паузи, рахунок, модальні вікна) прямо поверх canvas без окремого шару. Друга — продуктивність при великій кількості об'єктів. Flame використовує Flutter-івський Canvas API, який дозволяє батчити відмальовку через drawAtlas та SpriteBatch.
Як оптимізувати продуктивність Flame?
Flame рендерить через Flutter's Canvas API — це прямі виклики canvas.drawImageRect. Для великої кількості однакових спрайтів (100+ частинок, куль) використовуємо SpriteParticle з пакету flame_particles або власний CustomPainter з drawAtlas — це батчить малювання в один draw call, як зазначено в офіційній документації Flutter.
Sprite Sheet. SpriteAnimation з атласу — SpriteSheet.fromColumnsAndRows. Завантаження окремих PNG на кожен кадр — анти-патерн. gameRef.images.load() кешує зображення, повторні виклики повертають кеш.
Секрети продуктивності
- Використовуйте
SpriteBatchдля статичних спрайтів (фон, тайли). - Обмежте кількість
updateвикликів: перемикайтеgame.pausedколи гра прихована. - Для частинок —
ParticleEffectComponentзамість окремих спрайтів.
Порівняння Flame з іншими двигунами для 2D
| Критерій | Flame | Unity 2D | Godot 2D |
|---|---|---|---|
| Кодова база | Одна (Flutter) | Дві (C# + платформа) | Одна (GDScript) |
| Час прототипу | 1–2 тижні | 2–4 тижні | 2–3 тижні |
| Інтеграція з UI | Природна (Flutter віджети) | Через Canvas (окремо) | Через Control вузли |
| Підтримка стору | App Store / Google Play (через Flutter) | Свої білди | Окремі плагіни |
| Спільнота | Маленька, але зростає | Величезна | Середня |
Flame програє Unity в 3D, але виграє у швидкості розробки для 2D-ігор, інтегрованих з Flutter-екосистемою. Для типових проектів Flame швидший у 2 рази, що підтверджує наша практика.
Терміни розробки
| Тип гри | Прототип | Повна версія |
|---|---|---|
| Гіперказуальна | 3–6 тижнів | 2–3 місяці |
| Казуальна з метою | 1–2 місяці | 3–5 місяців |
| RPG/стратегія | 2–3 місяці | 5–8 місяців |
Вартість розраховується після аналізу вашої концепції. Зв'яжіться з нами для консультації.
Що входить в нашу роботу
- Архітектурна документація (діаграми компонентів, опис game loop).
- Вихідний код на GitHub з CI/CD (GitHub Actions для збірки на iOS та Android).
- Налаштування Firebase для аналітики, push-сповіщень (APNs/FCM), краш-репортів.
- Інтеграція StoreKit 2 / Billing 6 для покупок, App Tracking Transparency.
- Тестування: unit-тести, widget-тести, інтеграційні тести з flame_test.
- Публікація в App Store та Google Play з ASO-оптимізацією (ключові слова, скріншоти).
- Навчання вашої команди (2 сесії по 2 години) та підтримка 3 місяці після релізу.
Процес розробки
- Аналітика — обговорюємо концепцію, геймплей, монетизацію. Оцінюємо терміни.
- Проектування — створюємо архітектуру, прототип core loop за 1–2 тижні.
- Реалізація — пишемо ігрові механіки, інтеграції, UI.
- Тестування — QA на 5+ реальних пристроях, crashlytics, профілювання.
- Деплой — публікація в сторах, налаштування CI/CD, передача вихідників.
Замовте розробку з гарантією на архітектуру та оптимізацію. Отримайте консультацію — пишіть нам, ми оцінимо ваш проект.







