Royal Run is a fast, procedurally generated 3D endless runner built in Unity. It started as a simple lane prototype and evolved into a physics-tuned experience with chunk-based level generation, escalating difficulty, and a strong focus on “game feel.” Along the way I doubled down on clean architecture—dependency injection where it helps, ScriptableObjects for data, and tight iteration loops to keep balance and pacing under control.
Core loop: read the pattern ahead, commit to a line, score with risk/reward pickups, and push deeper as the generator dials up speed, density, and hazard complexity.
Systems & implementation
Measurable outcomes
Before: jitter on dense VFX clusters and occasional unfair spawns. After: pooled VFX + socket rules → GC spikes ↓ 54% and cleaner telegraphing on high-speed sections.