Sto lavorando a un progetto per imparare node.js e stavo cercando alcuni suggerimenti su come gestire la sincronizzazione dei dati utente in tempo reale .Design pattern suggerimenti per la sincronizzazione di dati utente multipli in un gioco online in tempo reale
Supponiamo di avere una mappa rettangolare 2D (circa 600x400), con un numero di giocatori che occupa posizioni x, y su quella mappa. Ogni utente può navigare con i tasti freccia e interagire con gli altri in qualche modo base. Dato che questo sarebbe riprodotto su HTTP, quale sarebbe il miglior schema di progettazione in termini di gestione e sincronizzazione dei dati dell'utente per offrire un'esperienza più fluida e fluida?
mi viene in mente diverse opzioni, ma apprezzerei un po 'di idee/chiarimenti:
client invia i dati di posizione al server, il server distribuisce tutte le posizioni a tutti i clienti, schermo è reso con il risultato. Ripetere. Il lato negativo sarebbe che il lato client è in ritardo rispetto al tempo necessario per un round di dati, ma il lato positivo è che sono sincronizzati con tutti gli utenti.
Il client esegue il rendering dove pensa che sia costantemente, invia i dati posizionali al server, il server distribuisce tutte le posizioni a tutti i client e quindi il rendering dello schermo dai dati del cliente viene corretto con i dati del server. Il lato positivo è una risposta più veloce, il lato negativo è una leggera perdita di sincronizzazione.
Una combinazione dei due, ma invece di utilizzare (x, y) le coordinate usiamo un vettore di [precedente x/y e tempo, corrente x/ye tempo, suggerito x/y all'intervallo di tempo ] che può quindi essere utilizzato per tracciare percorsi proiettili che cambiano costantemente. Sembra che sarebbe difficile da implementare.
Eventuali indicazioni?
utilizzare socket.io per la comunicazione – Alfred