|
From: Lorenzo S. <lor...@li...> - 2002-05-25 11:16:07
|
----- Original Message ----- From: "Duca" <sen...@gm...> To: "Mailing List" <Dla...@li...> Sent: Friday, May 24, 2002 9:25 PM Subject: [Dlab-devel] WC-Net? Senza incasinare troppo le cose potremmo utilizzare un server centrale ch= e gestisce le varie connessioni: Add, rm, etc. player (utilizzando magari un UDP un po' pi=F9 incasinato) Dopo di che i client si comunicano a vicenda gli eventi: player spare, player collide etc. sparo del player collide con asteroide =3D [casino] [Quando uno sparo collide con un asteroide, quest'ultimo si divide in 2 parti con direzioni casuali, le direzioni vengono elaborate solo da chi ha generato lo sparo, gli altri attendono(p= er un po') il risultato.] Il movimento degli asteroidi =E8 ovvio ogni player se lo calcola da solo. Io l'ho sparata, che ne pensate? <<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>> Secondo me potremmo cercare di ridurre al minimo i movimenti casuali, sostituendo la generazione delle direzioni degli asteroids con degli algoritmi pi=F9 o meno complessi ma di generazione univoca a partire dal contesto. Questo potrebbe permetterci di calcolare lato client le divizio= ni degli asteroidz, a questo punto potremmo permetterci di inviare addirittu= ra un pacchetto tcp di conferma. Generalizzando un po' questo criterio petrebbe andar bene un po' per tutt= o, anche per esempio nei bonus, dove ci sarebbe comunque la necessita' di da= re l'impressione della casualit=E0. In pi=F9 ho un'altra idea che mentre scrivevo mi ha frullato in tezta: zi potrebbe pensare ad un sistema client che cerca di calcolare il pi=F9 possibile da solo gli eventi, memorizzando di volta in volta a tempi fiss= ati le posizioni (magari dentro le move()) su una variabile struttura 'global= e' dentro game (o dove decideremo, non ha importanza). Ogni tanto il server mander=E0 dei pacchetti di sincronizzazzione tcp in broadcasting, i clien= t controlleranno poi se i loro parametri sono corretti. Ancora non ho assolutamente pensato alla fattibilit=E0 dal punto di vizta dell'efficenza, inoltre potremmo rischiare che i pacchetti tcp arrivino talmente in ritardo da complicarci troppo la vita. Comunque questo sistema mi sembra implementabile per lo meno in parte usandolo ad intervalli relativamente lunghi. ? |