Technical case for Vertigo Games
- Open the project using Unity 2021.3.42f1 (LTS).
- Load the WheelSpinScene.
- Load the WheelSpinScene.
The project follows a modular, event-driven architecture designed for clarity, maintainability, and ease of extension.
-
WheelGameManager Acts as the main entry point. Responsible for initializing services, wiring dependencies, and coordinating overall game flow.
-
EventBus Implements a decoupled messaging layer to reduce direct references between systems. Events define interactions between UI, animation, and reward logic.
-
Reward System (ScriptableObjects) Rewards are fully data-driven using ScriptableObjects, enabling iteration without code changes. Each reward defines presentation data and metadata.
-
Distribution-Based Reward Selection Distribution assets describe how rewards are selected—either by weighted counts or explicit ScriptableObject references. This keeps selection logic transparent, configurable, and testable.
Overall, the architecture aims to separate gameplay logic, data, and presentation while minimizing coupling between systems.
Uses a unified material and sprite atlas to ensure optimal batching and low rendering overhead.
Layout components remain disabled during runtime and are enabled for a single frame only when a recalculation is required—preventing unnecessary layout rebuilds.
Animations are driven via DOTween, providing lightweight, allocation-friendly transitions with clear sequencing.
Runtime systems avoid unnecessary Update() loops; event-driven triggers are preferred to reduce per-frame cost.