@Solais, at this point, I'd really dwelve into the fundamentals of coding practices, because currently you're theorizing a black box. Especially as a dev (although I don't know what area you specced to).
Netcode is complex, but if it's properly set up, then it's actually quite easy to maintain. Agaion, OpenRA example - netcode works almost flawlessly (it's more stable) because the core setup is fixed, asin actors have traits attached to them and they have an activity order either populated by orders (both explicit aka player input or implicit, like say automatic harvester behaviour) and you only have to record the orders happening, because even UI things like production is an order to the producing actor which gets resolved by the production trait to do it's job. This also means that recording the orders gives you replays. Traits can also have internal variables stated synced for desync detection - the setup can mean that the variables never need to be sent over between the clients directly, just their hash compared, since all the code modifying them should be predeterminated (which both trait code and order resolution should be).
Ofcourse there can be times when this goes off - say, by using the wrong random number generator (because there's one for the rendering, unsynced between the cliernts and one linked to the world state which is synced and will yield the same values between them) - but then the result will speak for itself. I won't deny, I had this issue when I started creating the AS logics plugin for OpenRA, but I've learnt that lesson since.
Edited by Graion Dilach, 30 December 2016 - 01:37 PM.