Configuration

Sound effects configuration is currently stored as xml, allowing for simpler source control and maintenance, with the system design incorporating the following features to allow for extendibility:

Configuration Classes and the Adapter Pattern
Although stored as xml, audio configuration is actually implemented via a C# configuration class. Following the adapter programming pattern, an xml-to-configuration class adapter was created. This allows for configurations to be saved in a simple text file, alleviating the dependence on Unity's scene file to maintain audio settings, while providing the middleware necessary to support alternative options (e.g., database) or an administration app in the future.

Sound Effect Actor Hierarchies

To facilitate the development pipeline, budgets and quick functionality turn-arounds, hierarchies were created for different actor types so that sound effects are quickly available and functional as new features are brought online.

A couple of examples . . .

A player character hierarchy:

Ally -> Joseph -> Player Character -> Character

An object hierarchy:

Large Crate -> Small Crate -> Default Object

So, for instance, with Joseph being the first available player character, when Ally was ready to be brought online she immediately inherited and functioned with all the sound effects from the actors higher in her hierarchy. Pitch shifts and other adjustments that make the sounds more appropriate can be configured separately from the rest of the hierarchy. This provides a quick way to get new features up and running and creates an easy opportunity to see if various sfx will work for different characters and objects before putting in the time and expense to develop unique versions.