Questa è una domanda che vedo molto. Molte persone dicono che UDP è sempre meglio per i giochi in tempo reale rispetto a TCP. La mia comprensione è che TCP tenta di rinviare i pacchetti più e più volte fino a quando l'altra parte li ottiene, mentre a UDP non importa.
La maggior parte delle cose che ho letto è che UDP è un must per qualsiasi gioco in tempo reale e TCP è terribile. Ma il fatto è che la maggior parte delle persone sembra implementare comunque una qualche forma di TCP su UDP. E ho anche sentito che la differenza tra i due è trascurabile dato che non siamo più negli anni '80 e che Internet è ora abbastanza veloce e affidabile.
La mia comprensione generale qui è sbagliata? Qualcuno può chiarire questo per me?
t0che non viene mai ricevuto, quindi invii il nuovo stato del mondo in quel momento t1, non devi aspettare che il client riceva effettivamente il primo pacchetto, che è già obsoleto.
internet is now pretty fast and reliableNo non lo è. La larghezza di banda è aumentata notevolmente, sì, ma la latenza è ancora piuttosto elevata. Con TCP puro, è necessario che il tempo di tick del server sia superiore alla massima latenza economica, a meno che non si esegua lo compressione dei pacchetti, il che è meglio eseguire sul client tramite UDP. Il problema è che alcune informazioni in un gioco devono essere affidabili, mentre altre devono essere veloci. I protocolli personalizzati su UDP lo consentono, così come un mucchio di quelli proprietari che ti danno tutto ciò di cui hai bisogno in un bel pacchetto.