Early Unity projects that shaped my understanding of gameplay systems, optimization, and clean engineering practices used in production today.
Overview:
A vertical endless shooter featuring enemy waves with varying health, damage, and attack patterns.
Core Systems:
Engineering Challenge:
Collision logic became complex and inefficient due to multiple script-level collision checks.
Solution:
Redesigned collision handling using Unity’s Layer Collision Matrix to offload filtering to the engine.
Key Learning:
Offloading collision filtering to the engine — instead of manual script-level checks — reduces unnecessary checks, cleans up architecture, and scales easily to new enemy and projectile types.
Overview:
A performance-focused endless runner inspired by Chrome Dino, emphasizing smooth visuals on mobile devices.
Key Learning:
Replaced runtime spawning with texture offset scrolling for ground and background.
Built to strengthen understanding of gameplay flow, coroutines, and clean architecture.
Learned when coroutines are better than Update().
Key Learning:
Strengthened understanding of when coroutine-driven flow is a cleaner fit than
Update(), and how a Singleton Game Manager plus delegate-based
communication keeps gameplay flow decoupled and easy to reason about.
Logic-heavy Sudoku game implementing Backtracking algorithm.
Key Learning:
Practiced recursive backtracking and constraint validation, and how the right data structures keep board generation and solving efficient at scale.
VR prototype using Unity XR Toolkit, focusing on physics-driven interactions.
Key Learning:
Explored natural object interaction and VR usability through physics-driven grabbing, and validated interactions using the XR Device Simulator without needing a headset for every test pass.