|
From: Lorenzo S. <lor...@li...> - 2002-05-26 23:26:52
|
----- Original Message ----- From: "Bernardo Innocenti" <be...@de...> To: "Duca" <sen...@gm...> Cc: "Mailing List" <Dla...@li...> Sent: Sunday, May 26, 2002 8:38 PM Subject: Re: [Dlab-devel] WC-Net? > Io copierei quello che fa Quake: il server e' l'unico che ha ragione: > se vede prima lo sparo di A, allora l'asteroide e' stato colpito da A > e i punti vanno ad A. Sia A che B possono aggiornare lo schermo e il proprio > punteggio anche subito, ma prima o poi gli arrivera' un pacchetto dal server > contenente la situazione reale e allora B si vedra' scalare i punti e vedra' > gli asteroidi in una posizione diversa ;-) > > > Credo che questa cosa vada cmq prevista se supponiamo di avere un la= g > > variabile. cmq dovremmo raggruppare i player con lag simile, se ci=F2 > > non =E8 possibile credo sia opportuno memorizzare per ogni client un > > albero di informazioni relativi agli asteroidi, chi li ha distrutti, > > quanti punti ha preso etc per eventualmente annullare un azione > > errata. > > Questa situazione avviene raramente e solo quando il lag e' elevato, n= on > credo sia un problema grave... > > Provo a fare un'affermazione. Non ho le prove, ma voglio vedere se qualcuno > riesce a smentirmi: > > "L'unico modo per avere uno stato consistente del gioco per tutti i giocatori > in un dato momento e' avere un unico nodo (il server) che mantiene i valori > ufficiali per tutte le variabili del gioco. In caso di lag, i client possono > fare elaborazioni speculative al solo scopo di aumentare la fluidita', > ma devono rimettere tutto a posto appena gli viene comunicato un nuovo > stato dal server." Io ho un'altro sistema da prendere in considerazione: chi prima arriva meglio alloggia, ovvero, possiamo _non_ tutelare chi =E8 laggato, ma dar comunque ragione a chi comunica per primo al server in caso di conflitti. In questo modo si evita di dover rimettere le cose a posto dopo un conflitto, a scapito dell'-onest=E0- del gioco, sicuramente a favore dell= a fluidit=E0. |