Projects Skills About Resume ↗ Connect
Case Study · VR Space Shooter

CYBER
SIEGE

A first-person VR space shooter where players pilot a spacecraft through a procedurally generated asteroid tunnel, battling waves of android enemies in immersive, escalating combat built for Meta Quest.

EngineUnity URP
LanguageC#
PlatformMeta Quest
Duration2 Weeks
Team SizeSolo
My RoleDesigner & Dev

Immersive Combat in Deep Space

Cyber Siege started from a direct challenge: build a fully playable VR shooter from scratch in two weeks, solo — no team, no existing codebase, just Unity and a Meta Quest.

The design goal was to create a sense of constant forward pressure — players are propelled through a hostile asteroid field with threats emerging from all angles, demanding full spatial awareness and fast reflexes inside a truly immersive VR environment.

Cyber Siege gameplay

How I Built It

01

Concept & Scope

Defined the core loop early — tunnel movement, shooting, enemy waves, scoring — to keep the solo two-week build focused and achievable.

02

XR Foundation

Set up OpenXR and XR Interaction Toolkit first, establishing player movement, hand tracking, and controller input before any gameplay systems.

03

Systems Build

Built shooting, enemy AI, health, scoring, and the procedural asteroid tunnel iteratively — testing on hardware at each stage.

04

Quest Optimization

Profiled and tuned shaders, lighting, and spawn density to hit a stable frame rate on standalone Quest hardware before final build.

Core Mechanics

🚀
XR Movement

Ship syncs with XR Origin — the headset and controllers directly drive navigation through the asteroid tunnel.

🔫
Shooting System

Physics-based projectiles with per-bullet hit flags — no double-registrations, clean collisions every time.

👾
Enemy AI

Two enemy types — standard white units and elite red androids — spawning dynamically ahead of the player.

📈
Difficulty Scaling

Speed, spawn rate, and damage all increase over time — no dead zones or lull periods at higher depths.

🌌
Asteroid Tunnel

Procedurally generated tunnel with static and moving asteroids plus a hyperspace effect attached to the player.

🖥️
HUD & Game Flow

Real-time health, score, and kill count — plus full win/lose panels with restart for complete replayability.

See It In Action

Game Gallery

Spacecraft in editor
01
Pilot briefing panel
02
Combat systems briefing
03
Active gameplay
04
Mission complete screen
05
Enemy encounter
06

What I Built

XR Interaction System — Built VR movement, hand tracking, and controller shooting from scratch using OpenXR and XR Interaction Toolkit.

Enemy Combat & AI — Developed both enemy types with health systems, damage response, directional targeting, and death effects.

Procedural Asteroid Tunnel — Designed and coded the generation system with a safe navigation radius, mixing static and moving asteroids.

Difficulty & Scoring — Built the progression system — escalating speed, spawn rate, and damage — plus the full kill and score tracking HUD.

UI & Game State — Created all UI panels, health/score display, win/lose flow, and the intro tutorial sequence.

Quest Optimization — Profiled and optimized URP shaders, lighting, and object density to hit stable frame rates on standalone hardware.

Access the Project

💻

Cyber Siege — GitHub Repository

Full Unity project source — C# scripts, XR configuration, enemy systems, procedural generation, and all gameplay systems. Browse, fork, or download the APK to sideload on Meta Quest.

What I Overcame

Challenge

XR Origin vs Ship Movement

Player movement conflicted with XR Origin, disconnecting the headset view from the ship's position mid-flight.

Solution

Hybrid Follow System

Implemented a sync system that couples ship position to XR Origin while maintaining smooth control continuity throughout.

Challenge

Projectile Hit Detection

Bullets would pass through targets or trigger multiple collision events on the same enemy, breaking combat reliability.

Solution

Per-Bullet Hit Flags

Added single-hit flags per projectile and reworked the collision hierarchy using GetComponentInParent() for clean one-hit registration.

Challenge

Quest Performance

High object counts — asteroids, enemies, and particle effects — caused frame rate drops on the standalone Quest hardware.

Solution

URP Optimization

Tuned URP shaders and lighting, limited spawn density, and disabled expensive effects like SSAO to hit a stable frame rate.

Challenge

Enemy Spawning & Pacing

Enemies appeared behind the player and dead zones with zero enemy presence kept breaking tension and immersion.

Solution

Positional Spawn Logic

Refined spawn logic so enemies always appear ahead of or alongside the player with no lull periods at any depth.

What I Delivered

In two weeks as a solo developer, Cyber Siege went from concept to a fully playable, APK-deployed VR shooter on Meta Quest. Every system — movement, shooting, AI, procedural generation, scoring, and UI — was designed, built, and optimized by hand.

1
Solo developer,
all systems
2
Weeks from
concept to APK
2
Enemy types with
distinct behaviors
Procedurally
generated tunnel

Where It Could Go

Boss encounters at milestone depths for replayability and a sense of progression

Player weapon variety and additional VR interaction improvements

Enhanced visual polish — improved lighting, VFX, and spatial audio design

Power-ups, upgrades, and a player progression system between runs

Refined onboarding tutorial, clearer pacing, and structured level progression

Try It Yourself

Sideload the APK onto any Meta Quest device and experience the tunnel firsthand.