Possibility of replays

I have been playing an excellent open source game called Battle for Wesnoth. One of the neat features of the game is the ability to save replays of a particular scenario. I know that a H3 scenario is usually significantly longer than a single Wesnoth scenario, but I think the idea of a VCMI H3 replay facility might be really neat. If it could be kept to a reasonable size (probably the biggest challenge) and the player/s allowed it, it would be neat to be able to post full replays of an entire scenario. It could also record whether in-between (ie. not most recent) saves have been loaded (maybe with a prompt to prevent accidental incorrect loadings), so those replays that didn’t use save/reload would be worth more in the eyes of other players.

Could it be feasible to have something like this in a 1.0+ release of VCMI, maybe with a more advanced console recording what happens in the map (without actually recording tons of video and sound)? I certainly like the idea of replays that take in more than just battles, but I don’t know if reasonable sized replays of big maps would be technically feasible even with only recording commands that can be replicated in VCMI’s H3 engine.

Developers, are complete scenario replays in a later version of VCMI worth thinking about, or do you think they are technically unfeasible in the H3/VCMI context? (ie. Do you think they are best left to replays of individual battles?)

I look forward to your replies! :slight_smile:

Best regards,
Steven.

Actually implementation of replay mechanism is one of recent topics in my discussion with Tow about future of VCMI development. The best option we could think of is logging all commands sent between client and server applications. It’s already done to some extent but only certain part of information is saved to logs (not enough to replay the whole scenario).

Size is not the biggest challenge - in fact the biggest problem would be just to make everything work. Current client/server architecture is very good for implementation of replays.

I think replays could be implemented during 0.8x series of VCMI - they could be helpful for testing too.

Definitely yes. But you should be aware of certain limitations that will be hard to overcome (it will be very hard to implement ‘go back/rewind’ feature - there would be just ‘start from beginning’, ‘play’ and ‘pause’ (and maybe ‘fast forward’)).

Would it be possible to go back to the start of a turn, if a certain entry was designated as “start of turn”?

Best regards,
Steven.

The problem of going back is caused by the most obvious form of storing replays - save of the game at the start + messages sent by server to clients. It means that we just know the state of the game at the beginning and current state. ‘Un-applying’ changes described by server messages would be very hard to implement. So there are just two ways of going back: reading a save (eg. we could store the save of the game at the start of new turn) or reading start save and going forward to specified moment. Both are possible, but I’m not sure if any of them appears in first implementation of replays.

That’s fine. =) Being able to go back by a number of turns is nice to have, but not essential, and if it is feasible it can come a little later. Replays such as you and Tow were already discussing for the 0.8x series would be a great addition and would help greatly in testing. :slight_smile:

Best regards,
Steven.