Nella classe di ingegneria elettrica abbiamo appreso che le linee di segnale non sono ideali, quindi ci vuole del tempo perché il segnale raggiunga l'altra estremità del cavo, e se non teniamo conto di questo, può portare a fenomeni pazzi come :
Immagina di avere un gioco di carri armati, in cui tank1 (giocato dall'Europa) colpisce tank2 (controllato dagli USA). Nel monitor di tank1 vede che tank2 è distrutto, ma ci vuole un po 'di tempo (molto piccolo ma non trascurabile) affinché il segnale raggiunga il monitor di tank2. Quindi mentre il segnale viaggia, può sparare anche il suo cannone virtuale, distruggendo tank1. Il segnale di questo atto inizia il suo viaggio verso tank1, prima che arrivino i dati che dicono a tank2 che è morto. Questo provoca il fenomeno strano, che tank1 ha distrutto tank2, ma tank2 può ancora distruggere player1 (nonostante che tank2 non esista nemmeno).
Ci hanno detto che non possiamo risolvere questo problema in modo hardware, dobbiamo prevenirlo dal lato del software, ma non ci hanno detto come dovremmo farlo, ma sono cortese, quindi come possiamo / risolvono questo problema?
Il problema non è il tempo che trascorre mentre il proiettile vola in aria, ma il primo carro dovrebbe essere distrutto, quindi non dovrebbe essere in grado di sparare (o essere in grado di fare qualsiasi cosa), ma nel nostro problema è in grado, perché l'informazione che ha distrutto non è ancora arrivata. In questo caso dovremmo interpretare la parola sparata come: il proiettile ha avuto un impatto e ha distrutto il carro armato . Quindi il segnale effettivo che verrà inviato all'altro client è che è stato distrutto . Non l'evento in cui il carro armato nemico ha sparato il suo cannone.