QUOTE(A_of_s_t @ Jul 19 2006, 07:52 PM)
Yoni, why arent you answering ma pms? Am I bugging you?
But, I dont get why the desync occurs Yoni45. And your idea to stop it.
[right][snapback]527167[/snapback][/right]
There's no question in the last PM? =/
Anyway, for the desync:
Say you type a message "hello", across to all the players, and theres a condition for detecting u saying "hello"...
the "hello" pops up on ur screen instantly, but only pops up on the other players' screens a split second later... The game doesn't pause for the message to get across, and the delay can become longer if theres some lag in the game...
The text messages that are sent between players aren't send in sync with the game, if u send a message and start making a hydralisk, you'll see the message as soon as the hydra starts being built, while the next player might see the message and the hydra will be slightly built already (2% for example, but thats 2% of a hydra's build time in time difference)...
So, if the condition runs within that time difference, this is what happens:
P1 says "hello", "hello" appears instantly on his machine, therefore the condition is satisfied, and say the action is to create a wraith, and a wraith gets created...
In the meanwhile however, P2 still didn't recieve that message, and therefore, the trigger didn't run for him, and the wraith shouldn't be created as far as his game is concerned, so the 2 games have 2 different results, which puts them out of sync, and drops out of the game whoever isn't in sync with their own...
The idea in my method, is that Switches are not something that is checked by the different computers playing for sync...
Each player's switches could be different, and nothing would matter... Only once something acts upon those switches (if switch 1 is on, make a wraith), and those switches are not in sync, THEN the game desyncs (only those that have switch 1 on make a wraith, while those that do not don't)...
So the idea is that instead of making a direct action based off of text based triggers, we simply turn on a switch instead, and only check for those switches every certain time period...
This way, by the time the switches are checked, all the players will have had a chance to "see" the message and turn on the switch...