You are using an outdated browser. Please upgrade your browser or activate Google Chrome Frame to improve your experience.

Ongoing Games No games yet.


Raiton - 16° dan
lvl.7083.702.744 xp
- Taishō
139 races / 210 murders

Salut tout le monde. Je me posai plusieurs questions au sujet des lat et des pings. Tout d'abord, quelle est la différence entre le ping et le ou la lat ?

Lorsqu'on pouvait voir le ping, c'était celle-ci qui influait sur le décalage, aujourd'hui, c'est le lat qui influe, pourquoi ?

Aussi, pourquoi certaines personnes ont un lat positif et d'autre négatif ?

Pourquoi certains ont les lat qui augmentent et qui baissent ?

Et aussi pourquoi certains ont des lat qui passe de 5000 à 2000 en quelques secondes ?

En définitif, le ping, à quoi il sert au juste ? Vu qu'en ayant un lat "très" négatif et un très bon ping, il y a le décalage.

PS : Merci de ne pas verrouiller, après y avoir apporté une réponse, car il se peut qu'il y ait d'autres questions à propos de la réponse apportée, ou bien une autre qui arrive.


23 comments

Suiton
lvl.1005.211.818 xp
Rōnin
106 races / 51 murders
Pein-rikouduPing du joueur distant ? Qu'est-ce que ça veut dire ?


Tu es le joueur local, les autres joueurs sont distants.

Pein-rikouduDonc c'est bien ce que je pensai, tu peux faire varier le décalage en fonction du ping, ou bien du lat ?


Je ne comprends pas cette question.

Pein-rikouduMais pourquoi la lat augmente ou diminue au fur et à mesure que le joueur dans la partie ? C'est dû à la co qui s'affaiblie ou s'améliore ?


Oui, autant de ton côté, que de celui de l'autre joueur.

Pein-rikouduAussi pourquoi le lat passe de 5000 à 2000 de façon hyper rapide, alors qu'il est sencé se mettre à jour ?


Justement parcequ'il se met à jour. La mise à jour est discrète, elle n'est pas linéaire. Donc la valeur passe d'un état A à un état B sans étapes.

Pein-rikouduDe plus, pourrais-tu me donner la définition d'interpolation et d'extrapolation ? (Si elle n'est pas trop longue et pas trop dure à comprendre ?)


L'extrapolation est une estimation d'une valeur basée sur l'extension d'une séquence de valeurs connues au-delà de la zone connue.
L'interpolation est une estimation d'une valeur à l'intérieur de deux valeurs connues dans une séquence de valeurs.

Dans NinjaTooken, lorsque le programme extrapole la position d'un joueur, il va déterminer ou il est d'après la dernière position connue et sa dernière vélocité. Lorsqu'il interpole, il va prendre une position entre deux valeurs connues. Autrement dit, on interpole lorsque le tampon des positions enregistrés est plein, et on extrapole lorsqu'il est vide. Il est vide si le débit de la connexion diminue (= fluctuation de la connexion), ou si la bande passante nécessaire augmente (= si plus de joueurs). La valeur du tampon varie en fonction de la latence de chaque joueur.

Pour faire ça bien et affin de faire de la récupération d'erreurs induites par l'extrapolation, chacune des positions ainsi calculées/estimées sont ensuite linéarisées selon la vitesse du joueur, ce qui donne des mouvements fluides et avec une marge d'erreur relativement acceptable.


Raiton - 16° dan
lvl.7083.702.744 xp
- Taishō
139 races / 210 murders
2Kin

Le ping est le temps que met un paquet pour aller du client au serveur, puis, du serveur au client. Ici, la donnée véhiculée n'est pas importante, on cherche juste à déterminer le temps minimum que va prendre une donnée pour être envoyé au serveur, être interprétée par le serveur, puis revenir.

Donc pour atteindre un joueur, il faudra en théorie au minimum (et approximativement), LatenceTheorique = sonProprePing/2 + pingDuJoueurDistant/2 (en millisecondes). Ping du joueur distant ? Qu'est-ce que ça veut dire ?

La "lat.", est la latence "réelle". C'est le temps moyen que prend les données de position d'un autre joueur pour arriver jusqu'à toi (en millisecondes aussi). Elle est de zéro pour le joueur local, puisque NinjaTooken fonctionne sur une architecture "pair à pair", et non "centralisé sur le serveur". Un déplacement local est donc instantané et n'a pas à être sauvegardé sur le serveur : il fait référence.
Contrairement au ping et la latence théorique, la "lat." est relevée en jeu et prend en compte l'horloge centrale du jeu. Elle est normalement plus fiable : c'est donc cette valeur qui est prise en compte pour les calculs d'interpolation, extrapolation, et de compensation du lag (cad le NetCode du jeu).
Selon la bande passante utilisée pour le jeu, la qualité de connexion du joueur qui envoi la donnée et du joueur qui la reçoit, cette valeur est logiquement plus élevée que la "latence théorique". Donc c'est bien ce que je pensai, tu peux faire varier le décalage en fonction du ping, ou bien du lat ?
Cette valeur est mise à jour régulièrement pour prendre en compte les variations de qualité de connexion et de consommation de bande passante tout au long d'une partie. Mais pourquoi la lat augmente ou diminue au fur et à mesure que le joueur dans la partie ? C'est dû à la co qui s'affaiblie ou s'améliore ? Aussi pourquoi le lat passe de 5000 à 2000 de façon hyper rapide, alors qu'il est sencé se mettre à jour ?

Note : la latence ne peut pas être négative... cela voudrait dire que les données sont reçues avant d'être envoyées (back to the future !).
En pratique, lorsque la latence est négative, cela veut à priori dire que l'horloge du joueur n'est pas synchronisée sur l'horloge globale du serveur, ce qui provoque donc des décalages de position. C'est un bug grave, qui a été évidemment rapporté à l'équipe Photon... et qui n'arrive pas à le reproduire pour le moment :/ MDR ok


De plus, pourrais-tu me donner la définition d'interpolation et d'extrapolation ? (Si elle n'est pas trop longue et pas trop dure à comprendre ?)


Suiton
lvl.1005.211.818 xp
Rōnin
106 races / 51 murders

Le ping est le temps que met un paquet pour aller du client au serveur, puis, du serveur au client. Ici, la donnée véhiculée n'est pas importante, on cherche juste à déterminer le temps minimum que va prendre une donnée pour être envoyé au serveur, être interprétée par le serveur, puis revenir.

Donc pour atteindre un joueur, il faudra en théorie au minimum (et approximativement), LatenceTheorique = sonProprePing/2 + pingDuJoueurDistant/2 (en millisecondes).

La "lat.", est la latence "réelle". C'est le temps moyen que prend les données de position d'un autre joueur pour arriver jusqu'à toi (en millisecondes aussi). Elle est de zéro pour le joueur local, puisque NinjaTooken fonctionne sur une architecture "pair à pair", et non "centralisé sur le serveur". Un déplacement local est donc instantané et n'a pas à être sauvegardé sur le serveur : il fait référence.
Contrairement au ping et la latence théorique, la "lat." est relevée en jeu et prend en compte l'horloge centrale du jeu. Elle est normalement plus fiable : c'est donc cette valeur qui est prise en compte pour les calculs d'interpolation, extrapolation, et de compensation du lag (cad le NetCode du jeu).
Selon la bande passante utilisée pour le jeu, la qualité de connexion du joueur qui envoi la donnée et du joueur qui la reçoit, cette valeur est logiquement plus élevée que la "latence théorique".
Cette valeur est mise à jour régulièrement pour prendre en compte les variations de qualité de connexion et de consommation de bande passante tout au long d'une partie.

Note : la latence ne peut pas être négative... cela voudrait dire que les données sont reçues avant d'être envoyées (back to the future !).
En pratique, lorsque la latence est négative, cela veut à priori dire que l'horloge du joueur n'est pas synchronisée sur l'horloge globale du serveur, ce qui provoque donc des décalages de position. C'est un bug grave, qui a été évidemment rapporté à l'équipe Photon... et qui n'arrive pas à le reproduire pour le moment :/