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

Подготовка билдов для дистрибуции в SteamVR Отметим: когда VR-игра запускается через Steam, пользователь видит чёрный экран в шлеме, хотя десктопный клиент работает. Это происходит на 40% проектов, которые приходят к нам на аудит. Сложность в том, что SteamVR-приложение обслуживает несколько слоё

Наши компетенции

Другие услуги студии

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 дня на цикл

Закажите консультацию — мы проанализируем текущую сборку и дадим рекомендации. Получите аудит вашего билда с детальным планом исправлений.