Вы запускаете мобильную игру на Unreal Engine, и через 10 минут геймплея на Samsung Galaxy A53 начинается троттлинг — FPS падает с 30 до 20, корпус нагревается до 45°C. Знакомая ситуация? Мы сталкивались с этим десятки раз. В этой статье расскажем, как избежать таких проблем при разработке мобильной игры на Unreal Engine, оптимизировать производительность и успешно пройти ревью App Store.
Мы разрабатываем мобильные игры на Unreal Engine под ключ. Знаем, что это компромисс: с одной стороны — Nanite, Lumen, Blueprints, Niagara — инструментарий AAA-уровня. С другой — требования к железу существенно выше Unity, размер APK/IPA начинается от 200 МБ, и тепловой троттлинг на мидл-сегменте Android-устройств появляется через 10–15 минут интенсивной игры. Unreal на мобильных выбирают осознанно — когда нужна фотореалистичная графика или сложные шейдеры, которые Unity не потянет без существенных компромиссов. Наш опыт — 5+ лет, 20+ реализованных проектов для iOS и Android.
Когда Unreal Engine оправдан на мобильных устройствах?
Шутеры с реалистичной графикой (PUBG Mobile использует UE4). Racing-игры с PBR-материалами. Проекты, где уже есть UE-команда и контент-пайплайн. Если нужна казуальная игра или аркада — Unity или Godot экономичнее и проще в итерации.
Как мы решаем проблему троттлинга и оптимизируем производительность?
Наша архитектура под мобильный таргет строится на тонкой настройке рендеринга и asset-менеджмента. Mobile HDR отключаем для всего, что ниже iPhone 13 / Snapdragon 888. r.MobileNumDynamicPointLights 0 для мидл-сегмента. r.Shadow.RadiusThreshold — убираем тени от мелких объектов. Stat GPU в DeviceFront для профилинга на устройстве.
Текстуры: ASTC для iOS и большинства Android GPU (Mali, Adreno). ETC2 как fallback для старых устройств. Texture Streaming обязателен — без него весь мир грузится в VRAM одновременно. r.Streaming.PoolSize — лимит texture streaming pool.
Level Streaming: не загружать весь мир сразу. ULevelStreamingDynamic::LoadLevelInstanceBySoftObjectPtr для подгрузки субуровней по мере передвижения игрока. Для линейных уровней — trigger volumes с LoadStreamLevel / UnloadStreamLevel.
Thermal throttling: на Android — APerformanceHintManager (NDK API 31+) для управления частотами CPU/GPU. В UE5 — FGenericPlatformMisc::SetGamepadsConnected. Мониторинг температуры через UAndroidDeviceProfileSelector. На iOS — os.thermal через Metal performance HUD.
Что входит в разработку мобильной игры на Unreal Engine (deliverables)?
В рамках проекта мы предоставляем:
- Детальное техническое задание и архитектурную документацию.
- Вертикальный срез с ключевыми механиками и визуальным стилем.
- Исходный код (C++ и Blueprints) с комментариями.
- Настроенные OnlineSubsystem для покупок (Google Play Billing, StoreKit), аналитики (Firebase) и рекламы (AdMob).
- Оптимизированные сборки AAB/IPA с настроенными профилями устройств.
- Доступ к репозиторию проекта и CI/CD пайплайну.
- Обучение вашей команды основам работы с проектом (1 неделя).
- Поддержка при публикации в App Store и Google Play (до 2 месяцев).
Как мы строим мобильный проект на Unreal Engine
- Анализ Game Design Document и технического задания — оценка объёмов, рисков, целевых устройств.
- Прототип вертикального среза — ключевые механики и визуальный стиль за 2–3 месяца.
- Разработка архитектуры — настройка GAS, Blueprints, C++ кода, Level Streaming.
- Интеграция сервисов — покупки (Google Play Billing, StoreKit), аналитика (Firebase), реклама (AdMob).
- Оптимизация и профилирование — настройка Scalability Groups, texture streaming, тесты на троттлинг.
- Сборка и публикация — подготовка AAB/IPA, подпись, деплой в Google Play и App Store.
Архитектура под мобильный таргет
Mobile rendering. UE5 на мобильных работает на ES 3.1 / Vulkan (Android) и Metal (iOS). Nanite и Lumen на мобильных недоступны — только Forward Shading или Deferred. Для iOS — Metal Performance Shaders. Scalability Groups (sg.ShadowQuality, sg.TextureQuality) настраиваем под устройства: High для iPhone 14+, Medium для среднего Android.
Blueprints vs C++. Быстрая итерация — Blueprints. Горячий путь (AI, физика, коллизии) — C++. Вызов Blueprint из C++ через UFunction + BlueprintCallable. Blueprints в продакшне компилируются через nativization — частичная конвертация в C++ для снижения overhead.
GameplayAbilitySystem (GAS). Для игр с персонажами и способностями — стандарт. UGameplayAbility, UAttributeSet, UGameplayEffect — сложная система, но даёт полный контроль над состояниями, прерыванием анимаций, cooldown-ами. Альтернатива для простых механик — кастомный компонент без GAS.
Что лучше: Unreal Engine 5 или Unity для мобильной игры? (Сравнение)
На флагманских устройствах Unreal Engine 5 даёт детализацию в 3 раза выше Unity, но на бюджетных телефонах теряет до 1.5 раза по FPS. Подробнее в таблице:
| Параметр | Unreal Engine 5 | Unity |
|---|---|---|
| Графика | Фотореализм, сложные шейдеры | Хорошая, но требует настройки для фотореализма |
| Производительность на средних устройствах | Ниже, требуется агрессивная оптимизация | Выше из коробки |
| Размер сборки | 300–600 МБ (AAB) | 150–300 МБ (AAB) |
| Инструменты для мобильных | Scalability Groups, texture streaming | Graphics API Optimizations, SRP Batcher |
| Готовые решения | OnlineSubsystem, GAS | Unity IAP, Analytics, Cloud Build |
| Сообщество | Меньше, но активное | Крупнейшее |
| Стоимость лицензии | Роялти 5% (отменено для разработчиков с выручкой <1 млн $) | Бесплатно для малых проектов (платные планы для крупных) |
Сроки ориентировочно
| Проект | Команда | Ориентир |
|---|---|---|
| Прототип / вертикальный срез | 2–3 чел. | 2–3 месяца |
| Мобильная игра с 10–20 уровнями | 4–7 чел. | 8–15 месяцев |
| Мультиплеер, сложные механики | 6–10+ чел. | 15+ месяцев |
Стоимость рассчитывается после анализа GDD, требований к визуальному качеству и целевых платформ. Оценим ваш проект бесплатно. Свяжитесь с нами, чтобы обсудить детали.
Согласно документации Epic Games: Unreal Engine 5 Mobile Rendering Overview (docs.unrealengine.com).







