EDuke32 not compatible with default demos?
#1 Posted 15 April 2014 - 08:32 PM
However, the demos do not play in EDuke32 for me. I've seen a few video of other people using EDuke32, and the demos don't load in those either. So are the original demos incompatible with this source port? If not, how do I enable the demos?
Thanks.
#2 Posted 15 April 2014 - 08:35 PM
#3 Posted 15 April 2014 - 08:42 PM
#4 Posted 15 April 2014 - 09:07 PM
Micky C, on 15 April 2014 - 08:42 PM, said:
1.3d demos are not compatible with 1.4 or 1.5 versions of the game. It's just how the engine works.
This post has been edited by Lunick: 15 April 2014 - 09:09 PM
#5 Posted 15 April 2014 - 09:18 PM
#6 Posted 15 April 2014 - 09:53 PM
#7 Posted 16 April 2014 - 08:36 AM
#8 Posted 16 April 2014 - 08:58 AM
The v1.4 demos also play, and they don't go out of sync as far as I could see.
#9 Posted 16 April 2014 - 12:11 PM
#10 Posted 16 April 2014 - 12:31 PM
I would rather put work into bringing back the original demos. Maybe it would only take a little REing of the the 1.5 EXE to find the difference.
#11 Posted 16 April 2014 - 12:47 PM
Hendricks266, on 16 April 2014 - 12:31 PM, said:
So we have a shitty format? I don't see the problem.
#12 Posted 16 April 2014 - 01:53 PM
#13 Posted 16 April 2014 - 06:38 PM
#14 Posted 17 April 2014 - 02:37 PM
Bottom line: reproducing Duke3D 1.5 demos is infeasible without a lot of archaeological work.
#15 Posted 17 April 2014 - 02:43 PM
Hendricks266, on 16 April 2014 - 08:58 AM, said:
While it's far from being ideal, it wouldn't be so bad if Eduke32 could read the "input logs" from v1.4 or v1.5 demos.
#16 Posted 18 April 2014 - 01:11 AM
Hendricks266, on 16 April 2014 - 01:53 PM, said:
I believe what Hendricks is saying is that in the old version of Duke, if you edited the of map E1L1 to block off the vent on the roof, the player would end up running around the roof top like an idiot.
Where as in eduke it would use the data from a save state which would also include the map.
At least this is the way I interpreted it and it would make sense if the data included the map so that you could share the demo files even easier without needing the original map.
This post has been edited by The Commander: 18 April 2014 - 01:11 AM
#17 Posted 18 April 2014 - 02:47 AM
Fox, on 17 April 2014 - 02:43 PM, said:
Please read what I said above (emphasis added):
Quote
"Code" here refers to that which is significant for the evolution of the game state. This includes C and CON game logic, as well as engine functions such as those effecting movement of an object.
Attempting to make Duke3D 1.5 demos run properly[*] under EDuke32 would require an overwhelming amount of mostly boring work, basically tracking down every difference that has the potential to alter game state evolution. The result would not be pretty.
[*] meaning, not desyncing after the first seconds of playback. Surely you wouldn't care for such an "input log reading" functionality, would you?
The Commander, on 18 April 2014 - 01:11 AM, said:
This is pretty much what EDuke32's demo format does. In fact, it primarily is a savegame: you can rename a demo to *.esv and load it just fine. Besides the initial state, the modern demo format can record diffs of that state at constant intervals (such as every 30th tic), which can be re-applied at playback time to combat minor cases of desync.
#18 Posted 18 April 2014 - 06:00 AM
#19 Posted 18 April 2014 - 07:22 AM
#20 Posted 18 April 2014 - 10:53 AM
#21 Posted 18 April 2014 - 12:05 PM
Chris12, on 18 April 2014 - 06:00 AM, said:
I'm not sure I understand the question. When you leave a started game idle, Duke will crack his knuckles at certain intervals and say "What are you waiting for, christmas?".
Trooper Dan, on 18 April 2014 - 07:22 AM, said:
Distribution-wise, yes, I think packaging recorded demos with EDuke32 wouldn't be a good idea; that's not in the scope of the project and they would have to be updated from time to time. There are two reasons demos become unplayable with time. One is the mentioned code changes which make playback degrade incrementally and may desync a demo "catastrophically" when not "nudged into place" again by applying the diffs. The other is that occasionally, C structures that are also written to disk change, and as a consequence old savegames/demos become unreadable unless conversion functionality were to be written. (Not worth the effort, IMO.)
#22 Posted 18 April 2014 - 11:59 PM
For example you could import EDuke32's recording code into an older version of the engine and ultimately convert the demos.
#23 Posted 24 April 2014 - 10:34 AM
TheZombieKiller, on 18 April 2014 - 11:59 PM, said:
This amounts to the same thing as playing back the old demos on EDuke32. They would desync badly in a matter of seconds to minutes.
Quote
I doubt anyone has the motivation to backport modern code into ancient EDuke32 versions, sorry.
Again: the hard part is not the format. It's the fact that minor discrepancies between the game state evolution in the recorded game and played back demo can have an "avalanche" effect rendering all playback from the first desync nonsensical.