Unity Game SDK
Start here. Keep VORIVOX integration in one obvious place: the Boot scene and an SDK adapter. Gameplay, UI and rendering should not talk to Launcher directly.
Start() connects the SDK and loads resources. Gameplay starts only after SessionStarted.Recommended project layout
Assets/Game/
├── Bootstrap/VorivoxBootstrap.cs
├── Runtime/
│ ├── Integration/VorivoxSessionAdapter.cs
│ ├── Gameplay/
│ └── Presentation/
├── Localization/ # 12 required languages
│ ├── ru/ en/ zh-Hans/ es/ ar/ hi/
│ └── pt/ fr/ de/ ja/ kk/ uz/
├── Scenes/Boot.unity
├── Scenes/Game.unity
└── Tests/EditMode + Tests/PlayMode
Where SDK code goes
Create a VORIVOX SDK object in Boot.unity, add VorivoxGameSdk, and place VorivoxBootstrap.cs beside it. Assign references in the Inspector. The rest of the game should depend on your adapter, not directly on the SDK.
using UnityEngine;
using Vorivox.UnityGameSdk;
public sealed class VorivoxBootstrap : MonoBehaviour
{
[SerializeField] private VorivoxGameSdk sdk;
[SerializeField] private GameController game;
private async void Start()
{
sdk.SessionStarted += s => game.StartSession(s.PlayerCount);
sdk.SessionPaused += _ => game.Pause();
sdk.SessionResumed += () => game.Resume();
sdk.SessionStopped += _ => game.Stop();
sdk.HitReceived += hit => game.OnHit(hit);
await sdk.ConnectAsync();
await game.LoadAssetsAsync();
await sdk.ReadyAsync("Game");
}
}
Game developer checklist
Load assets before ready; start mechanics only on SessionStarted; do not score while paused; complete once; support all 12 languages; for two players choose alternating turns or a left/right split target; validate the Linux x86_64 Player outside the Editor.
Read next
Quickstart → First game → Hits → One and two players → Localization → Build → Testing.
Playground demonstrates the shared contract in a browser. It is not a Unity Player or a C# package test.