Unity project structure
Separate platform integration, game rules and presentation so the game remains testable without hardware.
Recommended tree
Assets/Game/
├── Bootstrap/ # SDK composition, loading, fatal errors
├── Runtime/
│ ├── Domain/ # scoring, rounds, mission state
│ ├── Integration/ # adapters around VorivoxGameSdk
│ ├── Presentation/ # UI, VFX, audio
│ └── Content/ # ScriptableObject configuration
├── Scenes/ # Boot and Game
└── Tests/ # EditMode and PlayModeIntegration boundary
Do not pass the SDK component to every target. Create one adapter translating platform events into domain commands. Automated tests can then replace the adapter with a fake shot source.
Boot and Game
| Boot | Game |
|---|---|
| SDK, manifest validation, loading and fatal UI | mechanics, levels, HUD, VFX and audio |
| persists between scenes | may reload without breaking the platform connection |
Data
Store balance and geometry in ScriptableObjects, current session state in memory, and durable data only under Manifest.Paths.PersistentDir.