VR Game Documentation

CYBER SIEGEVR PROTOCOL

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

🎮 VR Shooter 🚀 Meta Quest 👾 Android Enemies ⚡ Prototype Stage
Unity URP C# OpenXR XR Interaction Toolkit Android Build
👤 Solo Developer & Designer / Josh Rocha
⏱ Built in 2 Weeks
Scroll

Mission Directive

Cyber Siege is a first-person VR space shooter where players pilot a spacecraft through a procedurally generated asteroid tunnel while fighting waves of android enemies. Designed for the Meta Quest, the experience focuses on immersive combat, escalating difficulty, and responsive XR interactions.

Constant Forward Motion

Players are propelled through a hostile asteroid field under relentless pressure — no stopping, no retreating.

🌐

360° Spatial Awareness

The fully immersive VR environment demands constant awareness in every direction. Threats emerge from all angles.

📈

Escalating Tension

Scaling difficulty ensures the pressure never lets up — reaction time and positioning become increasingly critical as you dive deeper.

What You Do

🎮 Player Actions

  • Navigate through an endless asteroid tunnel
  • Use VR controllers to aim and shoot enemies
  • Destroy android robots with visible health bars
  • Survive as difficulty increases over time
  • Reach higher scores through combat efficiency

👾 Enemy Encounters

  • Two distinct enemy types with different threat levels
  • Dynamically spawned waves relative to your position
  • Enemies track and attack within configurable detection range
  • Red units deal more damage and absorb more hits
  • Pressure intensifies with no lull periods at higher depths
🎮
EngineUnity (URP)
💻
LanguageC#
🥽
PlatformMeta Quest
🔗
XR FrameworkOpenXR + XR Toolkit
🛠
Build ToolsMQDH (Android APK)
📐
Build TargetAndroid (Standalone)
Solo Developer & Designer Josh Rocha
1Developer
2Weeks to Build
100%Solo Effort
🏗

Designed and implemented all core gameplay systems from scratch

🕹

Built XR interaction system — VR movement, hand tracking, and shooting

🤖

Developed enemy combat, health systems, and AI targeting behavior

🌌

Created procedural asteroid tunnel generation system

🖥

Designed all UI and feedback systems — health bars, score, panels

⚙️

Optimized project for VR performance on standalone Quest hardware

Technical Mechanics

🕹 XR Movement & Player System
  • Ship follows XR Origin — player headset and controllers directly control navigation
  • Hybrid movement system supporting both XR hardware and non-VR testing
  • Player positioned inside spacecraft for full physical immersion
  • Continuous forward propulsion through a curved asteroid tunnel
  • Speed gradually increases to intensify gameplay over time
🔫 Shooting System
  • Gun physically attached to VR hand using XR Interaction Toolkit
  • Projectile-based shooting with collision detection via triggers and physics
  • Supports both continuous fire and tap-to-shoot modes
  • Single-hit flag ensures each projectile registers only one collision
👾 Enemy System
  • Enemies spawn dynamically relative to the player's position — always ahead
  • Each enemy includes a health system, damage response, and death effects
  • Directional targeting toward player with positional offsets
White — Standard (low health, low damage)
Red — Elite (high health, high damage)
❤️ Health & Damage System
  • Player health tracked and displayed in real time via UI
  • Enemy damage reduces player health on projectile impact
  • Damage output scales as player progresses deeper into the tunnel
  • Game ends when health reaches zero — triggers lose sequence
🧠 Scoring & Progression
  • Points awarded per enemy destroyed — higher-value targets reward precision
  • Difficulty scaling increases intensity: faster speed, more enemies, higher damage
  • No dead zones — consistent enemy presence throughout all stages
🌌 Asteroid Tunnel System
  • Procedurally generates asteroids with a safe navigation radius
  • Mix of static and moving asteroids creates illusion of speed and depth
  • Hyperspace / light-speed visual effect attached to player for full immersion
💥 Effects, UI & Game Flow
  • Impact effects on hit, death particle effects on destruction
  • HUD displays: Health · Score · Kill Count
  • Win / Lose panels with restart system for full replayability
  • Intro tutorial sequence teaches controls before combat begins

Gameplay Footage & Screenshots

Source Code & Download

Challenges & Solutions

XR Origin vs Ship Movement

Problem

Player movement conflicted with XR Origin, causing disconnection between the headset view and the ship.

Solution

Implemented a hybrid follow system that syncs ship position with XR Origin while maintaining control continuity.

Projectile Hit Detection

Problem

Bullets were unreliable — passing through targets or triggering multiple collision events on the same enemy.

Solution

Added per-projectile hit flags and reworked collision hierarchy with GetComponentInParent() to ensure one hit per bullet.

UI Interaction in VR

Problem

Buttons and panels were difficult to interact with due to collider conflicts and ray-casting misalignment in VR.

Solution

Refined collider setup and integrated XR interaction components for accurate ray-based UI interaction.

Quest Performance

Problem

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

Solution

Optimized URP shaders and lighting, limited spawn density, and disabled expensive effects like SSAO.

Build Size & APK Compile Time

Problem

Android APK builds were extremely large and compilation times were unsustainably slow during iteration.

Solution

Removed unused assets, reduced texture sizes, and limited included scenes and shader variants.

Enemy Spawning & Pacing

Problem

Enemies appeared behind the player, with dead periods of zero enemy presence breaking tension.

Solution

Refined spawn logic so enemies always appear ahead of or alongside the player throughout.

Hyperspace Effect Sync

Problem

The hyperspace speed effect appeared static while the player moved through it, breaking immersion.

Solution

Attached the effect directly to the player/ship transform so it travels with the camera at all times.

Enemy Aiming & Cleanup

Problem

Enemies fired inaccurately and objects persisted incorrectly during gameplay state transitions.

Solution

Implemented directional targeting with positional offsets and a controlled script-based cleanup system.

Accomplishments

Fully playable VR shooter deployed as APK on Meta Quest

Stable real-time combat with reliable projectile and damage systems

Modular enemy system with two types and scalable difficulty

Procedural asteroid tunnel environment with moving asteroids

Functional XR interactions — movement, shooting, and UI

Integrated scoring, health, kill tracking, and game state systems

Complete gameplay loop: intro → combat → win/lose → restart

Optimized for standalone VR hardware with consistent frame rate

What I Learned

01

How to design for VR immersion — spatial audio, physical interaction, and comfort — vs. flat-screen games

02

Managing XR Origin, player space, and how headset tracking integrates with in-game movement

03

Optimizing for standalone VR hardware with strict memory, GPU, and thermal constraints

04

Building modular, reusable systems for spawning, combat, UI, and game state management

05

Debugging real-time interaction systems where frame timing, physics, and XR input interact simultaneously

06

Iterating rapidly on game feel — how subtle changes to speed, spawn rate, and damage affect experience

Status & Roadmap

Current Prototype Status

Core mechanics fully functional
Gameplay loop established
Difficulty progression implemented
APK deployed and playable on Quest
Build Phase
▓▓▓▓▓▓▓▓▓░░░  PROTOTYPE

Next Steps

  • 01
    Introduce boss encounters for milestone-based replayability
  • 02
    Add player weapon variety and VR interaction improvements
  • 03
    Enhance visual polish — lighting, VFX, and audio design
  • 04
    Add power-ups, upgrades, and player progression between runs
  • 05
    Refine pacing, onboarding tutorial, and level progression