GUIDA ALLE CONNESSIONI DI RETE - 2

Andare in basso

GUIDA ALLE CONNESSIONI DI RETE - 2

Messaggio  ack il Mar Lug 07, 2009 8:46 pm


PER GLI AGGIORNAMENTI GRAFICI:
  • seta cl_timeNudge -5
    riduce l'effetto di sincronizzazione tra client-server e fa sembrare i movimenti piu' fluidi.E' una sorta di lag simulato. In generale e' consigliato avere settato questo valore a 0 ma in alcuni casi puo' migliorare la situazione.
    Per esempio se state giocando e avete un ping che si aggira attorno a 100-150ms potete provare a settare cl_timeNudge -5/-10 (o anche meno).
    Il valore consigliato sarebbe tra il 25-50% del ping medio, cioe' in questo caso cl_timeNudge -50, ma ho notato che non conviene e' meglio mettere valori bassi (massimo -15).
    Valori positivi vengono di solito utilizzati per simulare il ping (come quello delle partite online) per coloro che giocano in modalita' single-player con i bot. (vedi sezione LAGOMETER per dettagli)
    Non utilizzate questo comando con valori negativi se avete la variabile cg_smoothClients settata a 1 perche' renderebbe lo stato del gioco completamente inconsistente (potreste vedere player davanti a voi quando in realta' sono gia' morti da un pezzo!)
  • seta snaps 45
    n° di aggiornamenti ("word update") ricevuti dal server. Nel caso di wireless piu' alto e' meglio e' (come ho spiegato sopra).
    Provare anche con valori maggiori. Se inizia a laggare troppo e' meglio abbassare, consigliato 40
  • seta com_maxfps 85
    n° massimo di frame per secondo. Se vedete che la connessione e' buona potete arrivare fino a 125 (cercate di mettere questo valore uguale a quello del cl_maxpackets, e' inutile voler visualizzare piu' frame di quelli ricevuti dal server, come pure ricevere piu' pacchetti di quelli che vengono effettivamente utilizzati).


PER LA PREDIZIONE DI OGGETTI,MOVIMENTI,ARMI:
  • seta cg_optimizePrediction 1
    ottimizza la predizione dei movimenti lato client. Se riscontrate un eccessivo numero di predizioni errate provate a disattivarlo (vedi sezione LAGOMETER per dettagli)
  • cg_delag 1
    per compensare il lag con armi di tipo instant-hit (ex: railgun, lightninght, machinegun, gun)
  • cg_projectileNudge 15
    per movimenti piu' precisi del missile (lasciare a 0 se la situazione peggiora)
  • cg_cmdTimeNudge 5
    migliora il feeling con armi di tipo instant-hit ( lasciare a 0 se la situazione peggiora)
  • cg_smoothClients 1
    se incontrate nel gioco players con problemi di linea (rate basso, con ping alto, che laggano) attivando questo comando i movimenti di questi player risulteranno piu' fluidi per la vostra visuale



Utenti Ethernet
Bhe' non c'e' molto da dire per questa categoria di utenti, le prestazioni di ethernet sono cosi' affidabili che se ci sono problemi di connessione puo' dipendere solo dalla linea telefonica (vedi la sezione PING ALTO per possibili miglioramenti)
In generale in una connessione ethernet ci sono pochi problemi dovuti a errori di trasmissione quindi sarebbe meglio evitare di usare comandi quali
cl_packetdup con valori alti. Io vi consiglio di provare prima con cl_packetdup 0 e solo nel caso la connessione fosse peggiore (vedi LAGOMETER) settarlo al massimo a 1.
Anche per il comando cl_maxpackets e' meglio limitarsi ad utilizzare un valore compreso tra i 40 - 100 (piu' basso e' il valore minore e' il numero di pacchetti che vengono ricevuti, ma alla fine la quantita' d'informazione inviata e' la stessa perche' vengono inviati pacchetti piu' grandi che incorporano piu' dati. Non finiro' mai di ripeterlo nel caso di ethernet questo puo' andare bene perche' difficilmente un pacchetto si perde/rovina ma nel caso di wireless perdere uno di questi pacchetti significa perdere 4-5 aggiornamenti di fila quindi e' meglio lasciarli separati in pacchetti piu' piccoli)



SPIEGAZIONE PING ALTO:

molti si chiedono perche' nonostante abbiano un ping relativamente basso "laggano" lo stesso.
Ping e lag hanno la stessa metrica di misura, cioe' il tempo medio di latenza (ritardo) espresso in millisecondi.
Ma c'e' una piccola differenza tra i due: il ping determina il tempo di ritardo nella propagazione fisica del segnale sul cavo, mentre il lag e' piu' che altro il tempo di ritardo nell'aggiornamento dell'immagine nel gioco (i classici "scattoni").
Per spiegare meglio vi faccio un esempio:
avete il gioco di ultima generazione che come requisiti minimi vuole una scheda grafica da 128Mb.
Voi avete proprio una scheda grafica da 128Mb (quindi il gioco funziona) ma impostate tutti i settaggi al massimo (texture,risoluzione,etc)
Ovviamente il gioco andra' a scatti perche' il motore grafico non riesce ad elaborare le immagini in tempo per far si che il gioco risulti fluido, in un certo senso "lagga" anche se effettivamente non siete online.
OpenArena non richiede un processore grafico potente, ma se i livelli di dettagli impostati nel gioco sono troppo alti rispetto alla velocita' di arrivo dei pacchetti (e non del processore grafico) c'e' una elevata probabilita' che questi non vengano processati in tempo.
Ma a mio avviso il motivo principale per il fatto che lag e ping (e che quindi non sia affidabile considerare il ping come parametro per valutare anche il lag) e' dovuto all'inaffidabilita' delle reti wireless descritta precedentemente.
Infatti per il ping vengono inviati ad intervalli regolari pacchetti ICMP (ogni pacchetto e' contenuto all'interno di un solo frame, e ognuno e' indipendente dall'altro) quindi nel caso di una perdita/collisione richiedo la trasmissione di un solo frame,
mentre nel caso della trasmissione di dati dal/al server vengono inviati pacchetti TCP o UDP che sono spezzati in piu' frame (perche' contengono piu' dati mentre i frame hanno dimensione fissa,vedi sopra), in questo caso durante una perdita/collisione di un frame puo' essere necessaria la ritrassmissione di tutti i frame indifferentemente da quale frame sia stato perso. Ovviamente lo stesso problema puo' ripresentarsi anche durante la ritrasmissione, considerando l'elevata probabilita' di collisione nelle reti wireless capite bene che questo accede mooolto spesso!
Con le connessioni ADSL tradizionali si ha una latenza che varia tra i 70 ed i 100 ms, mentre con le connessioni FASTWEB la latenza può raggiungere anche i 15 ms.
Piccola nota sul ping:
In genere si pensa che il ping dipenda dalla distanza del server, nella realta' non e' cosi'!
Infatti il segnale si propaga alla velocita' di circa 50us per Km nella fibra ottica, quindi per un server distante 1000Km da voi dovreste avere un ritardo di solo 50ms. Cio' che influenza maggiormente il ping e' il numero totale di router che il segnale deve attraversare. Infatti ogni router impiega un determinato tempo per elaborare i pacchetti (controlla se ci sono errori nei pacchetti per richiederne la ritrasmissione e cerca il router migliore dove inviare il nostro pacchetto per farlo arrivare a destinazione). L'altra cosa che fa aumentare il ping e' la distanza tra voi e la centrale telefonica piu' vicina. In questo tratto infatti il collegamento non e' in fibra ottica ma col classico doppino in rame UTP(quello che tutti abbiamo in casa); nel cavo UTP il segnale degrada rapidamente a seconda della lunghezza trascorsa. Tanto per farvi capire quando vi dicono che avete l'ADSL 6Mb dovete sapere che quel valore e' calcolato ad una distanza pari a 0 dalla centrale.Gia' dopo 500m non avete piu' i 6Mb che voi pensate ma circa la meta', dopo 1Km circa 1/6, dopo 2Km circa 1/10, dopo 5km siamo ai livello del 56K(ecco perche' quando pubblicizzano l'adsl dicono "Fino a 6Mb" e non "Esattamente 6Mb"!!!
L'unica cosa che possiamo fare noi per cercare di ridurre il ping e':
  • comprarsi un router decente (che riduca i tempi di elaborazione dei pacchetti e che ne perda pochi!)
  • disattivare il firewall del router che aggiunge un ritardo aggiuntivo per controllare ogni pacchetto in entrate e in uscita
  • evitare di usare il NAT che induce un ritardo doppio per ogni pacchetto inviato e doppio per ogni pacchetto ricevuto rispetto alla connessione tradizionale (ritardo quadruplo nel complesso!!!)
  • cambiare ISP (Alice piuttosto che Tele2 per esempio, ad ogni modo preferire le utenze telecom visto che comunque le altre utilizzano dopo la stessa linea ma vi fanno attraversare piu' router!)
  • cambiare sistema operativo e passare ad un sistema Unix (linux,mac).Ebbene si anche il S.O. gioca la sua parte, anche lui infatti deve elaborare i pacchetti inviati/ricevuti al/dal server e Windows non e' di certo famoso per la sua efficienza!
  • quando possibile passare alle FAST ADSL (per esempio FASTWEB) che non sono altro che ADSL normali ma a cui viene tolto il collegamento in rame tra voi e la centrale e sostituito con la fibra ottica!
  • evitare di usare la parabola satellitare per le connessioni ad internet perche' hanno tempi di latenza lunghi
  • se siete proprio disperati l'ultima soluzione e' trasferirsi direttamente nella centrale telefonica Wink



LAGOMETER

Questo e' lo strumento indispensabile che ci mette a disposizione OA per monitorare la connessione
per attivarlo e' sufficiente digitare da console /cg_lagometer 1

Di seguito vi metto lo screenshot del mio lagometer:



Nel riquadro sono rappresentati due grafi:

Il grafo in alto indica la coerenza della vostra connessione
In esso compaiono linee blu e gialle che avanzano di un pixel per ogni frame visualizzato.
Le barre blu sotto la baseline (y=0) stanno a significare che i frame sono interpolati correttamente tra due aggiornamenti.
Le barre gialle sopra la baseline stanno a significare che i frame sono estrapolati perche' gli aggiornamenti arrivano troppo tardi.
Per capire la differenza:
  • "interpolazione" sono i dati corretti che vengono presi all'interno del range dei dati che arrivano
  • "estrapolazione" sono i dati che vengono predetti perche' non sono all'interno dei dati che arrivano(o che non arrivano proprio)

E' meglio avere piu' linee blu che gialle perche' significa che le notifiche dal server sono arrivate in tempo e la grafica e' stata aggiornata correttamente. Le linee gialle significano che il client cerca di prevedere cosa visualizzare perche' non sono ancora arrivate le conferme dal server (ovviamente le predizioni possono non corrispondere alla realta')
Idealmente, si dovrebbero avere sempre barre blu di solo uno o due pixel in altezza. Se vedete che compaiono grandi triangoli di colore giallo sul grafico significa che la connessione non è coerente.
Nel caso dovessero comparire molte barre blu di altezza tra i 4 e gli 8 pixel potete provare a diminuire il timeNudge (provate ad intervalli di 5 in 5, tipo cl_timeNudge -5 , cl_timeNudge -10...) fino ad arrivare ad avere una quasi retta.
Nel caso invece compaiono molti triangoli gialli provate ad aumentare il timeNudge (fino a 15, non di piu'!) e a diminuire gli snap (o cercare di aumentare gli FPS) e aumentare il cl_maxpackets
Nel grafo in basso viene indicato lo stato della vostra connessione
L'altezza della barra e' proporzionale al ping e rappresenta gli aggiornamenti ricevuti dal server.
Le barre verdi corrispondono agli aggiornamenti ricevuti correttamente, quelle gialle sono i pacchetti ricevuti e scartati intenzionalemente dal client per rimanere nei limiti di rate corretti (durante le azioni di gioco piu' movimentate con tanti giocatori che sparano e si muovono e' normale che compaiano picchi gialli che ritornano verdi quando si quieta la situazione)
Le barre rosse invece indicano una cattiva ricezione perche' sono i pacchetti persi e/o rifiutati dal client (quindi in questo caso se compaiono spesso e' meglio cambiare server)
Se le barre verdi sono molto alte potete provare a ridurre un po' il timeNudge, mentre se compaiono spesso barre gialle potete aumentare il rate e ridurre gli snaps perche' il server non c'e' la fa' ad elaborarli tutti con conseguenza un intasamento maggiormente della rete che fa' alzare il ping.
Se invece compaiono spesso barre rosse potete provare ad aumentare il valore di cl_packetdup (e cambiare vari parametri per rate e cl_maxpackets)






Per trovare la miglior configurazione in rete ho scritto un file di configurazione che potete utilizzare per testare quali sono i parametri migliori per il vostro caso.
Scaricate da qui network.cfg e mettetelo nella cartella baseoa (la stessa dove avete il file q3config.cfg per intenderci)
Una volta aperto OA, aprite la console e digitate /exec network.cfg
Trovate tutte le indicazioni su come utilizzarlo nei commenti presenti sul file
(Io vi consiglio di copiare gli script per rate-maxpackets-timeNudge-snaps e di metterli nel vostro file di autoexec in modo da poter cambiare al volo i parametri a seconda della connessione che avete in quel momento e in base al server in cui vi trovate!)
(Nota: quando cambiate un valore controllate sul lagometer se riscontrate cambiamenti, in genere il grafo in basso viene aggiornato ogni 20fps quindi per capire se c'e' un miglioramento o peggioramento aspettate 2-3 secondi in modo da dargli il tempo di visualizzarlo)





Un grande saluto a tutti gli amici Var e spero di esservi stato d'aiuto

Ack

PER VALERIO : So che questa non e' la sezione corretta ma per metterlo nella sezione Spiegazione-Trucchi-Consigli bisogna essere amministratori Razz
avatar
ack

Numero di messaggi : 46
Punti : 55
Data d'iscrizione : 24.05.09

Visualizza il profilo

Torna in alto Andare in basso

Re: GUIDA ALLE CONNESSIONI DI RETE - 2

Messaggio  SkyKnight il Mar Lug 07, 2009 10:13 pm

Magnificamente magnifico!

SkyKnight

Numero di messaggi : 111
Età : 28
Località : Udine
Punti : 123
Data d'iscrizione : 08.05.09

Visualizza il profilo http://www.ansa.it

Torna in alto Andare in basso

Re: GUIDA ALLE CONNESSIONI DI RETE - 2

Messaggio  Mancu il Gio Lug 09, 2009 5:58 pm

Si e vero!!!! grande Ack!!!!! lol!

Mancu
avatar
Mancu

Numero di messaggi : 72
Età : 23
Località : Cento
Punti : 90
Data d'iscrizione : 11.06.09

Visualizza il profilo

Torna in alto Andare in basso

Re: GUIDA ALLE CONNESSIONI DI RETE - 2

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum