By Tiago Inácio
This website analyses and demonstrates an approach to game audio implementation for games with time-reversal mechanics. This approach is meant to give game developers and game audio designers an implementation method that accurately plays back reversed sounds during time-reversal situations in games, giving a more realistic perception of time being reversed.
This approach can be freely integrated into any game project, as long as the game and audio engine meet the feature requirements. In order to implement this approach into your project, please refer to the CONTACT section below.
The explored approach is based on the Masters Final Project developed by Tiago Inácio, for the MSc in Sound and Music for Interactive Games of Leeds Beckett University, and is referred to as the "proposed system" throughout.
The proposed system was inspired by previously released games with time-reversal mechanics, and the fact that a majority of these use a common, and somewhat simple audio system for time-reversal situations.
Here are a few examples of these previously released games:
Blinx the Time Sweeper
Timeshift
Grid 2
Prince of Persia: Sands of Time
Rewind
Stretchmo
All of these examples include the following core elements to their time-reversal audio:
An initial "impact" transition sound when time-reversal starts;
A looping "rewind" sound for the duration of the time-reversal;
A final sound to transition back to normal, non-reverse gameplay.
In some of these examples, such as in Blinx, some actions during time-reversal are represented through audio. Usually, this audio is either not reversed, or is not synchronized with the visuals. This is due to the difficulty of determining when the reverse audio should be triggered, and this is one of the focus points of the proposed system.
The proposed system gives developers and game audio designers the option to add accurate reverse sounds to their games. The main focus points of the system are:
Synchronism
The system focusses on playing the same sounds played prior to the time-reversal activation, but in reverse. By calculating the correct playback time for the reversed sounds, the resulting audio plays back in sync with the visuals, regardless what triggers the time-reversal.
Flexibility
The system calculates the playback timing of the reversed sounds. This means, the audio designer has free range to create the sounds for their project as they see fit. The design of the reversed sounds can even differ vastly from their non-reversed counterparts.
Adaptability
The system can be adapted to any project, allowing for additional features to be added, removed or modified as the game developer sees fit. Adapting the system is crucial for its functionality since its current implementation method is based on Unreal Engine 4's Blueprints system, and therefore is built around the Blueprints' workflow. However, the concept of the system remains unchanged, and is compatible with any engine that plays back sound and that is able to perform relatively simple mathematical calculations.
For the proposed system to work, the audio designer has to define which sounds should be reversible, and which should not. All of the game sounds can be reversible, as the system works on a per-sound basis.
Each reversible sound requires its own array, where the system records a timestamp every time the sound is triggered.
When time-reversal is activated, the correct trigger time for the reversed versions of the sounds are calculated by the system, creating a separate timeline for sounds. This means that the reversed sounds are independent from any animations or other potential triggers.
Longer sounds that are interrupted can also be reversed properly by calculating their correct playback starting point. If a 7 seconds sound is interrupted at second 6, for example, the reversed version starts its playback at second 1.
Here are a few examples of the system applied to a prototype:
STEM music reversing
Player actions reversing at normal speed
Time-reversal with repetitive sounds
Player actions reversing at fast speed
Player actions reversing at slow speed
You can test out the above prototype of the proposed system yourself!
It was developed using Unreal Engine 4's Blueprints system, and is merely a proof-of-concept prototype, meaning that you will inevitably encounter bugs and issues that might cause unexpected and unwanted results in the game audio. Please keep this in mind during testing.
The prototype demonstrates the following features:
Reversal of player-triggered sounds;
Reversal of reactionary sounds (hitting a black cube, for example);
Reversal of music based on randomly selected STEMs;
Reversal of randomly triggered sounds (Coyotes barking);
Reversal of highly repetitive sounds.
Here is the link to the prototype:
WARNING:
When running the .exe file from the downloaded .zip, you might encounter a windows error telling you not to run it. By pressing "More info", you can press the "Run anyway" button to play the prototype.
To exit the prototype, simultaneously press the keys "ALT" and "F4".
The requirements for the proposed system to work depend on the complexity of your needs. For the features included in the prototype, the game engine needs to be able to work with arrays, and the audio engine has to be able to play sounds from a specific point in their duration. The latter is to achieve accurate playback of sounds interupted by time-reversal. Additionally, the audio engine has to be able to playback sounds at different speeds, in order to represent the different time-reversal speeds.
More complex features can be added depending on what the game and audio engine are capable of. For example, if you want your game to be able to change the reversal speed actively, your audio engine must be able to change the playback speed in real time.
All features can be discussed by contacting me through the CONTACT section below.
Q: How can I implement the proposed system into my project?
A: Contact me! You can do so through the CONTACT section below.
Q: Does the system reverse the audio samples automatically?
A: The reversing of the sounds can work in two ways:
The audio engine plays the reversible sounds backwards, if it technically can;
Reversed versions of the reversible sounds are imported to the project, and played back when needed.
Q: What is the price?
A: Implementing the system into your own project is currently free, but credit is always appreciated!
Q: Can you share the proposed system prototype project files?
A: The prototype uses a UE4 plugin bought through the Unreal Engine Marketplace, so sharing the project files as they are is unfortunately not possible. However, I am more than happy to discuss with you exactly how the prototype works, and give you some file examples of the audio implementation itself!
Q: What UE4 plugin did you use to reverse the objects in your prototype?
A: Urszula Kustra's Reversing Time System
If you would like to implement the proposed system into your own project, contact me and we can discuss the procedure!