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

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

От иммерсивных приложений до игровых миров и 3D-сцен

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

Посетить персонализированный сайт
Показано 1 из 1 услугВсе 242 услуг
Подготовка билдов для дистрибуции в SteamVR
Простая
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции
Какие этапы разработки игры?
Последние работы
  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    671
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    860
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    533

Подготовка билдов для дистрибуции в 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 дня на цикл

Стоимость определяется после анализа проекта и состояния текущей сборки.