Rhys, first I can tell you that I haven't figured out any of the simulation PDUs yet. I don't even know what the simulation PDUs would be... I'm just taking a wild guess here: maybe TransmitDataBlobPDU, BroadcastDataBlobPDU, RSGZWrapperPDU, etc. Actually, LogAvatarActionPDU looks relevant...
I have not gotten action queues (pie menu actions) working, or buy/build mode working, in -NoNetwork mode; I'm guessing that the client would normally send these actions to the server, and the server would later respond that "this user performed this action", at which point the client displays the action; and so since we're in -NoNetwork mode, I think the client simply does not send any messages to the server (not even an emulated server) and does not receive anything back from the server.
I am guessing that the server normally sends to the client: "Exactly 0.250 seconds have elapsed since I last talked to you. During that time, these players have made these actions.", so the client applies those actions and runs 0.250 seconds' worth of simulation. (
As I said in the previous thread, my guess is that if the connection between the server and the client ever pauses for a second, the client predicts 'no action'; if it's wrong, it rewinds the simulation, applies the changes, and fast-forwards.) My simulation patch (
here) simply causes the client to run the simulate function to catch up to the current time many times per second. (The client already calls a function many times per second which does "If the simulation is currently behind the 'current time', run the simulation until it is no longer behind" without my patch, but with a 'current time' value that never changes; my patch modifies the function so that the 'current time' is updated [synchronized with your computer's QueryPerformanceCounter time] right at the top of the function.)
Offredo95: Sorry for being a little disorganized. I think
the Maxis Protocol page is a better place for TSO-SE news than the Niotso Blog. The page *is* the news.