Ceci est une archive non modifiable | This is an unmodifiable archive

Brèves

WebTV

Actualité de la scène

Compétitions

Forum
cl_interp - 20 messages, 26143 vues
Page 2 sur 3
1
2
3
Réponse #11
Par KoBeWoNe - 30/03/2014 00:38:24
Depuis que j'ai toucher a ça j'ai des gros freez et mon jeu touche pu, normal ?

J'imagine oui.


Et donc ?

Bah plus tu touches cette variable, plus tu t'expose a ce genre de désagréments.


Ha merde, et du coups de base elle est a combien ? que j'puissent rejouer normalement ^^

0.031 ?
Réponse #12
Par MetalBoy - 30/03/2014 01:00:02
This is the relation between snapshot rate and view interpolation delay is the following:

interpolation period = max( cl_interp, cl_interp_ratio / cl_updaterate )

"Max(x,y)" means "whichever of these is higher". You can set cl_interp to 0 and still have a safe amount of interp. You can then increase cl_updaterate to decrease your interp period further, but don't exceed tickrate (66) or flood your connection with more data than it can handle.
Réponse #13
Par NxScsgo - 30/03/2014 03:43:23
Il faut toujours faire une petite sauvegarde lorsqu'on touche à un fichier ^^

Et c'est valable pour tout, pas uniquement sur CS:GO ;)
Réponse #14
Par Tiro - 30/03/2014 19:26:51
This is the relation between snapshot rate and view interpolation delay is the following:

interpolation period = max( cl_interp, cl_interp_ratio / cl_updaterate )

"Max(x,y)" means "whichever of these is higher". You can set cl_interp to 0 and still have a safe amount of interp. You can then increase cl_updaterate to decrease your interp period further, but don't exceed tickrate (66) or flood your connection with more data than it can handle.


Merci pour l'info mais je suis pas sur de bien la comprendre,

notamment cette phrase "You can then increase cl_updaterate to decrease your interp period further, but don't exceed tickrate (66) or flood your connection with more data than it can handle."

C'est quoi l'interp périod? En gros si je mets mon interp à 0 il faut que j'augmente l'updaterate?


Une question aussi je ne sais plus comment afficher le lerp sur le net_graph ce n'est plus possible?
Réponse #15
Par MetalBoy - 30/03/2014 21:23:23
Je cite pas mes sources . . . j'ai été un peu con : https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

Donc si on reprend tout (je peux toujours me tromper mais bon) :

Source defaults to an interpolation period ('lerp') of 100-milliseconds (cl_interp 0.1).

Donc le lerp = interpolation period.

La période d'interpolation est le laps de temps permis au jeu pour interpoler le mouvements de entités. (explication des snapshots et des mouvements des entités dans le paragraphe Entity interpolation). Si des paquets sont perdus le jeu doit pouvoir continuer à rendre les mouvements des objets. Or sachant qu'il se base sur des paquets qu'il a recu dans le passé(pléonasme mais on comprend mieux haha), si ce passé n'est pas complet il doit pouvoir quand même faire son job. La période d'interpolation doit donc être plus grande que l'espace entre deux paquets car ils en faut minimum deux pour interpoler. Mais comme on l'a dit un paquet peut être perdu donc on met un espace de temps comprenant trois paquets minimum.

Entity interpolation causes a constant view "lag" of 100 milliseconds by default (cl_interp 0.1), even if you're playing on a listenserver (server and client on the same machine). This doesn't mean you have to lead your aiming when shooting at other players since the server-side lag compensation knows about client entity interpolation and corrects this error.
Réponse #16
Par MetalBoy - 30/03/2014 21:23:38
L'interpolation appliquée par le client nous fait donc avoir un lag, mais celui n'est gênant que par la sensation qu'il procure, le serveur lui est prévu pour gérer l'interpolation du client.

Maintenant bien que le système semble bon (et il est sans doute le meilleur possible pour les FPS online), il reste un problème qui sur le papier ne semblait pas important mais qui est devenu un phénomène très discuté sur cs :

With an increased cl_updaterate you can also lower the view interpolation delay (cl_interp). The default interpolation delay is 0.1 seconds, which derives from the default cl_updaterate 20. View interpolation delay gives a moving player a small advantage over a stationary player since the moving player can see his target a split second earlier. This effect is unavoidable, but it can be reduced by decreasing the view interpolation delay. If both players are moving, the view lag delay is affecting both players and nobody has an advantage.

Le joueur en mouvement possède un avantage. Logique puisque le joueur qui wait est en train d'interpoler des mouvements et ne sait pas encore que le joueur est en train de le decal (attention on parle de millisecondes là, rager à propos de ça, bien que fondé, est vraiment démesuré).

Réponse #17
Par MetalBoy - 30/03/2014 21:24:12
On cherche donc a réduire ce "lag" :

This is the relation between snapshot rate and view interpolation delay is the following:

interpolation period = max( cl_interp, cl_interp_ratio / cl_updaterate )

"Max(x,y)" means "whichever of these is higher". You can set cl_interp to 0 and still have a safe amount of interp. You can then increase cl_updaterate to decrease your interp period further, but don't exceed tickrate (66) or flood your connection with more data than it can handle.

cl_interp est donc par défaut à 0.1 car le source engine tourne de base sur du tickrate 20. On peut donc tenter de le baisser. La j'ai pas trop réfléchi sur la valeur optimale, certains on du le faire sur le net.

Mais revenons en au cl_interp 0, dans ce cas la fonction va prendre comme période d'interpolation la valeur cl_interp_ratio / cl_updaterate puisque que cette valeur est toujours supérieure à 0 (cl_interp_ratio vaut 1 ou 2) donc toujours supérieur à notre cl_interp 0. Or on va se retrouver à reproduire les calculs qui sont décris dans Entity interpolation, c'est à dire que si on met 1 dans le ratio on va calculer 1/128 (pour du tickrate compétitif) ce qui représente l'intervalle de temps entre deux ticks , c'est à dire le strict minimum pour interpoler ! et comme on l'a vu plus haut en cas de perte de packets ce n'est pas bon (freeze, jitter ou autre).

Donc au final il est possible d'optimiser le jeu sur internet mais attention à comprendre ce que vous faites et le cl_interp 0 combiné à cl_inter_ratio 1 est à proscrire.

PS : Si vous voyez une erreur dites le ! c'est important et j'aimerais ne pas répandre des conneries. =D
Réponse #18
Par Tiro - 30/03/2014 21:33:24
bon ben j'ai cl_interp 0 et le ratio à 1 lol! C'est super compliqué tout ca mais c'est super sympa de prendre ton temps pour l'expliquer, ce qui fait que si je le met à 2 cela arrangera un minimum mais que le laisser de base est peut être mieux du coup?!
Réponse #19
Par MetalBoy - 31/03/2014 00:40:30
A vrai dire ca fait a peine trois jours que j'ai commencé à lire les docs du source engine. Autant la théorie de l'interp est correctement expliqué autant la pratique de l'interp ingame semble être un grand mistère. En fait le seul point de référence semble être le net_graph or le nouveau net_graph(celui qu'on a depuis un ou deux ans) est vraiment spécial et ne semble pas vraiment nous être utile pour comprendre si notre config réseau est optimale.

Donc pour l'instant je n'ai pas vraiment d'avis définitif sur la pratique à adopter. J'espérais voir des gens poster des infos intéressantes, en attendant il faut bidouiller, en gardant à l'esprit que le plus important est d'avoir un jeu fluide avant d'essayer de réduire le lag de prédiction.
Réponse #20
Par Sasalamxs - 31/03/2014 11:12:55 - Modifié le 31/03/2014 11:13:36
Salut je suis tombé sur un lien concernant la commande "net_maxroutable" de csgo..
si j'ai bien compris il sagit de la taille des paquets envoyés par le jeu ? HF ^^
Page 2 sur 3
1
2
3