Диагностика
Ищите проблему по слоям: Manifest → WebSocket handshake → lifecycle → координаты → производительность → упаковка.
Состояния SDK
| Состояние | Что означает |
|---|---|
| Connecting | чтение Manifest и открытие loopback WebSocket |
| Authenticating | отправлен client.hello, ожидается server.hello |
| Connected | Launcher принял игру; можно отправить ready после загрузки |
| Ready | игра сообщила готовность |
| Failed | смотрите LastError и событие Error |
Диагностическое подключение
sdk.ConnectionStateChanged += s => Debug.Log("Connection: " + s);
sdk.SessionStateChanged += s => Debug.Log("Session: " + s);
sdk.MessageIgnored += (msg, why) => Debug.LogWarning($"{msg}: {why}");
sdk.Error += message => Debug.LogError(message);
Проверки
python3 tools/validate_launch_manifest.py mock-launch.jsonpython3 tools/mock_launcher.py --scenario device-faultpython3 tools/validate_game_package.py ./release --write-checksumsЧто приложить к отчёту
- версию игры, SDK и Launcher;
- время проблемы и шаги воспроизведения;
- логи игры без session token;
- скриншот проекции и ожидаемую точку;
- сценарий Mock Launcher, если проблема воспроизводится без оборудования.