Experimental Theme : Twin Stick Shooter with a twist


The twist was inspired by the animation I recently watched, JOJO. The boss Dio could stop time, which I regarded as a remarkable ability. So the twist in the game is time control. Also, the rewind is inspired by Tracer in Overwatch.

This game is a survival game, which requires players to kill enemies and stay alive as long as possible. There is no health pack in this game, so the only way to recover HP is to rewind in proper timing. Player can also slow-down the time to dodge enemy bullets.

Some tips to the game are to remember to use slow down time ability to prevent much damage.

Shooting, Enemy, Particle effect

Slow-down time ability

Time rewind ability, back to 3s before

GitHub Link: https://github.com/BosonHBC/Exp5.TwinStickShooter
C# / Unity3D

My Contribution

This is a solo project so everything in this game has done by me. And I started to use the new version of post-processing stack to make some cool effect when player is using time ability.

Some tricky parts happened in Time manipulation.

Slow-down time ability

Slow-down time speed script;

To slow down time, setting the time scale is not enough, which will incur game lags. To prevent that, I scaled down the fixedDeltaTime too so that all processes that need to be calcuated by Time.fixedDeltaTime will not be effected by the reduction of Time scale.

Rewind Ability

Rewind ability script;

The basic logic of this function is to Record data when player is not rewinding, and Rewind when player presses “E”.
I store datas in serveral lists. (List<Vector3> positions, List<int> healths)
When the count of list is larger than the capacity, pop the last data stored in the list and push the new one into the list. It performs like a queue structure.

While rewinding, poping out the latest data and set it to its source. The rewind will stop when the count reach to zero. fMaxRecordTime / Time.fixedUnscaledDeltaTime determines the list maxium capacity and maxium rewind time. In this way, the rewind time should be the same as the record time.

Screen shot and Gameplay Video

Time Control Zone