Jump to content

netKar PRO 1.1 beta 1: bugs, problemi e possibili soluzioni


VELOCIPEDE

Recommended Posts

Smentitemi se erro!

non erri .. ma rileggiti altre 10 volte quello che ho scritto sopra.. io meglio di cosi' non posso spiegarlo, se non ci capiamo non ci capiamo :biggrin:

Link to comment
Share on other sites

allora forse non ci siamo capiti.. non lo puoi fare NON perche' ci sono i box.. non lo puoi fare perche' online non riesci ad avere una certezza di posizione cosi' accurata da giustificare 20cm di differenza nel box. Sul tuo PC magari vedi il tipo che sta a 21cm dal tuo muso, non hai collisione e pensi "ammazza come sono bravo".. ma NESSUNO ti garantisce che il tipo dall'altra parte non veda la tua macchina a 19.5cm e si becchi una collisione mandandoti a quel paese.

E' la natura dell'online racing.. qualcuno, in maniera ERRONEA lo chiama "lag".. il "lag" e' un'altra cosa, questa si dovrebbe chiamare latenza.. ma ci capiamo lo stesso. Se sei su un server con 100ms di ping significa che il tuo client deve indovinare dove si trovano le altre vetture basandosi su dati vecchi del ping*2=200ms. Quei 200ms sono la "latenza". A 200km/h una macchina in 200ms fa 11 metri! Per quanto il sistema puo' fare i salti mortali per capire dove la tua vettura si trovi effettivamente non ci si puo' certo aspettare un'accuratezza di pochi cm quando hai circa 11 metri "potenziali" in cui l'altro puo' essere.

Quindi il virtuosismo di avere una collisione piu' corretta verrebbe cmq vanificata dal fatto che la collisione potrebbe essere rilevata da un client e non dall'altro.

O si accetta questo semplice limite fisico.. oppure iniziamo a mettere le firme lanciamo il partito del Lan Party di leva per il paese... altrimenti ci mettiamo in ibernazione criogenica fino al 2035 quando magari avremo interent a latenza zero.

Ovviamente esistono delle strategie per eliminare o aggirare il problema.. piu' o meno valide.. alcuni FPS di prima generazione ad esempio generavano il "fire" sul server in modo da avere piu' accuratezza.. ma al prezzo di una risposta in ritardo.. chi non ha giocato a Quake2 notando che, online, io premo fire e dopo tot tempo vedo partire il colpo?

In un racing game questo approccio si traduce in una richiesta di validazione del contatto da parte del server.. cioe'.. io vedo una collisione sul mio client.. non reagisco ma chiedo conferma al server " e' vero che tizio stava li al tempo tot?".. il server analizza la posizione di tizio e mi risponde se c'e' o non c'e' collisione.. quando ricevo la risposta dal server, se positiva, reagisco la posizione. Ma in tutto questo saranno passati, in caso di ping ottimo, diciamo 40ms.. almeno 80ms che a 200km/h sono piu' di QUATTRO metri! Praticamente vedrei il tizio che mi penetra ( a qualcuno piacerebbe ma io passo :sticazzi: ).. magari passa dall'altra parte.. salvo poi vederlo rimbalzare verso la mia macchina.. se questo sembra comico, prova a pensare cosa e' successo in quegli 80ms in cui stavamo in attesa di conferma della collisione.. intanto nkp si e' fatto altre 26 iterazioni della fisica.. avra' trovato altre 26 potenziali collisioni (mentre il tizio mi penetrava) e avra' richiesto 26 conferme di collisione al server.

Morale della favola.. in un FPS dove al momento della collisione uno dei 2 oggetti coinvolti (il proiettile) sparisce c'e' solo da pagare in termini di latenza.. in un racing game dove al contatto non e' che una delle 2 macchine sparisce questa soluzione e' assolutamente da scartare.

Questo e' solo un esempio.. qualsiasi altro esempio vi puo' venire in mente e' stato gia' analizzato, forse implementato, testato e scartato.. perche' sono quasi 5 anni che faccio questo a tempo pieno.

Se ci fosse l'AI e le gare offline allora avere una mesh di collisione precisa sarebbe imprescindibile.. in un prodotto online only con collisioni risolte sui client sarebbe tempo sprecato.

Il tuo discorso non fa una piega ed anzi, ti ringrazio della spiegazione precisa come sempre :wink:.

Per

Link to comment
Share on other sites

Smentitemi se erro!

non erri .. ma rileggiti altre 10 volte quello che ho scritto sopra.. io meglio di cosi' non posso spiegarlo, se non ci capiamo non ci capiamo :biggrin:

Infatti non erro!

Ho riletto e capisco bene cosa hai scritto, tanto

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.