Підготовка білдів для дистрибуції в SteamVR

Підготовка білдів для дистрибуції в SteamVR Відмітимо: коли VR-гра запускається через Steam, користувач бачить чорний екран у шоломі, хоча десктопний клієнт працює. Це відбувається на 40% проєктів, які приходять до нас на аудит. Складність у тому, що SteamVR-додаток обслуговує декілька шарів: Ste

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

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

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
    1504
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1006
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    635
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    716
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    95

Підготовка білдів для дистрибуції в SteamVR

Відмітимо: коли VR-гра запускається через Steam, користувач бачить чорний екран у шоломі, хоча десктопний клієнт працює. Це відбувається на 40% проєктів, які приходять до нас на аудит. Складність у тому, що SteamVR-додаток обслуговує декілька шарів: Steam Runtime, OpenVR/OpenXR overlay, compositor. Всі вони повинні коректно стартувати, зареєструвати маніфест і не конфліктувати з іншими headset-специфічними шарами на кшталт Oculus Runtime на Windows. За 5 років ми підготували до дистрибуції понад 20 VR-проєктів: від інді до AAA для Valve Index, HTC Vive та Oculus Rift. Наші інженери мають сертифікати Unity та Unreal, а також досвід роботи з Steamworks SDK на рівні партнерів Valve.

Як уникнути чорного екрану при запуску

Перше, що ламається у більшості — vrmanifest. Це JSON-файл, який SteamVR використовує для реєстрації додатка в OpenVR. Якщо він не прописаний коректно або не лежить у правильному місці відносно виконуваного файлу, SteamVR не зрозуміє, що додаток — VR. Гра запуститься в desktop-режимі, без stereo rendering, користувач отримає чорний екран у headset.

Структура manifest.vrmanifest:

{ "source": "builtin", "applications": [{ "app_key": "steam.app.ВАШ_APP_ID", "launch_type": "binary", "binary_path_windows": "YourGame.exe", "is_dashboard_overlay": false, "strings": { "en_us": { "name": "Your VR Game", "description": "..." } } }] } 

Поле app_key повинно точно збігатися з App ID у Steamworks. Помилка в одному символі — і маніфест ігнорується без будь-яких помилок у лог-файлі. Це одна з найчастіших причин, через яку ми отримуємо заявки на терміновий аудит. Згідно з Steamworks Documentation, маніфест повинен знаходитися в кореневій папці додатка.

Що конкретно заважає нормальному запуску з Steam

Другий клас проблем — Steam Depots та конфігурація Steam Build. Для VR-гри рекомендується мінімум два депо: базовий контент та окреме депо під високоякісні текстури, щоб користувачі з менш потужними машинами могли завантажити полегшену версію. Налаштування Launch Options у Steamworks повинно явно прописувати -openvr або -openxr прапорець залежно від використовуваного backend в Unity/Unreal.

У Unity з OpenXR Plugin важливо перевірити, що XR Plug-in Management налаштований з правильним порядком providers: OpenXR повинен йти першим, інакше при запуску через Steam без активного VR Runtime гра впаде на ініціалізації з винятком XRLoader failed to initialize.

Поетапний план налаштування Steam Depot

  1. Створіть у Steamworks два депо: основне (100GB) та текстурне (50GB).
  2. Призначте Depot Overrides для текстурного депо на гілки з низькими налаштуваннями.
  3. Вкажіть Launch Options: -openxr для OpenXR або -openvr для SteamVR.
  4. Зберіть білд з IL2CPP та завантажте через steamcmd.

Чому варто додати окреме депо для текстур

Користувачі з відеокартами нижче рекомендованих можуть зіткнутися з нестачею відеопам'яті. Окреме депо з текстурами низького розширення дозволяє їм завантажити полегшену версію без втрати функціональності. У Steamworks це налаштовується через Depot Overrides. Ми включаємо таку опцію у всі проєкти — це підвищує покриття аудиторії на 15–20%.

Чек-лист перед публікацією
  • Холодний старт: запуск через steam://run/APPID без активного SteamVR — VR Runtime повинен піднятися автоматично.
  • Гаряче перемикання: запуск з уже відкритим SteamVR, потім зміна headset (Index + Quest через Link).
  • Non-VR fallback: гра не повинна крашитися при відсутності VR Runtime — виводити повідомлення.
  • Перевірка логів: vrserver.txt та openvr.log не повинні містити помилок маніфесту.

Збірка релізного білда: налаштування Unity

Збірка релізного білда для Steam відрізняється від dev-збірки кількома параметрами. У Unity: IL2CPP backend (не Mono), Strip Engine Code включений, Managed Stripping Level — Minimal або Low для VR (агресивний стрипінг регулярно ламає reflection-based код у XR SDK). Compression Method — LZ4HC для прискорення розпакування при першому запуску.

Параметр Рекомендація для VR Коментар
Backend IL2CPP Швидше, менший бінарник
Stripping Level Minimal або Low Higher може зламати XR
Compression LZ4HC Швидке розпакування

Після збірки — верифікація через Steam Content Builder (steamcmd). Локальний тест через steam://run/APPID перед завантаженням у Steam гарантує, що manifest підхоплюється. Якщо SteamVR не стартує автоматично при запуску через Steam — дивимося в C:\Program Files (x86)\Steam\logs\vrserver.txt та openvr.log у папці гри.

Для OpenXR-проєктів додатково перевіряємо наявність openxr_loader.dll у папці з виконуваним файлом та коректність XR_RUNTIME_JSON змінної середовища — Steam може перевизначати її при запуску.

Тестування перед публікацією

Обов'язкові сценарії до сабміту:

  • Холодний старт: запуск через Steam без попередньо відкритого SteamVR — VR Runtime повинен підніматися автоматично.
  • Гаряче перемикання: запуск з уже відкритим SteamVR, потім зміна headset (якщо тестуємо мульти-HMD сумісність — Index + Quest через Link).
  • Запуск у non-VR режимі: гра не повинна крашитися, якщо VR Runtime недоступний, — або graceful fallback, або зрозуміле повідомлення.

Тест на Valve Index, якщо гра позиціонується як PC VR, — обов'язковий: там свої особливості з finger tracking через SteamVR Skeletal Input та Lighthouse tracking.

Що входить у роботу

Відмітимо: коли ви замовляєте підготовку білда у нас, у послугу входить:

  • Налаштування vrmanifest та тестовий запуск через Steam
  • Конфігурація депотів та Launch Options у Steamworks
  • Збірка релізного білда з IL2CPP та оптимізаціями
  • QA-тестування за чек-листом з п'яти сценаріїв
  • Правки за результатами рев'ю Valve (одна ітерація)
  • Документація щодо процесу та конфігурації

Оцініть ваш проєкт — зв'яжіться з нами, щоб обговорити деталі. Терміни під ключ: від 5 робочих днів.

Орієнтовні терміни

Масштаб завдання Орієнтовні терміни
Налаштування маніфесту + Steamworks config 1–2 робочих дні
Повна підготовка пакета з depot setup 3–5 робочих днів
Ітераційні правки після QA Steam 1–2 дні на цикл

Замовте консультацію — ми проаналізуємо поточну збірку та надамо рекомендації. Отримайте аудит вашого білда з детальним планом виправлень.