About
Riverse was made in my first year at BUAS with a team of 13 people in Unreal Engine 5. We were given reference games to choose from, and we chose Clustertruck.
We had 8 weeks to concept the game, work it out, and create it. The game is a fast-paced platformer where you reach the goal as quickly as possible by jumping from platform to platform, avoiding obstacles, and rewinding hazards with your pocket watch.
Creation I Made
In this project, I created the time rewind feature. The system can group rewindable objects together. When you look at a rewindable object, every other object in the same group highlights, showing that those objects will rewind when you activate the feature.
I chose this approach to give players control over what to rewind, which aligned with our design goal of creating a better player experience.
Objects Test
The PlaySnapshot function ensures recorded data is applied to objects correctly using a circular buffer with indexes. It grabs a snapshot, checks it against world time, and if it has gone far enough back in time, the current snapshot becomes invalid and moves to the next snapshot.
It loops the index and applies the position and rotation with lerping to the object. The video shows a test with many objects recording and rewinding simultaneously to verify the system can handle the load.
Group Test
The RecordSnapshot function records the necessary data from objects that need to be rewound. It creates a local snapshot, assigns all required values, and applies it to the snapshots buffer. It then increases the index and loops it if needed.
The video shows a test with two groups of rewindable objects. You aim at an object in that group, and when you rewind, all objects in that group rewind without affecting the other group.
In the Game
The video shows how the rewind feature looks in the game, with highlighting of groups that can be rewound.
My Thoughts
Creating this feature in Unreal Engine was a fun challenge. I hadn't used C++ in Unreal Engine much before, so figuring out how to implement it was very interesting, and I learned a lot from the experience.