
VR Mech Game
UX Designer | Student team of 11 | Unreal Engine 5 VR
WHAT DID I DO?
-
Researched real-world weapons as emulation targets for an immersive VR experience
-
Created cardboard prototypes to communicate with Engineers and Designers
-
Integrated and expanded on Engineer prototypes
-
Polished gameplay systems based on feedback
Demo of an early prototype for the Launcher
RESEARCH


I researched Mortars and Howitzers, which served as emulation targets for the game's Launcher weapon
​
-
Turning a wheel in VR is a good way to have players aim in a kinesthetic way
-
The heavy impact of using a Howitzer translates well to piloting a large mech
I researched different categories of VR interactions in games by Schell Games to set specific goals for Launcher actions.
I put these interactions into three categories:
​​
-
Direct Action: an immediate outcome from a direct input from the player
-
Pressing a button to fire the Launcher
-
-
Continuous Action: a looping action that continues as the player provides input
-
Turning a wheel to aim the Launcher
-
-
Objective Action: physical mini-puzzles, where players have to complete specific inputs in a proper sequence to trigger an action
-
Grabbing ammo and putting it in the right place to reload the Launcher
-



PROTOTYPING

I used cardboard & paper to create a prototype cockpit that all developers could adjust and play with to communicate design goals
-
Easy to iterate and communicate ideas
-
I also brought the shell of a 105mm round I got from my time in the military
-
I used my life experience to explain the sense of weight of a large weapons system
-
Ian talking about the cockpit (left) and my 105mm shell (right)
Engineers created VR objects (like grab components and turnable wheels), and I made these objects utilize Blueprints for player actions
-
I used Event Dispatchers to make functionality that can be called without casting
-
I placed "ugly" elements in the game based on the team's cardboard cockpit meetings

An early prototype of the Launcher's controls

Blueprint that calls my Load Round Event when Ammo collides

Load Round Event: increase Launcher's ammo (clamped) and print the current ammo count as debug text.
Then call Launcher's Feedback Event Dispatcher
FAIL FASTER: WEIGHT
I wanted to make the Launcher ammo feel heavy to hold, so I researched how other devs did it
-
I found this article by B-Reel, which led me to try implementing a loose link system
-
This felt bad in playtesting and I ran out of time in the sprint to iterate, so it was cut
-
-
Instead, I replicated muscle tension while lifting heavy objects through haptics
-
I'd love to explore this more in the future!
-

Timer Event: force players to drop heavy objects if held for too long

​
The haptics graph shows how I increase haptics over time, replicating muscle fatigue
ITERATE: ART ASSETS

​
Ammo Spawner is a cylinder with a rusty metal material

I updated meshes for the launcher Ammo elements to communicate their connection
-
A tube spawns ammo for the Launcher on the opposite to where it needs to be loaded
- This should be a physical puzzle, not a mental one, so using the same mesh for the tube that spawns the ammo and the tube to put the ammo into helps connect these two objects
The reloading tube uses the same material to signify a connection
ITERATE: SIGNIFIERS
Visual feedback for Launcher needing a reload, then feedback once it's loaded
I used 'Move Component To' nodes to place objects in predetermined positions
-
This provided feedback for state changes
-
Elements of the mech respond to player's actions, telling them which of their actions affects the controls around them

Blueprints for Empty launcher Feedback