Розробка мобільної стратегії
Ми створюємо мобільні стратегії під ключ — від прототипу до публікації в App Store та Google Play. Чи стикалися ви з ситуацією, коли асинхронні таймери будівництва розсинхронізуються, гравці втрачають прогрес, а сервер падає під навантаженням масових атак? Наш досвід — запобігти цим проблемам на етапі архітектури. Серверна логіка дає в 5 разів менше помилок синхронізації порівняно з клієнтськими таймерами, а економія на серверній інфраструктурі сягає 40%. Зв'яжіться з нами для оцінки вашого проєкту — за 2 дні отримаєте детальний план.
Чому архітектура клієнт-сервер — основа мобільної стратегії?
Головна помилка в стратегіях — довіряти клієнту. Якщо таймери будівництва рахуються на клієнті, їх можна підкрутити системним часом. Якщо війська рахуються локально — можна накрутити ресурси. Правильна архітектура: сервер — єдине джерело істини. Весь ігровий стан живе на сервері: ресурси, будівлі, війська, таймери. Клієнт відображає snapshot стану та надсилає команди (BuildCommand, AttackCommand, CollectCommand). Сервер валідує, застосовує, повертає новий snapshot або delta.
Для persistence: PostgreSQL зі строгою схемою для ігрового стану + Redis для гарячих даних (активні таймери, онлайн-статус альянсів). REST API для мета-операцій, WebSocket для real-time сповіщень (тебе атакують, будівництво завершено).
На клієнті — оптимістичне оновлення UI з відкатом: коли гравець натискає «зібрати ресурси», UI оновлюється негайно, запит іде на сервер паралельно. Якщо сервер повертає помилку — UI відкочується. Це прибирає відчуття «лагаючої» гри при хорошому інтернеті.
Як уникнути перевантаження сервера при масових атаках?
У стратегіях із PvP одночасні дії сотень гравців — часта причина timeout'ів. На одному з проєктів нашого клієнта (4X-стратегія) при атаці 30+ гравців на один замок сервер ішов у timeout. Рішення — Command Queue на Redis Stream: атаки складаються в чергу, воркер обробляє їх послідовно і публікує результат через WebSocket. Latency сприйняття — миттєвий (UI показує «атаку надіслано»), фактична обробка — 100–300ms. Гравці не помічають різниці, сервер перестав падати. Такий підхід знижує навантаження на PostgreSQL в 5 разів порівняно з синхронним записом.
Для оптимізації під масові атаки дотримуйтеся таких кроків:
- Використовуйте Command Queue на Redis Stream.
- Обробляйте атаки послідовно у воркері.
- Публікуйте результат через WebSocket.
- На клієнті показуйте оптимістичне підтвердження.
Що дає серверна логіка для безпеки?
Якщо ігрові дані (ресурси, таймери) доступні на клієнті, їх можна модифікувати через відладчик або підміну запитів. Всі розрахунки виконуються на сервері з подальшою синхронізацією. Це збільшує складність серверної частини, але гарантує чесність гри та спрощує античит. Як описано в Best Practices for Mobile Game Security, такий підхід є галузевим стандартом.
Карта та рендер тисяч об'єктів
Для стратегій з великою картою (класичний 4X або war-game із сотнями гравців) стандартний підхід — тайлова карта з LOD. Unity Tilemap + Composite Collider2D для базової геометрії. При zoom-out: замінюємо детальні тайли на атлас-текстуру всього регіону (RenderTexture snapshot), прибираємо колайдери, вимикаємо оновлення анімацій.
Для маркерів інших гравців на великій карті — GPU Instancing через Graphics.DrawMeshInstanced. 1000 маркерів гравців в один draw call замість 1000 окремих GameObject'ів. Позиції та кольори передаються через MaterialPropertyBlock.
Push-сповіщення як retention-інструмент
Firebase Cloud Messaging — обов'язково. Тригери: будівництво завершено, напад на базу, ресурси заповнені. На iOS потрібно коректно запитувати UNUserNotificationCenter.requestAuthorization — запитуйте дозвіл не при першому запуску, а після першого завершення будівництва, коли гравець уже розуміє цінність сповіщень. Конверсія на дозвіл у такому випадку — 60–70% vs 30–40% при запиті на старті. Правильний момент запиту підвищує retention на 25%.
Що входить у роботу
- Геймдизайн-документація та server API специфікація (OpenAPI)
- Вихідний код клієнта та сервера з коментарями
- Налаштування CI/CD (GitHub Actions, Firebase App Distribution, TestFlight)
- Доступи до репозиторію, адмін-панелі, логів
- Інструкція з розгортання
- Безкоштовна підтримка 1 місяць після запуску
Терміни та етапи роботи
| Етап | Тривалість |
|---|---|
| Препродакшн (проектування архітектури, геймдизайн) | 4–6 тижнів |
| Розробка клієнта (iOS + Android) | 3–6 місяців залежно від складності |
| Розробка серверної частини (авторизація, ігрова логіка, PvP) | 5–10 місяців |
| Інтеграція, тестування та деплой | 1–2 місяці |
| Підтримка після запуску | від 1 місяця |
| Масштаб | Термін |
|---|---|
| Одиночна стратегія (без PvP) | 5–8 місяців |
| PvP з асинхронними атаками | 8–12 місяців |
| Повноцінний war-game з альянсами, real-time картою | 14–20 місяців |
Вартість розраховується індивідуально після аналізу серверних вимог, обсягу карти та PvP-механік. Оцінимо ваш проєкт протягом 2 днів — зв'яжіться з нами для консультації. Отримайте безкоштовну оцінку вже сьогодні!







