Консультування з питань візуальної оптимізації графіки ігор

Frame time 28ms на Samsung Galaxy A53 при цільових 16.6ms. Unity Profiler показує `Camera.Render`, що займає 18ms з них. Розробник дивиться у Frame Debugger — 340 draw calls, половина з яких це UI Canvas у режимі `Screen Space - Overlay` з `Rebuild` кожен кадр. Ми вирішуємо такі проблеми за день, ал

Наші компетенції

Інші послуги студії

VR/AR/MR застосунки на замовлення

Вражайте клієнтів і навчайте команду у віртуальній реальності

Розробка ігор на Unity

Від ідеї до релізу — ігри, які запам'ятовуються

3D-моделювання та анімація

Оживимо ваш продукт в об'ємній графіці та анімації

VR-тренажери промислового обладнання

Тренуємо операторів на техніці без ризику і простою

AR-інструкції для виробництва

Покрокові підказки прямо на обладнанні — без паперу

Safety-тренажери

Відпрацювання НС і техніки безпеки без виходу на об'єкт

VR/AR-тренінги

Навчаємо персонал сервісу, адаптації та soft skills у VR

Навчальні вікторини

Перевірка знань у форматі гри — легко і без стресу

Корпоративні відеоінструкції

Зрозумілі ролики для навчання співробітників і клієнтів

Гейміфікація бізнес-процесів

Мотивуємо команду через ігрові механіки в KPI та HR

Застосунки для інфокіосків

Інтерактивні екрани для магазинів, стендів і офісів

VR/AR-інсталяції

Wow-ефект для брендів на виставках, івентах і в шоу-румах

Віртуальні виставки та музеї

Ваша експозиція доступна з будь-якої точки світу — 24/7

Event-квести та брендовані ігри

Незабутні ігри для конференцій та клієнтських івентів

Часті запитання

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    1526
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1030
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    657
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    738
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    142

Frame time 28ms на Samsung Galaxy A53 при цільових 16.6ms. Unity Profiler показує Camera.Render, що займає 18ms з них. Розробник дивиться у Frame Debugger — 340 draw calls, половина з яких це UI Canvas у режимі Screen Space - Overlay з Rebuild кожен кадр. Ми вирішуємо такі проблеми за день, але без точної діагностики ітерації розтягуються на тижні. Наш досвід — понад вісім років у геймдеві, більше 50 проєктів, де ми домагалися стабільних 60 FPS на середньому залізі.

Консультування з візуальної оптимізації — це діагностика вузьких місць та план конкретних дій, а не «використовуйте менше полігонів». Ми передаємо команді не лише звіт, а й розуміння, як самостійно знаходити та усувати проблеми в майбутньому. Гарантуємо скорочення часу на баг-фікс у 2–3 рази після нашої консультації.

Які проблеми вирішує візуальна оптимізація?

CPU side. UnityEngine.Rendering.RenderPipeline.Render у Profiler — перша точка входу. Якщо там > 10ms на мобілці при простій сцені — дивимося далі. Canvas.SendWillRenderCanvases — флаг проблемного UI. ShadowCaster.Render — тіней занадто багато або занадто великий shadow distance. Animator.Update з великою кількістю активних аніматорів у сцені — кожен активний Animator тратить CPU незалежно від видимості.

GPU side. Snapdragon Profiler для Android, Xcode GPU Frame Capture для iOS — точніше Unity Profiler для GPU-аналізу. Fillrate overdraw видно через Unity Scene View у режимі Overdraw — червоні зони це багаторазова перемальовка. Типова проблема: партикл-системи з Additive blending малюють по 15–20 шарів поверх фону — кожен шар повний fillrate pass.

Memory. Memory Profiler package — не вбудований Profiler. Снапшот купи показує конкретні текстури, що займають VRAM. Нестиснена 4K текстура = 64 МБ VRAM, без міпмапів ще гірше — при віддаленні об'єкта GPU все одно читає повне розширення.

Чому Dynamic Batching підводить на мобільних?

Dynamic batching автоматично батчить меші з однаковим матеріалом якщо вони <= 900 вершин і 300 трикутників. Але якщо в об'єктів різні MaterialPropertyBlock значення (наприклад, колір через скрипт) — батчинг ламається. GPU Instancing у 3 рази ефективніший на мобільних GPU, оскільки знижує кількість draw calls за рахунок одного виклику рендерингу для множини об'єктів. Перехід на GPU Instancing — одна з найефективніших змін.

Які типові проблеми ми знаходимо?

  • Canvas Rebuild кожен кадр. Canvas.willRenderCanvases спрацьовує при будь-якій зміні дочірнього елемента — зсув, колір, текст. Якщо в HUD оновлюється таймер кожну секунду, весь Canvas перераховується. Рішення: поділ Canvas на статичні та динамічні частини. Анімовані елементи на окремий Canvas.
  • Shadow Distance. На мобільних платформах Shadow Distance = 150 (дефолт) малює каскадні тіні для всього що в 150 юнітах від камери. Реальна потреба — зазвичай 20–40 юнітів. Різниця в shadow render time — 3–4x.
  • MipMap Streaming не налаштований. Без QualitySettings.streamingMipmapsActive = true всі текстури завантажуються в повній роздільній здатності при старті сцени. Для мобілок з 3–4 ГБ RAM це критично — сцена з 200 текстурами може зайняти 600 МБ VRAM при старті.

Як проходить консультація з візуальної оптимізації?

  1. Аудит. Запускаємо проєкт на цільовому пристрої з прикріпленим Profiler, знімаємо кілька характерних сцен. Аналізуємо frame breakdown, draw calls, fillrate, memory snapshot. Результат — список вузьких місць з оцінкою потенційного приросту.
  2. План дій. Пріоритезуємо за співвідношенням «складність виправлення / приріст продуктивності». Прості перемоги (shadow distance, canvas split, texture compression) — спочатку. Архітектурні зміни (перехід на GPU Instancing, реорганізація LOD) — з оцінкою трудозатрат.
  3. Підтримка реалізації. Ми реалізуємо зміни самі або консультуємо команду при самостійному виправленні. Для другого варіанту: письмовий технічний гайд з конкретними налаштуваннями та очікуваними результатами.

Що входить у консультацію з візуальної оптимізації?

  • Документація: звіт з графіками, скріншотами Profiler та Frame Debugger, рекомендації за пріоритетами.
  • Код оптимізацій: готові шейдери, скрипти для налаштування Instancing, конфіги для Addressables.
  • Доступ: тимчасовий доступ до нашого демо-стенду з еталонними рішеннями.
  • Навчання: 2-годинна сесія з розбором типових помилок та відповідями на питання команди.
  • Підтримка: консультації по виниклих складностях протягом місяця після завершення основного етапу.

Ми використовуємо комбінований підхід: спочатку CPU-профілювання для пошуку логічних вузьких місць, потім GPU-деталізація через RenderDoc і Snapdragon Profiler. Це дозволяє знайти як очевидні, так і приховані проблеми — наприклад, неправильне налаштування LOD або неефективне використання шейдерів.

Інструменти, які використовуємо

Інструмент Призначення Платформа
Unity Profiler + Frame Debugger CPU/GPU профілювання, draw calls Unity Editor
RenderDoc Детальний GPU-аналіз PC, консолі
Snapdragon Profiler GPU-профілювання Android Android (Adreno)
Xcode GPU Frame Capture GPU-профілювання iOS iOS (Metal)
Memory Profiler 1.1+ Аналіз VRAM, текстури Unity Editor

Терміни та економія

Тип консультації Термін Економія часу для команди
Експрес-аудит + звіт (1 сцена, 1 платформа) 1–3 дні до 2 тижнів самостійного розбору
Повний аудит продуктивності + план оптимізації 5–10 днів до 4 тижнів на пошук рішень
Аудит + реалізація оптимізацій 2–6 тижнів повне зняття головного болю по FPS

Середня економія на проєкті — скорочення бюджету на налагодження на 30–50% за рахунок точного виявлення кореневих причин. Вартість консультації фіксується після первинного аналізу проєкту та цільових платформ. Зв'яжіться з нами, щоб обговорити ваш проєкт і отримати попередню оцінку. Замовте консультацію, і ми допоможемо вирішити проблеми з продуктивністю.