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.

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.