by Kate » Sat Jul 28, 2012 5:29 pm
I'll be honest with you. Legacy in general is a huge Gross Hack. Even SoM, the person who implemented Legacy's 3D floors, admitted that it was entirely a huge gross hack. I'm not even joking.
What they probably did was have it transfer an initial gamestate silently, like a mini-save, and hacked it together so that one of the peer connections did a synchronization. The problem is that ZDoom's internal systems are more complex than Legacy's, and relies on more than just the state of actors and floors, having to run ACS, keep track of the level sector properties, the separate name-based RNGs as well as the main RNG, writing the state of user variables, and so on and so forth.
It can be hacked in, sure, but it would probably amount to something horrendously buggy and an absolute nightmare to keep track of, and it would take a long, long time to iron out the bugs. Even then, there are still things which can desync the game even now that would have to be dealt with first because that would wind up not transferring properly and causing an instant desync on connect, and not to mention ZDoom would need a MAJOR code overhaul to allow it to switch the states of certain RNG-related and game-related variables to allow it to go from single-player mode to netgame-mode so that you can do things like connect from the console, also the ability to load saves straight off of the network stack as opposed to using files, then utilizing that code.
It's a really horribly inefficient way of doing things compared to a true CS structure.
I'll be honest with you. Legacy in general is a huge Gross Hack. Even SoM, the person who implemented Legacy's 3D floors, admitted that it was entirely a huge gross hack. I'm not even joking.
What they probably did was have it transfer an initial gamestate silently, like a mini-save, and hacked it together so that one of the peer connections did a synchronization. The problem is that ZDoom's internal systems are more complex than Legacy's, and relies on more than just the state of actors and floors, having to run ACS, keep track of the level sector properties, the separate name-based RNGs as well as the main RNG, writing the state of user variables, and so on and so forth.
It can be hacked in, sure, but it would probably amount to something horrendously buggy and an absolute nightmare to keep track of, and it would take a long, long time to iron out the bugs. Even then, there are still things which can desync the game even now that would have to be dealt with first because that would wind up not transferring properly and causing an instant desync on connect, and not to mention ZDoom would need a [b][i]MAJOR[/i][/b] code overhaul to allow it to switch the states of certain RNG-related and game-related variables to allow it to go from single-player mode to netgame-mode so that you can do things like connect from the console, also the ability to load saves straight off of the network stack as opposed to using files, then utilizing that code.
It's a really horribly inefficient way of doing things compared to a true CS structure.