Infos: ex_interp

Source: www.dodeurs.com

Démystification de la commande EX_INTERP !

Ex_interp c'est la commande "magique" pour la plupart des joueurs et surtout des pseudos "PGM". Certains la considère comme une correction du 'netcode' d'Half-Life, d'autes pensent plutôt qu'il s'agit de "cheat". Essayons d'apporter une réponse.


L'explication suivante est assez complexe, mais des images sont la pour illustrer cette commande. Half-Life comme tous les jeux vidéos est un jeu "discontinu". C'est à dire que le serveur envoie plusieurs fois par seconde la position de tous les joueurs (ainsi que leur arme si il tire et dans quelle direction...) Mais lorsque l'on joue le jeu est fluide ! Comment le moteur graphique peut il être fluide alors qu'il ne reçoit la position des joueurs que 'x' fois par seconde ? Il linéarise (ou interpole si vous préférez) !

Imaginez un dodeur qui va d'une position A à une position B pour que cette animation soit fluide, vous avez besoin de beaucoup d'images par seconde (Frame Per Second) donc d'autant de positions du joueur, mais il n'y a pas assez de bande passante pour transférer toutes ces données sur la position du et des joueurs pour rendre l'animation fluide. Donc le 'netcode' va calculer des positions fictives entre 2 positions transférées d'ou une "interpolation" pour rendre l'animation fluide

user posted image

R=Paquet reçu du serveur
I=interpolation
FPS=Une image affichée

Mais quel est le problème? Le moteur de HL ajoute un délai de 100ms. Pendant ce laps de temps, il calcule les positions fictives nécessaires pour rendre l'animation fluide.

La valeur par défaut pour Ex_interp est de 0,1. Ce qui veut dire 100ms (0,1 seconde=100ms). Vous voyez, CETTE valeur correspond au délai ajouté nécessaire au calcul des positions fictives. Le moteur essaye alors de compenser ce délai afin de montrer le joueur à l'endroit où il est vraiment, MAIS il ne vous montrera jamais sa position exacte. Avec la valeur par défaut de 0,1, vous avez à viser légèrement devant l'ennemi que vous visez (vous devez tirer un peu en avance vers la position où l'ennemi se rend).

Vous pouvez voir la position de l'ennemi qui vous est montrée si vous diminuez la valeur de Ex_interp à 0,075 ou 0,05, le moteur va alors moins interpoler et se rapprocher de la position réelle des joueurs. Il vous montrera alors (à peu près) la position exacte où vous pouvez tirer ET toucher. Vous pouvez donc réagir un peu plus vite.

Le problème de cette méthode est que le serveur envoie la position des joueurs que n fois par seconde. Si on baisse l'ex_interp, le moteur graphique ne va afficher les joueurs que quand il reçoit un paquet (discontinu) Les joueurs ne vont plus se déplacer fluidement mais en "clignotant"

Donc, que se passe-t-il si vous descendez la valeur à 0,03, 0,02, ou 0? Je pense que c'est là que cette commande devient "injuste". Le moteur n'a plus de temps pour calculer les positions, donc il place le joueur un peu dans le futur. Si vous avez une plus petite valeur pour ex_interp que celle de votre ennemi, vous le verrez alors avant qu'il ne vous voit. Si il a EX_INTERP 0,1 et vous un ex_interp de 0, vous le verrez alors 100ms avant qu'il ne vous voit! Mais vous avez à tirer derrière lui pour le toucher, c'est le désavantage. C'est ce qui rend tout le jeu déséquilibré.

Que faire alors ?
On peut installer sur le serveur des "addons" qui vont fixer le même interp pour tout le monde: par exemple WWCL ou HLGuard. Ceci va permetre à tous ceux qui tapent "ex_interp 0.05" dans la console de remettre la valeur par defaut. MAIS HELAS oui il y a un mais il est très très facile d'outre passer ces 2 addons ! (2 commandes à taper dans la console suffisent à remettre la valeur que l'on souhaite ). Ces 2 addons ne sont alors pas réellement efficaces.
Le seul qui reste efficace est Cheating-Death. il oblige à avoir un ex_interp entre 0,1 et 0,05.

Mon conseil : EX_INTERP 0.05 - c'est la meilleure correction du netcode que vous puissiez faire. Il s'agit d'une bonne valeur pour TOUT type de connexion et TOUT type de ping !

Pour illustrer cette article nous avons fait quelques screenshots qui mettent en évidence ce phénoméne. Pour cela nous avons utilisé un serveur HLDS avec des bots "sturmbot". Nous avons fait une pause puis modifié l'ex_interp.

Sur cette image nous voyons 3 bots en train de courir + un qui tire sans bouger à droite. On voit que le fait de bouger l'ex_interp de 0.1 à 0.01 déplace les joueurs vers la droite dans le sens où ils courent.


user posted image


Dans les 3 screens suivants on voit que si on a un ex_interp de 0.1 soit celui par defaut on ne touche pas le joueur, mais si on a mis l'ex_ interp à 0.01 dans ce cas la on le tue !



user posted image



Avec un ex_interp 0.1 on touche pas

Avec un ex_interp 0.01 on touche on tue



user posted image



Avec un ex_interp 0.1 on touche pas

Avec un ex_interp 0.01 on touche on tue



user posted image



Avec un ex_interp 0.1 on touche pas

Avec un ex_interp 0.01 on touche on tue

Merci pour ce post gayzou :P

On sait maintenant que certaines teams le maîtrise très bien....

Bon ok :blink:

Alors moi, modeste admin administrant un modeste server Dod, je le considère comme un pschit sur "mon" server ou je laisse béton ?

Et puis même si il utilise une telle "magouille", c'est chaud de le prouver.

Et puis faut voir si il est vraiment considéré comme un cheat de façon officiel parce qu'au final il fluidifie le jeu - et du coup avantage celui dont le jeu est fluide par rapport à ceux qui n'ont pas de telles configurations - et rien d'autre.

Comparativement a un Wallhack, Anti-recoil et autres Auto-AimBot...

Il ne fluidifie pas le jeu, plus ex_interp est bas, plus les joueurs clignotent...

Ce n'est pas un cheat mais c'est un gros désavantage par rapport aux autres, et puis si tu l'utilises en dessous de la normale, c'est à dire en dessous de la limite serveur, là oui c'est de la triche.

Malheureusement ce n'est pas si simple de le prouver...

Donc en résumé parce que je crois toujours pas avoir tout compris dans l'histoire:

une petite valeur de l'ex_interp grossit les models sans forcement grossir les hitbox?!?

Cela ne grossit pas les models mais ça avance la position d'origine du joueurs, DoD calcule la trajectoire possible que va emprunter le joueur et le transmet à l'écran. Donc, en fait, tu vois un bonhomme qui clignote, tu tires derrière et t'es sur de toucher et de tuer.

Le joueur qui ex_interp te tuera avant même que tu ne l'ais vu à l'écran...

Donc pour résumé, il s'agit d'une fonction qui te permet d'ANTICIPER LA TRAJECTOIRE ADVERSE GRACE AUX CALCULS DE L'ORDINATEUR EUX MEMES GERES PAR UN PROGRAMME.

Effectivemment, cela provoque un déséquilibre par rapport à celui qui ne l'utilise pas.

Et puis même, tu n'es pas censé savoir tout le temps anticiper une trajectoire puisque au final c'est un programme qui te permet d'être devin. Or les devins n'existent pas. CQFD.

Ce n'est pas un programme externe, c'est une commande appartenant à DoD. :)
C'est un problème assez spécial, le ex_interp en dessous de 0.05 est interdit, mais le light_gamma est autorisé... C'est triste...

Alba` @ 1 Feb 2006, 12:54:28

Malheureusement ce n'est pas si simple de le prouver...



Sur certains server sur lesquels j'ai testé la fonction, des plug-ins repèraient un réglage abusif de l'ex-interp ou du rate.

Si il y en a qui peuvent se renseigner sur leur existance...

Il me semble qu'il est marqué dans le topic, qu'avec une autre commande on peut enlever cette protection anti ex-interp...

Log in or Sign up if you would like to post.