Forza Motorsport 7
Audio Programmer
Summary
Presented by developers Turn 10 Studios and publisher Xbox Game Studios, Forza Motorsport 7 brought players to the forefront of racing in 2017 with a plethora of game modes, 32 tracks to race, and over 700 cars to choose from.
I had the pleasure of joining the team during continued development as a dedicated audio programmer from 2018 to 2019, helping to develop and refine the audio aspects of the engine.
Contributions
-
Improved runtime performance data display in the game engine, and added the ability to record data out to XML files for review. Captured data included:
-
Per event voice usage
-
DSP costs
-
Overall memory usage
-
-
Coordinated with Turn 10’s tools and automation team to implement a suite of performance tests into the game engine for regular use.
-
Drafted, designed, and iterated on custom scripts and tools for FMOD Studio to facilitate designer workflow, such as:
-
An event factory tool for creating empty engine events.
-
A tag search tool for reviewing and reporting on current asset production status.
-
-
Communicated with Firelight Technologies to address both bugs and potential new features regarding the FMOD Studio middleware.
-
Updated in house scripts responsible for building and integrating FMOD Studio libraries.
Skills Used
Languages
-
C / C++
-
C#
-
Powershell
-
Windows Batch Scripting
-
Javascript
Production
-
Jira
-
Perforce
-
Scrum / Agile
Programming Topics
-
Multithreading
-
Memory Management
-
Error Logging
-
Build Process
Audio APIs
-
FMOD Low Leve API
-
FMOD Studio API
Call of Duty: Infinite Warfare
Audio Programming Intern
Summary
Infinity Ward's recent addition to the Call of Duty franchise, Infinite Warfare brings players to the future of space combat in its single-player campaign and online multiplayer, and back to the roots of campy horror in its zombie co-op mode.
I had the opportunity to take an internship at Infinity Ward as an audio programming intern. I started on in May of 2016, and was able to stay with the team for the seven months leading up to the game's launch in November.
Contributions
-
Performed maintenance on tools and engine code related to the audio pipeline and other audio features.
-
Added new features to tools and engine code, and occasionally wrote utility scripts at the request of the sound team.
-
Collaborated with the sound team on changes made to tools to ensure the changes met their needs.
-
Proactively looked for bug reports and feature requests to take on while working on my assigned tasks.
-
Helped maintain the code pipeline between the tools and game engine, addressing errors in data transmission while working to improve the existing tool features.
-
Debugged and drafted solutions to audio issues in multithreaded and networked environments, including:
-
Synchronization issues
-
Client-side audio errors
-
Channel starvation
-
Low-level audio mixing and resampling
-
-
Drafted and submitted updated code for microphone detection and connection on PC versions of the game.
-
Assisted other engine programmers with correcting audio bugs with the game's split-screen game modes.
Skills Used
Languages
-
C / C++
-
C#
Production
-
Jira
-
Perforce
Audio APIs
-
WASAPI
-
Windows Multimedia API
-
XAudio
-
Windows Device Topologies
Other
-
C# Metadata / Attributes
-
C# Interop Marshaling
Design Frameworks
-
C#.Net
BLUESHIFT VR
Audio Director
Audio Programmer
Engine Programmer
Summary
BLUESHIFT VR was my junior game project at DigiPen, and my first foray into the world of VR. The game plays as a third person ship builder meets battle simulator, where players could craft space vessels from a variety of armor, shield, thruster, and weapon blocks, and send their fleets against AI opponents. The game was made for the Oculus Rift, using a custom made engine written in C++ as its base.
Unfortunately, the SDK we used was deprecated with the commercial release, making our game unplayable. This, along with the project's final submission and several members graduating, prevented us from porting the game to the new version.
Contributions
-
Acted as the game's audio director, working with a team of 3 sound designers to realize te game's audio vision.
-
Wrote, tested, and maintained an audio engine in C++, using the Audiokinetic Wwise API.
-
Created basic audio emitter, cue, and microphone components for our game engine's editor.
-
Implemented audio assets using a mix of Wwise banks, our components, and our engine's runtime C++ scripting.
-
Assisted the audio team in final stage mixing before project submission
-
Created, tested, and implemented a page based memory manager to control allocations throughout our engine.
-
Drafted and coded a generic input system that featured runtime key binding, loadable preferences, and utilized the template method pattern to facilitate adding support for new devices.
-
Provided a thread safe error logging tool that let the other programmers safely display errors text or log errors to report files, recording other useful data such as timestamps and current call-stack.
-
Headed a small QA team during the first few months of development in order to test the engine's core systems.
Skills Used
Languages
-
C++
STL
-
Custom memory manager integration
Audio Middleware
-
Audiokinetic Wwise
Production
-
Slack
-
Git / Tortoise Git
-
Agile
Other APIs
-
XInput
Audio
-
Asset integration
-
Asset list management
-
Mix finalization
Eyes in the Dark
Audio Programmer
Sound Designer
Engine Programmer
Summary
Eyes in the Dark was my Sophomore game project at DigiPen, and also my first chance to work on a project with a larger team for more than one semester. It plays as a survival horror, in which the player must escape from a nightmare infested facility alive.
When we started, we had high hopes of going to competition and making our mark. The project didn't quite reach our dreams, but it still stands out to me as one of my most educative team experiences and prepared for every project since.
You can download and play the game here.
Contributions
-
Integrated the FMOD Studio middleware into our custom game engine.
-
Created basic sound emitter and microphone components to facilitate asset integration in our game's engine.
-
Ran dialog recording sessions, editing and integrating the lines in game afterward.
-
Recorded foley audio for a small sound library, which was then used for the sound design of the game.
-
Performed asset integration throughout the game's various levels.
-
Wrote a simple input engine to accommodate mouse, keyboard, and gamepad, allowing savable key bindings.
-
Participated in gameplay coding and some minor level design.
-
Recorded footage of the game and mixed with our audio assets to create our promotional video, as seen above.
-
Oversaw weekly playtesting sessions for new gameplay mechanics, levels, control schemes, and engine effects.
-
Presented the game at the Seattle Intel Buzz Workshop in front of an audience of roughly 50.
Skills Used
Languages
-
C++
-
Lua
Audio Skills
-
Asset list management
-
Voice Recording
-
Foley Audio
-
Asset Integration
-
Mixing
Audio Middleware
-
FMOD Studio API
Audio Tools
-
Logic Pro 9
-
Pro Tools 10
Other APIs
-
XInput
Production
-
Hip Chat
-
Git / Tortoise Git
-
Agile / Scrum