2012-07-11 12 views
8

Ho letto la valvola article on multi-player networking che è stata adattata dal documento 2001 di Yahn Bernier chiamato Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization. Sto facendo un gioco in tempo reale multi-player utilizzando un server collegato a node.js clienti attraverso socket.io e ho alcune domande per quanto riguarda i principi di seguito dettagliate:Principi del gioco multiplayer in tempo reale per TCP e Node.js

Entity Interpolation

impedisce [interpolazione] il movimento nervoso che ciò comporterebbe lo in genere comporta il buffering degli aggiornamenti del server, quindi la loro riproduzione con gli intervalli correttamente interpolati tra. Può anche proteggere contro glitch causati dalla perdita di pacchetti.

Client-Side Prediction

previsione è la nozione del cliente predire gli effetti delle azioni della del giocatore locale senza attendere il server per confermarli. Lo stato previsto di un'entità viene verificato rispetto ai comandi del server quando arrivano a finché non viene rilevata una corrispondenza o un'errata corrispondenza.

Lag Compensation

compensazione Lag è la nozione di server utilizzando la latenza di un giocatore per riavvolgere il tempo durante l'elaborazione di [input dell'utente], per vedere ciò che il giocatore ha visto quando il comando è stato inviato . In combinazione con la previsione, la compensazione del ritardo può aiutare a combattere la latenza della rete al punto di quasi eliminandola dal punto di vista di un utente malintenzionato.

  • fare i principi si applicano a TCP come fanno a UDP e ci sarebbero differenze di attuazione? Posso vedere che l'interpolazione dell'entità non avrebbe bisogno di proteggere dalla perdita di pacchetti, ma questo è tutto.

  • Posso persino comunicare tra un server e un browser Web e viceversa utilizzando UDP e Node.js?

  • Poiché la carta ha più di un decennio, questi principi sono ancora in uso o sono comparse altre tecnologie?

Qualsiasi aiuto sarebbe molto apprezzato.

risposta

2
  • I principi si applicano a TCP come fanno a UDP e ci sarebbero differenze nell'implementazione? Posso vedere che l'interpolazione dell'entità non avrebbe bisogno di proteggere dalla perdita di pacchetti, ma questo è tutto.

Anche se non dovrai affrontare la perdita di pacchetti, dovrai affrontare tempi di transito più lunghi. TCP è più lento di UDP e dovrai attenuarlo nel multiplayer in tempo reale. Penserei che questi principi si applicano ancora a un livello fondamentale.

  • Posso persino comunicare tra un server e un browser Web e viceversa utilizzando UDP e Node.js?

In generale, non ancora. Almeno non senza una qualche forma di estensione o plugin per il browser: i WebSocket usano TCP. Detto questo, arriverà WebRTC (e più specificamente l'API PeerConnection). Quando i canali di dati sono implementati, le comunicazioni UDP dovrebbero, in teoria, essere possibili.

  • Poiché il documento ha più di un decennio, questi principi sono ancora in uso o sono comparse altre tecnologie?

Sarei molto sorpreso di sapere che non sono più in uso - l'articolo che hai citato è praticamente necessario leggere per i programmatori di giochi. Idem per le nuove tecniche che non appaiono, anche se non ho prestato molta attenzione agli sviluppi in questo settore da diversi anni.

Problemi correlati