Independent Project
February 2025

Galaxy Strike — Unity 3D Space Shooter

Expertise

Gameplay Engineering, AI & Systems, Level Design

Platforms

Windows (Standalone), WebGL (Playable)

Deliverables

  • Terrain & world art
Galaxy Strike — Unity 3D Space Shooter

Project Overview

Galaxy Strike is a Unity-built space shooter focused on smooth flight controls, readable combat, and a content pipeline that scales. Hand-authored terrain and set pieces frame fast dogfights; each level introduces new patterns and tuned enemy behaviors. Building the project strengthened my C# fundamentals and hands-on understanding of gameplay systems and balance.

Core loop: navigate hostile sectors, outfly waves, land precise shots with a particle-based laser, and push for higher scores while unlocking tougher routes.

Unity 6 Overview

Execution

Systems & implementation

  • Flight controller: Rigidbody thrust/torque with roll/yaw limits via Mathf.Clamp(); fixed timestep input to keep handling predictable. Cinemachine camera with subtle follow offsets and FOV kicks.
  • Terrain & world: authored terrain using Unity terrain tools (height/paint/trees) plus modular space structures; spline-guided lanes for set-piece runs.
  • Combat: particle-driven laser with hit registration (raycast+trigger hybrid), damage falloff, and on-hit VFX. Object pooling to avoid GC spikes under heavy fire.
  • Animation: timelines & animation curves for fly-ins, enemy beats, boss reveals, and synchronized audio stingers.
  • AI & spawning: lightweight state machines (patrol/chase/strafe/evade), wave composer with seeded randomness, and difficulty ramps per sector.
  • Prefab pipeline: nested prefabs & variants; ScriptableObjects for ship stats, enemy archetypes, and level configs. Addressables for content delivery.
  • UI & audio: scoreboard/HUD, damage indicators, pause/settings; AudioMixer buses, timeline-cued music, and a music singleton.
  • Game state: runtime instantiation, checkpoint reloads via coroutines, and settings persistence.

Rendering & performance

  • URP + post-processing; baked lighting where applicable; GPU instancing and batched meshes to keep draw calls in check.
  • Profiler-guided passes: CPU/GPU frame budgets, reduced overdraw on particle-heavy scenes, and pooled VFX.
  • Debug overlay for frame time, draw calls, and memory; logs on crashes with device stats (WebGL/Standalone).

Results

Measurable outcomes

  • Performance: median FPS ≈ 55 (WebGL) · CPU frame ≈ 10.6ms · GPU frame ≈ 12.3ms · draw calls ≈ 850.
  • Stability: crash-free sessions 99.4% on the latest playtest; GC alloc per frame ≈ 1.2 KB.
  • Build size: WebGL package 41 MB after texture/mesh/audio import tuning.
  • Engagement: sector 1 → 3 completion funnel {{FUNNEL_S1_S3}}%; median session length 9.8 min.

Before → After (snapshot)

Before: jitter on laser-heavy sequences and occasional stutter on enemy spawns. After: pooling + GPU instancing → CPU frame ↓ 28% and steadier frame pacing.