The goal of my bachelor thesis was to provide a system that can easily manipulate time within games made with Unity.
Recently I developed smaller gameplay mechanics to test my system, later it became a prototype for a game. After the ideas for my prototype had become concrete, I had to adapt my system again and again in order to implement all ideas. Initially, it only safed the position of objects, later it could also deal with animations, physics, audio components, nav mesh agents and particle systems. The result was a small 3D Jump’n’Run in which the player has to solve minor puzzles and defeat his opponents using only time manipulation.
The time system
In Unity it is possible to change the timescale, which indicates the speed of time. Thus, for example, simple slow-motion effects are possible. Disadvantage of the implementation of Unity is that the Timescale can not go into a negative values, nor can the individual objects be specifically influenced. My system generates its own timescale for each required object, which allows you to fast-forward and rewind objects in time.
Leveldesign and assets
For the leveldesign, I kept to existing 3D platformer classics. The player starts on a high platform, where the complete level can be surveyed. He is led through the level by a trail of collectible sandbags.
In the beginning, i used only free assets from the Unity Assetstore. After a while, I started gradually to create models and graphics in Blender. In the final project, apart from the characters, as well as some ground textures, all assets are self-created.