Оптимизация потребления батареи мобильной игрой

Мы часто видим игры, которые разряжают телефон за полтора часа. При стабильных 60 FPS пользователи всё равно оставляют одно- и двухзвёздочные отзывы — батарея тает на глазах. Потребление энергии — прямой индикатор неэффективного использования CPU и GPU. Оптимизация потребления батареи мобильной игро

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Оптимизация потребления батареи мобильной игрой
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Мы часто видим игры, которые разряжают телефон за полтора часа. При стабильных 60 FPS пользователи всё равно оставляют одно- и двухзвёздочные отзывы — батарея тает на глазах. Потребление энергии — прямой индикатор неэффективного использования CPU и GPU. Оптимизация потребления батареи мобильной игрой — это системная работа: от управления FPS до шейдеров и сетевых запросов. За пять лет мы оптимизировали 15+ проектов, увеличив их время работы на 20–40%. Наши сертифицированные инженеры гарантируют измеримый результат. Свяжитесь с нами для аудита — оценим проект и предложим решение.

Главные источники перерасхода энергии — оптимизация потребления батареи

Неограниченный FPS — самая распространённая ошибка. Application.targetFrameRate = -1 (или без явной установки) означает, что Unity рендерит так быстро, как может. На современных iPhone с ProMotion-дисплеем это 120 FPS в простом меню. Для меню достаточно 30 FPS — оставшиеся 70% CPU/GPU-времени тратятся впустую и греют корпус.

Анимированный фон в главном меню с 500 частицами работает постоянно. Нет паузы при потере фокуса — нет экономии.

Если игра запрашивает Input.location или Input.gyro без необходимости и не отключает — сенсоры опрашиваются постоянно. На Android это несколько мВт дополнительно.

Маленькие HTTP-запросы каждые 5–10 секунд держат радиомодуль активным — один из самых энергоёмких компонентов.

Как определить, что игра тратит лишнее?

Используйте профилирование:

Инструмент Что показывает Норма
Xcode Energy Organizer Оценка энергопотребления для iOS Зелёный уровень
Android Vitals Battery Частота пробуждений в фоне < 10 раз/час
adb shell dumpsys batterystats Разбивка по компонентам (CPU, GPU, радио) CPU/GPU < 30% в меню

Если меню держит CPU/GPU на 70% — это проблема.

Почему управление FPS — первая задача в оптимизации потребления батареи мобильной игрой?

Правильная стратегия — разные таргеты для разных состояний:

// Gameplay: максимальное качество Application.targetFrameRate = 60; // Меню, паузы, диалоги Application.targetFrameRate = 30; // Фоновые вычисления (загрузка, сохранение) Application.targetFrameRate = 15; 

На iOS нужно также учитывать ProMotion-дисплеи (120 Гц на iPhone 13 Pro+). Явно устанавливайте CADisplayLink.preferredFrameRateRange через Native Plugin для тонкой настройки.

В OnApplicationPause(true) снижайте FPS до минимума или останавливайте рендер полностью.

Как оптимизировать шейдеры для экономии батареи?

На мобильных GPU важна точность вычислений. Использование half-точности вместо float в шейдерах на Adreno и Mali даёт реальную экономию энергии. ALU этих чипов оптимизированы под half-precision. Для большинства эффектов (цвет, UV, освещение) точности half достаточно.

Запечённые лайтмапы вместо динамического освещения снижают нагрузку на фрагментный шейдер в 3–5 раз — это прямое сравнение: запечённые лайтмапы лучше динамического освещения в 3–5 раз по нагрузке на GPU. Сложные фрагментные шейдеры с большим количеством текстурных выборок особенно дороги — каждое tex2D останавливает конвейер.

Сравнение подходов к рендерингу:

Подход Относительная нагрузка Прирост времени работы
Динамическое освещение 100% (базовый уровень)
Запечённые лайтмапы 20–30% +20–40%
Half-точность везде 70% +15%

Как провести первичную диагностику энергопотребления?

  1. Установите целевые FPS для каждого состояния (геймплей, меню, пауза).
  2. Проверьте шейдеры: замените float на half, запеките лайтмапы.
  3. Настройте батчинг сетевых запросов — буферизуйте и отправляйте пачкой раз в минуту.
  4. Профилируйте на реальном устройстве с помощью Xcode или adb.

Батчинг сетевых запросов

Вместо отправки событий по одному — батчинг (буферизация и отправка пачкой раз в минуту). Firebase Analytics делает это автоматически. Если используется собственная аналитика через HTTP — явный RequestQueue с таймером.

На Android WorkManager с setRequiresBatteryNotLow(true) откладывает некритичные запросы до момента, когда устройство на зарядке.

Что входит в аудит и оптимизацию?

  • Анализ кода и конфигураций проекта.
  • Профилирование на реальных устройствах с использованием Xcode Energy Organizer и Android Vitals.
  • Настройка FPS по контексту (геймплей, меню, фон).
  • Оптимизация шейдеров (перевод на half-точность, запекание лайтмапов).
  • Реализация батчинга сетевых запросов.
  • Повторное тестирование и предоставление отчёта с метриками.
  • Гарантия увеличения времени работы на 20–40%.
Чек-лист типичных ошибок
  • Нет ограничения FPS в меню.
  • Частицы не останавливаются при паузе.
  • Сенсоры опрашиваются постоянно.
  • Сетевые запросы по одному без агрегации.

Сроки работ: от 1 до 4 недель в зависимости от объёма кода. Стоимость рассчитывается индивидуально. Получите консультацию по оптимизации батареи уже сегодня.

Проверка результата

iOS: Xcode Energy Organizer + MetricKit. MXCPUMetric и MXGPUMetric в didReceive дают реальные данные о потреблении из отчётов пользователей.

Android: Android Vitals в Play Console → Battery → Excessive wakeups. Если приложение будит устройство чаще 10 раз в час в фоне — это флаг от Google, который влияет на видимость.

Для локального тестирования: adb shell dumpsys batterystats --reset перед тестом и adb shell dumpsys batterystats после.

Наши сертифицированные инженеры проводят аудит и предлагают решение с гарантией увеличения времени работы на 20–40%. Свяжитесь с нами для аудита — оценим проект и предложим решение.