Разработка мобильной мидкорной игры

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Разработка мобильной мидкорной игры
Сложная
от 2 недель до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Разработка мобильной мидкорной игры

Мидкор — это зона максимального инженерного напряжения в мобильном гейминге. С одной стороны клиент ждёт мета-слой: прокачку, гильдии, сезонный пропуск, PvP-лиги. С другой — это всё должно работать на Unity 2022 LTS на Snapdragon 680 без просадок FPS и с холодным стартом до 4 секунд. Казуальные решения не масштабируются, а AAA-архитектура избыточна. Приходится проектировать систему, которая растёт вместе с монетизацией, не ломаясь при добавлении нового контента.

Где мидкор-проекты ломаются чаще всего

Самая частая точка сбоя — система прогрессии, спроектированная как Excel-таблица, а не как код. Баланс записан в ScriptableObject или в локальный JSON, игра запускается — и через три месяца выясняется, что добавить новый тип юнита нельзя без переписывания четырёх систем. Мы видели проекты, где UnitConfig содержал 47 boolean-флагов и вся логика выстраивалась через if (isElite && hasBuff && !isFrozen). Это не работает при 200 типах юнитов.

Второй болевой узел — сетевой слой в PvP и кооперативе. Использование простого HTTP REST для боевых действий в реальном времени приводит к тому, что на задержке 150ms клиент и сервер расходятся на 3-4 шага. Клиентский prediction без серверной валидации — читы. Серверная валидация без rollback — дёрганье. Нужен либо Photon Fusion с его state synchronization, либо собственная реализация на Mirror с детерминированной физикой (Deterministic Lockstep), где оба клиента воспроизводят одни и те же команды в одном и том же порядке.

Третья проблема — память. Unity Addressables с неправильно настроенными группами приводит к тому, что при загрузке нового чаптера вся предыдущая сцена остаётся в памяти. На iPhone 12 это ещё терпимо. На Android low-end с 2GB RAM — OOM и вылет. Нужно явное управление lifecycle через Addressables.ReleaseInstance и правильная разбивка на bundle: UI-атласы отдельно, персонажи отдельно, окружение отдельно.

Как строится архитектура мидкор-игры

Для мидкор-проектов мы используем Entity Component System (ECS) через Unity DOTS или Arch для игровой симуляции, и отдельный слой MonoBehaviour для UI и визуального представления. Игровая логика (статы, баффы, АИ, физика снарядов) работает в ECS — это даёт детерминизм и производительность на job threads. Всё что касается Canvas, Animator, VFX — остаётся в Mono.

Мета-слой (инвентарь, прокачка, социалка) строится как отдельный домен с чёткими границами. Типичная структура:

GameCore/
  ECS/          -- боевая симуляция (DOTS)
  Systems/      -- GameplayLoop, SpawnSystem, CombatSystem
  Data/         -- ScriptableObject конфиги + remote config через Firebase
Meta/
  Inventory/
  Progression/  -- XP, уровни, разблокировки
  Social/       -- гильдии, лидерборды (Google Play Games SDK / GameKit)
Network/
  Photon/       -- реалтайм PvP
  REST/         -- мета-операции (покупки, сохранение)

Remote Config через Firebase — обязательный компонент для баланса. Все числовые параметры: урон, стоимость апгрейда, вероятности дропа — должны лежать в Remote Config, а не в билде. Это позволяет патчить баланс без обновления в стор.

Монетизация: Unity IAP для внутренних покупок + ironSource или AppLovin MAX для рекламы с медиацией. Важно: на iOS нужно обрабатывать SKPaymentTransactionObserver правильно — pending transactions при прерванном интернете должны восстанавливаться при следующем запуске, иначе Apple может отклонить приложение по гайдлайну 3.1.1.

Кейс: бой с несколькими фракциями и перегрев рендерера

На одном из проектов — мидкор-стратегия с боями 50v50 — на бюджетных Android-устройствах CPU перегревался через 8 минут непрерывного боя. Profiler показал: 6ms за кадр уходило на SkinnedMeshRenderer.Update для 100 юнитов одновременно. Решение — GPU Instancing для статичных мешей + замена Skinned Mesh на GPU skinning через Compute Shader для дальних юнитов (дистанция > 15 единиц). Близкие юниты — нормальный скинд меш. Дальние — billboard или упрощённая анимация через vertex shader. В итоге CPU время рендера упало с 6ms до 1.8ms, температура стабилизировалась.

Сроки и процесс

Мидкор-игра с нуля — это проект на 6–14 месяцев в зависимости от объёма мета-систем и контента.

Этап Срок
Препродакшн: ГДД, архитектура, прототип кора 4–6 недель
Альфа: базовые механики, мета-слой v1, сеть 3–5 месяцев
Бета: контент, баланс, монетизация, LiveOps-инфра 2–4 месяца
Мягкий запуск + итерации по метрикам 1–2 месяца

Оценка стоимости — после анализа ГДД и технических требований. Особенно важно понять объём мультиплеера: PvP в реальном времени или асинхронный — разница в трудоёмкости существенная.

Типичные ошибки, которые дорого обходятся

  • Сохранения через PlayerPrefs для критических данных прогрессии. PlayerPrefs не атомарен — при крэше между записями можно потерять состояние. Нужен либо Cloud Save (Play Games SDK, Game Center), либо собственный сервер с idempotent-операциями.
  • Отсутствие аналитики с первого дня. Firebase Analytics или GameAnalytics нужно подключать до soft launch, иначе нет baseline для D1/D7/D30 retention.
  • Хардкод локализации. Если тексты вшиты в код, добавить новый язык — боль. Используй Unity Localization Package с LocalizedString и таблицами.
  • Одна сборка под все платформы. У iOS и Android разные требования к текстурному сжатию (ASTC vs ETC2), разные ограничения по памяти и разные стор-гайдлайны. Scripting Define Symbols и Platform-specific Asset Variants — не опция, а обязательность.