top of page
Haberdashers
Play Video

About

HaberDashers is a console-style arcade (kart) racer for the PC in which players control miniature humanoid inhabitants of an everyday home, racing past outsized household items and through rooms as they compete against human and AI opponents with both driving skills and item pick-ups.
Download on
Role:               Audio Programmer
Team Size:      56 (17 Programmers)
Engine:           Unreal Engine 4
Time Frame:   4 Months
Release:         May 2020
Platform:         PC
SteamLogo.png
About

Roles and Responsibilities

I was the sole audio programmer on the team and worked with 2 designers to implement all audio in the game.

Responsibilities

  • Working with the designers about what tools and features were needed

  • Creating the tools to aid the designer's workflows and allow them to efficiently place and tweak audio in the game

  • Research on the audio engine in Unreal Engine 4

  • Reaching out to other departments to coordinate integration between their systems and the audio tools

  • Towards the end of the project, I was able to jump onto the UI team to help solve problems and help it look more polished

Roles and Responsibilities

My Contributions

Environmental Audio Player

The purpose of this tool was to give the designers a quick and easy way to play sounds in the environment and provide different functions. I created a template blueprint that allowed for control over various sound settings and could be used as a drag and drop into the environment.

Features:

  • Looping sounds

  • One Shot sounds played on trigger

  • Input for attenuation settings that can be specified for each sound

Roles and Responsbilities
My Contributions

Kart Audio Handler

With the kart blueprint being the centerpiece of the game, many different departments needed access to it so that different features could implemented at the same time. My department decided to try to make our tool as modular as possible so that we would rarely have to access the kart blueprint as little as possible.

 

How we made it modular and benefits:

  • Holds a reference to the kart blueprint so that we could work in tandem with the other departments

  • Most of the logic was broken down into readable and maintainable functions to be called by the kart blueprint

  • The main kart blueprint was only accessed when we needed to add calls to events in the kart audio handler

  • As powerups were being created, the system allowed for easy integration and took little time to implement new sounds

Environmental Audio Player

Pan Audio

In Unreal Engine 4.23.1, there was no clear and easy to pan audio. This was important to have as Haberdashers is a couch co-op multiplayer game and we wanted to have the audio separated based on where each player was on the screen. With the discovery of an Experimental Audio Engine in Unreal, I was able to activate it and implement the function below.

  • The panning tool was used with almost every sound that was related to the kart

    • In multiplayer, we needed to ensure that the audio was passed through to the correct speakers​

  • How it works:

    • The function takes in the kart ID to decide which side the audio will be panned to​

    • The source effect pipeline is update with predefined values

    • The source chain is updated to the correct chain and the audio is panned to the speakers

Kart Audio Handler

Post Mortem

What Went Well

  • The team was able to create a shippable game in an online environment

  • Transition from in-person development to purely virtual development

  • I was able to learn quickly and provide tools as they were needed

  • I was able to solve any problem that arose or provide mitigation ideas

  • Cross-departmental communication for integration and implementation went smoothly

What Went Wrong

  • Pipelines took awhile to setup properly

  • Some feature requests were not communicated early enough which lead to a few late nights

  • Audio feedback was a little disorganized after switching to an online environment which affected the departments ability to iterate effectively

  • Time spent combing through Unreal Engine documentation took time away from the implementation of tools

What I Learned

  • Communication in a large team is vital and that I shouldn't be afraid to over communicate

  • Being flexible is important so that I can pivot at a moment's notice to work on any problems that arise last minute

  • Showcase work often so that the team can give input and everyone knows what you've been working on

  • The transition to working remotely provided experience to adapting to changes quickly and how to communicate effectively when the team isn't in a physical space

Pan Audio
bottom of page