Page 1 of 1

Old Replays

PostPosted: 28 Mar 2015, 11:34
by Ix10n10n
Is there any possibility to watch older replays of KaM?

Re: Old Replays

PostPosted: 28 Mar 2015, 11:57
by Da Revolution
You can only watch them on the version of the remake they were played on

Re: Old Replays

PostPosted: 28 Mar 2015, 17:14
by Krom
Replays record only the initial games state and array of commands issued by player. If there's even a single difference in how game handles these commands the replay quickly leads to an invalid game state.
Thus, Da Revolution reply is absolutely right - "You can only watch them on the version of the remake they were played on"

Re: Old Replays

PostPosted: 28 Mar 2015, 22:37
by Ix10n10n
Replays record only the initial games state and array of commands issued by player. If there's even a single difference in how game handles these commands the replay quickly leads to an invalid game state.
Thus, Da Revolution reply is absolutely right - "You can only watch them on the version of the remake they were played on"
uff ... this is not that convinient. I thank you for your answer. Hoped there were another way.

There are many interesting Replays out there which cant be seen anymore :(

Re: Old Replays

PostPosted: 28 Mar 2015, 22:43
by Ben
Which release do you need?

Re: Old Replays

PostPosted: 29 Mar 2015, 08:10
by Krom
Replays are like so, because of the wast amount of data that gets processed in the game. Think of precisely recording hundreds (if not thousands) of units changing between actions 10 times a second, not including houses and other entities (arrows, trees, terrain state!, etc.). The amount of data we would need to record would be huge:

(2000 entities on a map * state(x, y, sprite) + terrain state * map_x * map_y * state(height, fields, borders)) * 10 frames a second = (2000*6+256*256*3) * 10 = 2086080 bytes of raw data per second

Consider we are smart and save only deltas of terrain and entities, leaving just 12kb of dense data per second - that still makes it a 43mb per game.

We also need additional info stored by Units (hunger level, 1 byte for each unit for each minute or so) and Houses (ware count inside for each house for each second or so) and settings (ratios) and FOW revelation (this is another map_size^2 bytes) and either games logic or record statistics to display in the statistics menu and game results (unit/house count each 10 seconds or so).

Compared to that, what we have now, recording just the initial state of the game and changes that players add to it is a very convenient solution, with just 2 minor cons: inability to navigate replays timeline (no FF, no jump-to) and replays being locked to a version of the game the were recorded in.

Re: Old Replays

PostPosted: 29 Mar 2015, 08:31
by sado1
I'm fairly sure the answer will be "hell no", but could you explain shortly why it wouldn't make sense to add some sort of "replay engines" of previous releases? Or simply bundle some .exe files that would be stripped KaM Remake versions made only for watching replays.

Re: Old Replays

PostPosted: 29 Mar 2015, 11:13
by Krom
That is a lot of work, but actually doable by someone who has 2-6 months of free time (unlike me and Lewin).

There is a gGameApp that is a general game engine, that could run KaM or any other sort of game (race sim, shooter, etc), at least thats the plan behind it. gGameApp instantiates a gGame, which is a KaM game session. The game happens within gGame object and in theory it's possible to allow r6720 to instantiate r5503 gGame, given that all ends of the gGame are tied into appropriate ends of gGameApp (for example gui and resource interaction).

Biggest problem in that case would be to refactor old gGames of r4179 and earlier, that were not properly designed to be replaceable. Even r6720, being planned to be like so, we never tested if it really would work in such a way. IIRC gGameApp/gGame split happened not that long ago. So the biggest part of work would be to fork from e.g. r4179 and refactor it according to r6720 design without breaking the replay consistency. It may seem like a doable affair, but it gets very complicated with each additional detail, really quickly.