I read this: How to design a replay system But it don't really answer my question.
My game is built with the client "view" of the game as a separate program from the server "model" and "controller". (a bit like a mmo, or any multiplayer game built this way). The server side is always the "truth" of the game, it only accept action requests as input from the clients and output events and "current state" messages.
The game model and rules are fully deterministic with a fixed "tick" update cycle, so on the server side I can record both the events sent to the client views, and the action requests. Both are associated to specific cycle number.
The question is: in this case, to setup a replay system, should I use the input, or user action requests (as suggested in there) or the events?
It looks to me that both would give exactly the same output. The only differences I can see are:
- Events gives the real output while action requests have to be processed to give events.
- Action requests might be far less data to record.
Are there other things to consider?