|
From: <sou...@ti...> - 2002-05-30 06:09:19
|
Ho notato che in molti giochi multiplayer in tempo reale, utilizzano il tempo del gioco (nel nostro caso il g->game_time), per calcolare la quant= ita' di informazioni massime trasmissibili. Per fare un esempio starcraft utilizza un tempo di circa 1/4 di secondo come unita di tempo nel gioco(in realta 1/4 e' il massimo si puo giocare anche con una latenza di 2 3 secondi), il che pensandoci bene nn farebbe male nemmeno a noi se avessimo un tempo fisso e nn variabile per eseguire= le varie azioni del sistema. Cosi ci semplificheremo di molto ogni quanto tempo mandare e ricevere i nostri pacchetti. Abbiamo detto di costruire un server/client che manda le informazioni a tutti e tutti le mandano a lui. L'idea nn e' brutta ma risulta scomoda con la storia chiamata colli di bo= ttiglia. Supponiamo che la mia idea venga accettata e che si riesca a fare in modo= che ogni ciclo completo di gioco si sviluppi SEMPRE al di sotto di questo= tempo, facendo qualche calcolo qua e la si arriva a supporre che noi mandiamo, con un modem 56k (4,7k/s di dl e 1,2k/s ul se nn ricordo male), circa 300= bit di informazioni, il che si arriva a supporre che il server possa al massimo mandare 300 bi= t di informazioni ogni ciclo di gioco. Fare una ricerca di un server che lagga di meno potrebbe essere in teoria= utile ma se tutti laggano nella stessa maniera nn si risolve un granche'.= Ora supponiamo invece che creiamo un server VOLATILE ^_^. Il gioco cambia, perche' ora una macchina nn deve per forza mandare a tut= ti, ma deve solamente scrivere su se stessa o su un altra macchina le varie azioni eseguite nel gioco, gli altri fanno la stessa cosa scrivono li e leggono li. Quindi i passi dovrebbero essere. Ogni macchina manda le proprie informazioni sul server volatile, alla fin= e del ciclo di gioco (1/4 di sec), legge tutte le informazioni sul server volatile (comprese quelle degli altri giocatori), e visualizza cosa e' su= ccesso e cosi' via. Tecnicamente nn ci ho ancora pensato a quanto sia difficile da realizzare= , ma a parer mio mi sembra un ottima idea ^_^. Ora risolto il problema della latenza, c'era il problema di "chi aveva fa= tto cosa prima di chi" dico c'era perche' con questo sistema il primo che arr= iva meglio alloggia se il giocatore A con il suo laser spacca un asteroide e anche il giocato= re B lo spacca, B(piu' lento) trovera nell'area dedicata per il controllo di= chi a distrutto un asteroide gia scritto da A, e quindi nn va a sovrascri= vere. Immagino che il tutto sia un bel po' incasinato da capire, ma nn importa ^_^. Alex message. __________________________________________________________________ TuttoTISCALI e' il tuo nuovo contratto di telefonia! Chiami in tutta Italia, giorno e notte, al prezzo di un'urbana Ti colleghi ad Internet e spendi meno di un'urbana http://point.tiscali.it/tuttotiscali/webmail.html |