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.
-
Enemy System
Component-based enemy architecture with NavMesh navigation, object pooling, and data-driven wave spawning.
-
VR Performance
Optimized for Quest 2/3 with 72+ FPS targets, priority-based update management, and Application SpaceWarp support.
-
Architecture
ScriptableObject-driven design with decoupled event channels, generic database patterns, and factory systems.
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 |