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

Наша компанія з розробки відеоігор веде незалежні проекти, спільно з клієнтом створює ігри та надає додаткові операційні послуги. Досвід нашої команди дозволяє нам охопити всі ігрові платформи та розробити приголомшливий продукт, що відповідає баченню клієнта та перевагам гравців.

Від імерсивних застосунків до ігрових світів і 3D-сцен

Наша виділена команда для VR/AR/MR-розробки, Unity-продакшну і 3D-моделювання та анімації — з власними кейсами і презентаціями.

Відвідати персоналізований сайт
Показано 1 з 1Усі 242 послуг
Підготовка білдів для дистрибуції в SteamVR
Простий
~2-3 дні
Часті запитання

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

Які етапи розробки гри?

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

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    696
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    879
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    504
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    543

tags: [vr-ar]

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

Опублікувати VR-гру в Steam технічно складніше, ніж звичайну десктопну. Справа не в самому Steamworks SDK — він добре документований. Складність в тому, що SteamVR-приложення обслуговує кілька шарів одночасно: Steam Runtime, OpenVR/OpenXR overlay, compositor, та все це має коректно стартувати, реєструвати маніфест та не конфліктувати з іншими headset-специфичними шарами типу Oculus Runtime на PC.

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

Перше, що ломається у більшості — 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. Помилка у одному символі — та маніфест ігнорується без помилок у лог-файлі.

Другий клас проблем — 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.

Підготовка пакету: від білду до Steamworks

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

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

Вартість визначається після аналізу проекту та стану поточної сборки.