Tickrate ( rien ne sert de courir plus vite que lui..) horloge de base du serveur
EX:66 calcule 66 foispar seconde le "monde", positions des joueurs, morts drapeaux pris etc.... en fonction des infos qu'il reçoit des joueurs
Dans l'ideal, chaque joueur devrait envoyer et recevoir des infos 66 fois par secondes afin que tout soit fluide, mais on va voir que, par defaut ce n'est pas du tout le cas:
DU SERVEUR VERS LE JOUEUR:recevoir autant d'infos que possible ( fonction de ses possibilités)
rate (côté client) exprimé en octets, c'est le nombre maximum d'octets par seconde que le client peut demander au serveur
ex:30000 le joueur peut recevoir jusqu'à 30 ko de données par secondes du serveur.
En gros c'est la taille du tuyau , il faut la regler en fonction de votre ligne en download, si vous êtes capables de tenir 30 ko en dl, votre rate dervait être reglé à 30000
sv_maxrate (côté serveur) exprimé en octets, c'est le rate client maximum que le serveur va accepter
ex: votre rate est a 30000 mais le sv_maxrate est à 20000, votre rate sera de 20000, bridé par le serveur)
cl_updaterate: en updates par seconde
Cette valeur definit le nombre de fois par seconde que vous allez demander des infos au serveur, l'idéal et de recevoir toutes les infos que le serveur génere, il faudrait donc le regler à la valeur du tickrate (+1, c'est comme ça..), pour un serveur au tickrate à 66, il faudrait donc le regler à 67.
attention, tout cela est bien joli, recevoir des infos, encore faut-il les afficher, si vore fps est trop bas, ex:35 fps, vous ne verrez pas toutes les infos reçues..cas inverse, rien ne sert de demander plus d'updates que le tickrate n'en genere...
sv_maxupdaterate et sv_minupdaterate:(côté serveur) definissent les valeurs max et min acceptées par le serveur pour cl_updaterate, une fois de plus,si vous avez cl_updaterate à 100 et que le serveur est à SV_maxupdaterate 66, vous serez à 66...
DU JOUEUR VERS LE SERVEUR:envoyer plus d'infos au serveur, c'est se faire voir plus fluide aux autres, et s'assurer que le serveur prend bien en compte vos tirs au moment ou vous les faites, et pas aux tours d'après...
cl_cmdrate: en updates par seconde
nombre de fois par seconde que le jouer envoie des infos au serveur, bien sûr si vous envoyez 30 infos/s et que les tickrate est à 66, les infos manquantes ne sont pas perdues, votre machine genere bien 66 infos /s, mais elle ne les transmet que 30 fois/s ( des paquets de 2 à peu pres..)
Quand on sait ça,on peut réfelchir deux secondes:
le but: echanger le maximum d'infos par seconde avec le serveur, sans en envoyer/demander trop:
Un outil permet de savoir ou on est est, le netgraph, pour le voir tapez net_graph 3 dans la console
légende:
1-vos fps en temps réel
2-votre ping
3-le taille des paquets qui entrent et sortent
4-les debits entrant et sortants actuels
5- le nombre moyen d'updates/s en in et out, en théorie le in doit correspondre à votre cl_updaterate, le out a votre cl_cmdrate
6-loss, paquets/s perdus allant de chez vous vers le serveur, peut être lié au choke
7- choke, paquets/s du serveur vers vous que vous n'avez pas reçu
rate:en théorie toute personne capable de downloader à 30ko/s doit mettre son rate à fond:30000
cl_updaterate: l'idéal serait de le mettre à la valeur du tickrate+1, cl_updaterate 67 si vous avez du choke, il faudra baisser cette valeur, car soirt le serveur, soit vous, n'arrive pas à la soutenir
cl_cmdrate: attention à ne pas surpasser votre upload, l'idéal serait cl_cmdrate 67
si vous avez du loss, il faudra baisser cette valeur, car, fort probablement votre upload n'est pas suffisant pour la soutenir à tout moment
SI VOUS NE COMPRENEZ PAS PLEINEMENT CE QUE VOUS FAITES, ABSTENEZ VOUS ET CONTENTEZ VOUS DE BIEN REGLER DANS LES PREFERENCES STEAM LA VALEUR D EVOTRE CONNECTION INTERNET (ne pas laisser 56 k alors que vous êtes en adsl2+
Pour aller plus loin
Interp (n'est pas du hax, sauf pour les arrierés réac): comme on l'a vu, les infos qui circulent entre serveur et joueurs sont conditionnées par la connection, la machine et les variables du joueur et du serveur, bref tout ceci est loin d'être du temps réel, si on joueur n'envoie ses infos que 20 fois par secondes, il est alors difficile de le voir se deplacer de façon fluide..20 images/secondes c'est pas enorme surtout si quelques paquets se perdent en route, il existe donc deux niveau d 'interpolation, une qui permet de ne pas attendre la reponse du serveur pour voir l'effet de ce que l'on fait avec son clavier (presser la touche avancer fait avancer, même si le serveur n'est pas encore au courant que j'avance..),une autre, celle qui nous interesse se materialise par une commande client:
cl_interp, par defaut elle est reglée à 0.1, cela signifie que l'affichageà l'ecran montre en ralité ce qui s'est passé 100ms ( 0.1s) avant, de c ette manière, le moteur a toujours un peu d'"avance " sur ce qu'il affiche et ppet calculer des images entre les points réellment envoyés par le serveur ( cela permet de ne pas voir l'adversaire faire des bons entre les valeurs qu'il transmet au serveur).
Si l on decide de passer cl_interp à 0, la valeur s'auto ajuste a 1/cl_cmdrate pour être au plus pres de la réalité fournie par le serveur...cette fois on verra les joueurs saccader, par contre, on est sur de ne voir que des positions réelles et donc si on sait viser, des les toucher à coup sûr...

