Разработка системы освещения мобильной игры

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
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    874
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Разработка системы освещения мобильной игры

Реальтайм освещение на мобильных устройствах — это постоянный торг. Один динамический Point Light в URP с тенями на Adreno 640 стоит около 1.5-2.5 мс на кадр. При целевых 60 FPS весь бюджет кадра — 16.6 мс, и два таких источника уже занимают треть бюджета только на свет.

Стратегия освещения под мобильный GPU

Фундаментальный выбор — соотношение запечённого (baked) и динамического (realtime) света. Для большинства мобильных игр правило простое: всё статичное освещение запекаем, динамическое — минимум.

В Unity URP это: Mixed Lighting со Subtractive или Shadowmask режимом. Subtractive быстрее — тени от статики запекаются в lightmap, динамические объекты отбрасывают тень на статику через mixed light. Shadowmask точнее, но требует дополнительную текстуру на GPU.

Lightmap resolution — типичная ошибка завышения. Texels per unit = 20 для детальной геометрии и 4-8 для фонового окружения. Гигантский lightmap 2048×2048 за один атлас на всю локацию — хорошо. Двадцать мелких lightmap по 256×256 — плохо, это двадцать texture binds.

Динамические источники: когда они оправданы

Динамический свет нужен для игровых событий: взрыв, выстрел, интерактивные факелы. Реализация через короткоживущий Light с Range interpolation:

IEnumerator FlashLight(Light light, float intensity, float duration) {
    float elapsed = 0f;
    while (elapsed < duration) {
        light.intensity = Mathf.Lerp(intensity, 0f, elapsed / duration);
        elapsed += Time.deltaTime;
        yield return null;
    }
    light.enabled = false;
}

Такой вспышечный свет можно не включать в shadow casting — визуально разница минимальна, а производительность значительно лучше.

Ограничение количества Per-Object lights. В URP Light настройку Additional Lights > Per Object Limit выставляем в 1-2 для мобильных пресетов. По умолчанию 8 — это десктопное значение.

Light Probes и динамические объекты

Персонажи и враги двигаются через запечённые зоны и должны получать правильное ambient-освещение. Light Probe Group расставляем в точках смены освещения: вход в тень, зона факела, темный коридор. LightProbeProxyVolume для крупных динамических объектов — заменяет интерполяцию между пробами на объёмную выборку.

Без Light Probes персонаж в тёмном углу светится, как будто стоит на солнце — ambient из Skybox применяется без учёта позиции.

Ambient Occlusion и его мобильные альтернативы

Screen Space AO (SSAO) на мобиле — нет. Дорого и не нужно при правильных lightmap. Альтернативы:

  • Запечённый AO в lightmap — бесплатно в рантайме, настраивается в Generate Lighting настройках
  • Vertex AO — запекается в vertex color, сэмплируется в шейдере, полностью бесплатно
  • GTAO в URP 15+ — экспериментально, на топовых мобильных GPU допустимо при низком radius

Godot 4: освещение в 2D

В 2D-играх на Godot: CanvasItemMaterial с Light Mode = Normal Map Only позволяет использовать normal maps на спрайтах и получать псевдо-3D освещение без реального 3D. PointLight2D с Shadow Enabled = false стоит дёшево. DirectionalLight2D для имитации солнца в top-down играх.

Нормал-маппинг в 2D — мощный инструмент: игра выглядит объёмно, а рендерится как flat sprites. На мобиле это существенно выгоднее, чем переход в 3D ради визуальной глубины.

Профилирование

Unity Frame Debugger показывает все draw calls по освещению. Xcode GPU Frame Capture на iOS даёт точный breakdown по шейдерным инвокациям. Цель: Shadow Map passes — не более 1-2 за кадр, Additional Lights — не более 2 реалтаймовых источника одновременно.

Разработка системы освещения: 3-7 дней для типичного мобильного проекта. Стоимость рассчитывается индивидуально после оценки сцен и целевых устройств.