[TUTO] Le NetCode en bref !

27/12/2011 18h57 #1 
SlyK
stuxnet.
Lieutenant-colonel
Lieutenant-colonel


Hello à tous !

Dans ce tutoriel vous allez apprendre qu'est-ce qu'un NetCode ou sur comment le configurer.
Vous trouverez ici plusieurs réponse à vos questions, et si vous en avez d'autre, vous pourrez les poster à la fin du tutoriel.

Qu'est-ce que le NetCode ?

Un NetCode est une partie d'une configuration client ou serveur (souvent appelé « autoexec ») qui contient des CVars concernant le réseau.

Voici une liste non exhaustive de CVars NetCode:
Code:
rate

cl_updaterate

cl_cmdrate

cl_interp

cl_interp_all

cl_interp_ratio

cl_smooth

cl_smoothtime

net_splitrate

net_splitpacket_maxrate


Explication de CVars NetCode

La CVar rate permet de brider la connexion utilisée par le jeu.
Comme exemple, à la valeur 60000, le jeu n'utilisera pas plus de 60Kios/s de bande passante.
Si le jeu doit en utiliser plus, on aura ce qu'on appelle du Choke.

La CVar cl_updaterate définit le nombre de fois que le client (vous) ira demander au serveur l'état du monde.
La position des joueurs, les tires, etc...
Plus la valeur de cette CVar est grande, plus votre vision du jeu sera similaire à celle du serveur.

La CVar cl_cmdrate définit le nombre de fois que le client (vous) enverra des informations de son état au serveur.
Votre postion, vos tires, etc...
Plus la valeur de cette CVar est grande, plus le serveur aura une vision similaire de votre jeu.

La CVar cl_interp permet de définir la durée en seconde pendant laquelle se fera l'interpolation sans tenir compte de l'updaterate du serveur.

La CVar cl_interp_all définit si le client ajoute toutes les entités à la liste d'interpolation.

La CVar cl_interp_ratio permet de définir la durée en seconde pendant laquelle se fera l'interpolation en tenant compte de l'updaterate du serveur.

La CVar cl_smooth définit si on veut activer la correction des erreurs de prédiction.

La CVar cl_smoothtime définit combien de seconde à le droit le client pour corriger les erreurs de prédiction.

La CVar net_splitrate définit le nombre de morceaux de paquet (pour les paquets coupés) qui peuvent être envoyé par trame.

La CVar net_splitpacket_maxrate définit le rate qui sera appliqué si il y a des paquets coupés à envoyer.

Configuration des CVars NetCode

Maintenant que vous savez à quoi servent ces CVars, vous pouvez déjà vous faire une idée de la valeur que nous allons leur donner.

Pour allouer un maximum de bande passante au jeu, il faut mettre la CVar rate à sa valeur maximum, soit 1048576.
Cette valeur va permettre au jeu d'utiliser au maximum 1Mo/s de votre connexion.

Pour ce qui est de cl_updaterate & cl_cmdrate, il faut éviter tout décalage avec le serveur, il faut donc les réglé à la valeur maximum des serveurs, soit 66 pour la plus part des serveurs.

Pour comprendre comment réglé les CVars concernant interpolation (cl_interp & cl_interp_ratio), il vous faut déjà savoir ce que c'est que le lerp (Temps en ms que le client met en cache pour éviter des saccades en cas de mini lag).
Le délais obtenu pour le lerp permet aussi d'attendre les paquets nécessaires pour interpoler des paquets manquants.
Le mieux est d'avoir un lerp bas.

Vous avez deux moyens de réglé de réglé votre lerp, le premier est à l'aide de la CVar cl_interp, pour la « désactiver » il vous suffit de lui donner la valeur 0.
Le deuxième moyen calcul le lerp à l'aide de l'updaterate du serveur, c'est avec la CVar cl_interp_ratio.
Le calcul effectué est : cl_interp_ratio / cl_updaterate
Code:
player->m_fLerpTime = max( flLerpAmount, flLerpRatio / player->m_nUpdateRate );
    A savoir que vous pouvez obtenir un vrai lerp à 0 (le lerp affiché dans le NetGraph est faux), mais seulement en forçant les règlages clients depuis les CVars serveur.

    Pour avoir un lerp à 0, vous devez forcer les paramètres client à l'aide de ces deux CVars:
    Code:
    sv_client_min_interp_ratio "0"

    sv_client_max_interp_ratio "0"
    Si vous utilisez la CVar cl_interp_ratio pour régler votre lerp, il sera à 0 (réel), vous pouvez toujours modifier votre lerp à l'aide de la CVar cl_interp.
Concernant le réglage de la CVar cl_interp_all, il est inutile d'ajouter toutes les entités à la liste interpolation.
La valeur défaut reste donc la meilleur, soit 0.

La prochaine CVar que je vais expliqué change énormément le gameplay, la CVar cl_smooth prend son sens lors des erreurs de calcul (variation du lerp jaune/orange/jaune ...).
Il vous arrive surement souvent de constater le phénomène du « tir transparent », cette CVar permet de diminuer ce phénomène à condition de parfaitement régler la CVar associée, soit cl_smoothtime.

Comme vous l'avez surement compris, la CVar net_splitpacket_maxrate doit être à la même valeur que votre CVar rate.

Vous l'aurez remarqué, je n'ai pas expliqué la configuration de la CVar net_splitrate car elle est encore en test de mon côté, il vous faudra essayer par vous même différent réglages.

Recommandation

Voici le NetCode que je recommande:
Code:
rate            "1048576"

cl_updaterate   "66"

cl_cmdrate      "66"

cl_smooth       "1"

cl_smoothtime   "0.01"

cl_interp       "0"

cl_interp_all   "0"

cl_interp_ratio "1"

net_splitpacket_maxrate "1048576"


** Ce tutoriel peut évoluer en fonction des MAJs et/ou remarques.

Tutoriel sous licence



Questions, remarques, suggestions, corrections ?
C'est à vous Grand Sourire
27/12/2011 19h00 #2 
biip

Lieutenant
Lieutenant


nice.
ça aurait pu être complet avec l'explication du loss, choke, etc..
Une explication du net_graph (couleur du lerp) serait sympa aussi Clin d'oeil

gg bro <3


ps: smoothtime est en seconde, ou milliseconde ? Parce que 0.01 parait faible comme valeur
27/12/2011 19h06 #3 
SlyK
stuxnet.
Lieutenant-colonel
Lieutenant-colonel


Merci.

smoothtime est en seconde, ou milliseconde ? Parce que 0.01 parait faible comme valeur

Corrigé.

+ Correction syntaxique

Une nouvelle mise en forme sera bientôt faites ^^

Je verrais pour l'explication du NetGraph, surtout que sur le wiki de valve il l'explique déjà.
https://developer.valvesoftware.com/wiki/TF2_Network_Graph
27/12/2011 19h42 #4 
Hayamore
Francophone
Sous-lieutenant
Sous-lieutenant


Love ya
27/12/2011 20h11 #5 
TrOu
World War 2
Général de corps d'armée
Général de corps d'armée


Très bon tuto quoiqu'il arrive peut être un peu tard après les 100ène de topic "comment qu'on règle les rates ?" Grand Sourire
27/12/2011 20h31 #6 
SlyK
stuxnet.
Lieutenant-colonel
Lieutenant-colonel


Oui peut-être Grand Sourire
08/01/2012 20h46 #7 
SlyK
stuxnet.
Lieutenant-colonel
Lieutenant-colonel


MAJ !

- Mise en forme
- Correction syntaxique
- Ajout de lien
- Explication de la CVar net_splitrate
- Configuration de la CVar cl_smooth
- Configuration de la Cvar cl_smoothtime
- Configuration de la Cvar cl_interp_all
- Explication + configuration de la CVar net_splitpacket_maxrate



@+
08/01/2012 22h55 #8 
m'Thy
Astoria
Général de brigade
Général de brigade


Je suis amoureux. Grand Sourire

Merci.

ps : tu proposes pas une valeur de départ déjà pour net_splitrate ? pls Grand Sourire
09/01/2012 10h24 #9 
jaysku
Firstfrag
Aspirant
Aspirant


Maintenant que j'ai arrêté de waiter, à défaut de skill, je pourrais autant running shot que les lights (Kiki, er0, garry, weezer, mrsofteh, joelekilleurdu93330tavu, chaudpatateduFFA...) que je vois jouer en ce moment (les heavies j'en parle pas c'est devenu pire qu'un medium, la liste serait trop longue) ou bien le netcode ni changera rien et je serais obligé de m'en remettre à ma chance du moment (1%) ?

En gros, merci pour ce tuto qui me donne espoir de voir moins les gens running shot... prochaine dépression dans 24H.
10/01/2012 00h37 #10 
VoN

Sergent
Sergent


cl_interp_ratio "0" n'existe donc pas ? Car en mettant ça mon lerp baisse à 0 et devient blanc, MAIS c'est un faux lerp donc en fait rien n'a changé... j'ai juste ? Grand Sourire

(btw le crosshair 5 (point) disparaît des choix du panneau multijoueurs chez moi sur certains serv/en mode war any ideas?)

EDIT: TU CONNAIS PAS MICHAEL JACKSON??&&
10/01/2012 00h42 #11 
TrOu
World War 2
Général de corps d'armée
Général de corps d'armée


Von depuis quand ton lerp est BLANC ? :DDDDDDD
10/01/2012 01h24 #12 
UeKi
mTxServ !
Adjudant chef
Adjudant chef


#10 Enlève tout le contenu du dossier material/vgui/crosshairs.
J'avais ce genre de soucis, en war je n'avais que les 4 premiers crosshairs de disponibles.
10/01/2012 17h58 #13 
SlyK
stuxnet.
Lieutenant-colonel
Lieutenant-colonel


m'Thy a écrit:ps : tu proposes pas une valeur de départ déjà pour net_splitrate ? pls Grand Sourire

J'ai pas de valeur de "départ", car ça veut rien dire Grand Sourire
Fait tes propres test, entre 1 et 1048576.

EDIT: Puisque je pense que tu ne possèdes pas d'autre CVar NetCode que celle que j'ai mis, par sur 832 Souriant

VoN a écrit:cl_interp_ratio "0" n'existe donc pas ? Car en mettant ça mon lerp baisse à 0 et devient blanc, MAIS c'est un faux lerp donc en fait rien n'a changé... j'ai juste ? Grand Sourire

On ne peut pas dire qu'il n'existe pas Grand Sourire
Mais si ton cl_interp_ratio est à 0, le serveur va automatiquement le mettre à 1.
Code:
float flLerpRatio = Q_atof( QUICKGETCVARVALUE("cl_interp_ratio") );

if ( flLerpRatio == 0 )

  flLerpRatio = 1.0f;
10/01/2012 23h20 #14 
KiKi.^
All 4 Nothing
2ème classe
2ème classe


beau travaille je vais pouvoir changer mes rate =)
21/02/2012 17h53 #15 
stica
FForces
2ème classe
2ème classe


de mon coté je préfère sa :

rate "80000"
cl_updaterate "66"
cl_cmdrate "66"
net_splitpacket_maxrate "80000"
cl_resend "1.5"
cl_interp "0.033"
cl_interp_ratio "1"
cl_interp_all "0"
cl_smooth "1"
cl_smoothtime "0.01"
21/02/2012 18h41 #16 
biip

Lieutenant
Lieutenant


L'orage SlyK va s'abattre </troll>
22/02/2012 03h47 #17 
Hayamore
Francophone
Sous-lieutenant
Sous-lieutenant


#15

Et pourquoi tu préfères ça ?

(...)
22/02/2012 07h58 #18 
SlyK
stuxnet.
Lieutenant-colonel
Lieutenant-colonel


biip a écrit:L'orage SlyK va s'abattre </troll>

Et pourquoi donc ?
23/02/2012 13h29 #19 
Sup
ROAR
Sergent
Sergent


Il y a aussi un "meilleur" netcode pour les lans ?
23/02/2012 23h06 #20 
SlyK
stuxnet.
Lieutenant-colonel
Lieutenant-colonel


Sup a écrit:Il y a aussi un "meilleur" netcode pour les lans ?

Je n'ai pas fais de vrai lan DoDs, donc pas de test.
Mais suivant un amis et moi même nous pensons que ce réglage est le mieux.
Code:
cl_lagcompensation  "0"

cl_smooth           "0"

Aide/Support DoD & DoD:Source

 


Pseudo :
Mot de passe :

» Nouveau venu à DoD ?
» Inscription
» Mot de passe perdu ?

Partenaires 


Serveurs 

FR - DoDFrance by mTxServ.fr
IP : 88.190.22.98:27040

Forums 
Day of Defeat
  Montrez nous votre HUD ! (1580)
  Recensement des teams F... (211)
  MaXlan Frakasse - 25 &am... (46)
  Nostalgie.. (25)
  A quand de l'activité? (50)
Aide/Support
  carte son pc portable (9)
  Achat pc (16)
  Achat casque [Réglé] (45)
  Problème d'affichage des ... (1)
  DoD ne répond pas en se c... (1)
Vidéos/Mapping
  [Dod1.3] srP^ - Light Add... (6)
  Little Fragmovies/Clip (1689)
  "1200 Boucher" (5)
  [DoDs] fnx - Anjougame 2012 (23)
  [DoD:S] The devil - ob` (53)
Espace Culturel
  Natural selection 2 (28)
  Brick-Force (11)
  Battlefield 3 (65)
  [ AiON ] ParaDoXe Guild... (32)
  Une offre d emploi chez e... (9)
Espace détente
  DIABLO 3 !!!!!! (24)
  IMPORTANT BBQ BDE URGENT ... (4)
  Question : iPhone 4s Ou ... (20)
  FREE MOBILE CA DEFONCE!!!! (84)
  La vidéo du jour ² (875)

Publicité 
Liens 
Statistiques 
Membres : 22936
Clans : 1461
Actualités : 2975
Commentaires : 82977
Sujets Forums : 9940
Utilisateurs en ligne : 12
2 Enregistrés / 9 Invités / 1 Invisible

Publicités