Skip to content

Monsta Choppa VR

A VR roguelike arena combat game built with Unity's XR Interaction Toolkit. Fight waves of enemies, earn gold and experience, upgrade equipment, and progress through increasingly difficult challenges.


Project Status

Project Shelved

This portfolio project was shelved in January 2026. I started a new position working with Meta's native SDK rather than OpenXR, making context-switching between the two SDKs impractical for continued development.

These Documents were also generated by Claude Opus 4.5 based off of my existing MD Files and the Code I made in the project. I don't usually do this but I wanted to clean up the documents before shelving and don't have the time to do it properly myself.

This project was worked on from December 15th 2025 to January 31st 2026.

See Project Status for what was completed and what was planned next.


Technical Highlights

  • Combat System


    Physics-based VR melee combat with velocity-based damage calculation, haptic feedback, and multiple weapon archetypes.

    Weapons

  • Enemy System


    Component-based enemy architecture with NavMesh navigation, object pooling, and data-driven wave spawning.

    Enemies

  • VR Performance


    Optimized for Quest 2/3 with 72+ FPS targets, priority-based update management, and Application SpaceWarp support.

    Performance

  • Architecture


    ScriptableObject-driven design with decoupled event channels, generic database patterns, and factory systems.

    Architecture


System Architecture

The project uses a layered architecture separating presentation, gameplay, events, and data concerns.

flowchart TB
    A[Presentation Layer] --> B[Gameplay Layer]
    B --> C[Event Layer]
    C --> D[Data Layer]
    D --> E[VR Template Layer]

    A --- A1[UI Hosts & Views]
    A --- A2[Audio & VFX]

    B --- B1[Weapons & Combat]
    B --- B2[Enemies & AI]

    C --- C1[GameplayEvents]
    C --- C2[AudioEvents]

    D --- D1[Databases]
    D --- D2[Object Pooling]

    E --- E1[XR Origin]
    E --- E2[Controllers & Input]

Core Design Patterns

Pattern Implementation
ScriptableObject Database Generic DatabaseBase<T> with O(1) lookups
Event Bus Type-safe ScriptableObject event channels
Object Pool Unity ObjectPool with priority routing
Factory UIToolkitFactory for consistent UI creation
Component Modular enemy and weapon components

Dependencies

Asset Purpose
PrimeTween Allocation-free animation
ESave Save file serialization
XR Interaction Toolkit VR input and interaction
Synty Dungeon Realms Environment art

Documentation

Section Description
Architecture System design, event channels, database patterns
Game Systems Weapons, enemies, UI, save data
VR Development Performance optimization, comfort, SpaceWarp
Future Plans Roadmap and project status