I was made a demo/replay files recording and playback system. For the multiplayer game it's an easy task. The server generates a snapshots and sends them to the clients. So I'm just saving all those snapshots to the file while they are sending to the clients. For the client I have to break the networking part and switched to reading a snapshots from the file instead of network. I also made a free flying spectator-like camera, because I don't have a local player which I'm controlling in a normal game session.