Supernova - VR Gesture Shooter
Role: General Programmer
Engine: Unreal Engine
Languages: C++, Blueprints, Batch
Tech: UI systems, Interfaces, Events, Jenkins
Supernova is a virtual reality gesture-based combat arena fighter set in
a distant galaxy, where your physical movements and gestures control
punches, swipes and weapon attacks.
Summary
I joined this project halfway through development when I started my internship. I started with small gameplay features like developing objectives and adding VFX using dynamic shaders and particle systems.
Later on in the project I worked on the onboarding for the gesture based shooting mechanics, and worked on the jenkins build server to automatically push builds to the Meta Quest Developer Center.
Results & Impact
- Enabled CI/CD automated build deployment for easier playtest iteration and build showcase
Built responsive onboarding elements to teach player actions and combo's
Implemented gameplay objectives creating more variety in gameplay elements.
Technical Highlights
Jenkins Build Server (Build deployment)
Worked in the existing build server and added new functionality to upload succesful builds to Meta Quest Developer Center and deploying them to all VR devices. This ensured there is always a working version of the latest build for playtesting.
Key contributions:
- Extended existing Jenkins pipeline to automatically upload successful builds to the Meta Quest Developer Center and deploy them to all connected VR device
Gesture Onboarding UI System
Implemented an onboarding sequence to teach the player how to do combo's. deriving from an already made base class and using events that listen to the players attacks.
Key contributions:
- Built a modular onboarding widget framework using Blueprint event dispatchers, including visual feedback on player actions.
- Implemented listener functions that respond to attack input patterns with the optional feature of listening for combo attacks.
Combo onboarding widget running with player input implemented via event listeners. Every correct input disables one of the icons and adds extra time to the timer.
Responsive Objectives
To add more variety to the gameplay I implemented 3 different objectives for the player to accomplish while they are fighting enemies.
Key contributions:
Implemented objectives using interfaces and event systems to make them responsive to player actions
Added VFX using Niagara particle systems and shaders tied to game logic for clearer player feedback (example: hacking a screen makes it turn to the player, turns slowly green, and produces particles)