AURAGAMI
Role: Lead Programmer, Designer • Tools Used: Unity, FMOD, GitHub Desktop • Duration: 9 months • Team Size: 15 • Platform: PC VR
VR Rythm-Like Game with a focus on accessible fun and relaxation.
Some of my responsibilities include:
GAME DESIGN
Level structure and progression
Target designs
Target placement systems
Streak and multiplier system
VR movement mechanics
Accessibility focused design
Tutorial
Level balancing
Game Feel
With the game prioritizing flow and satisfaction, it was essential to nail its kinesthetics. I emphasized this with flexible and accessible controls, and fluid movement.
For controls, I knew that the game being based around motion controls was already greatly limiting its accessibility, so I needed to mitigate that by designing with accessibility in mind from the very beginning. I came up with a system that allows a player to set their desired playing height and range of movement, and the game will scale to that automatically. Depicted to the right are the player settings where they set these options.
I vastly improved the fluidity of the movement by adding creating a smoothing/banking system that helps the characters come to life.
BEFORE AND AFTER SMOOTHING/BANKING
Rigid movement makes the characters feel lifeless
Natural banking and leaning helps everything flow
X
✔
Scripting (C#)
Wrote pseudocode when assigning other programmers tasks
Level designer tool
Character movement banking, leaning, and smoothing.
Various scriptable objects
Recording tool
Level architecture and behaviors
Parent and children classes for targets
Base
Multi-Hit
Threaded
Modular levels
Dynamic, collision detecting spline
Customizable controls
Level Editor
When designing the level editor, the key was ensuring that neither placement or type are burdensome to interact with. To that end, I made a system of "Boards" and "Interactables". A "Board" spawns every beat, moving towards the player. It holds any number of "Interactables" in a plane. An "Interactable" is any type of target or hazard. All "Interactables" use 2 sliders to determine their position, angle and distance. Creating any target is as simple as adding an "Interactable" to a "Board", choosing its type and position, and then adding other points if necessary. Along with that, integration of scriptable objects and a copy/paste system allowed for quick and efficient iteration of the levels.
Version Control (GitHub)
Created and managed a repository for Auragami (Linked Here)
Instructed all teammates in the operation of GitHub Desktop
Setup 100+ issues in an Auragami project for the team to complete
Setup temporary and permanent branches for teammates to work in
Managed all pull requests
Solved any merge conflicts
Training
Removing any barriers impeding my teams work was a constant effort throughout the development of Auragami. Educating everyone on the use of GitHub was a huge part of that. I had a 1-on-1 with every team member working in the engine to help them set up and get comfortable with using GitHub desktop. I walked them through navigating branches, making commits, making pull requests, what push/pull meant, and other tips and tricks about using the software. These meetings, and ensuring I was available to consult when needed, gave my team a much needed agency that helped Auragami succeed.
Audio Engineering (FMOD)
Setup markers and timeline events
Used parameters for adaptive SFX
Integrated FMOD into unity
Used post processing effects
Setup busses and mixing
Beat and marker tracking in game
Musical Timing
With music being so tightly integrated into gameplay, making sure that the musical transitions between stages were as smooth as possible was a huge focus of mine. By tracking beats and markers from the FMOD, I'm able to ensure stages end, transition, and start at perfect times, even accounting for the time it will take for the stages initial target to reach the player.
Solo Programmer / Designer
A snarky and concise strategy game.
Level Design / Programming
An adventure puzzler about sizing up your problems.