Comment fonctionnent réellement les algorithmes de détection de coup dans les jeux vidéo ?

J'ai joué à beaucoup de jeux de tir compétitif dernièrement et je jure que parfois mes tirs ne s'enregistrent pas même s'ils semblaient viser directement la cible. Je suis curieux de connaître les mathématiques et la géométrie réelles que les jeux utilisent pour déterminer si une balle ou une attaque au corps à corps touche un ennemi. Est-ce que la latence affecte ça plus que je ne le pense ?

2 réponses

★ Meilleure réponse

J'ai définitivement eu ces moments où un tir me semblait parfait à l'écran mais ne touchait pas la cible, et ouais, c'est presque toujours une question de latence. La plupart des jeux utilisent ce qu'on appelle le hitscan ou la détection basée sur des projectiles - le hitscan vérifie instantanément si un rayon tiré de votre arme intersecte la hitbox de l'ennemi (généralement une forme simplifiée comme un cylindre ou une capsule), tandis que les projectiles sont des objets réels qui se déplacent et vérifient les collisions à chaque frame. Le problème, c'est que votre client vous montre une position ennemie légèrement différente de celle que le serveur voit, puisque votre input prend du temps pour atteindre le serveur et l'état du serveur prend du temps pour revenir vers vous, donc ce qui ressemblait à un tir à la tête sur votre écran aurait peut-être été un coup manqué sur le serveur autoritaire. Certains jeux tentent de compenser avec la prédiction côté client ou l'assistance au visée, mais il y a toujours ce délai inhérent - c'est pour ça que les jeux de tir compétitifs se sentent différents sur des serveurs à faible ping par rapport à des serveurs à haut ping.

La frustration est bien réelle - je suis passée par là en regardant un headshot traverser directement le crâne de quelqu'un. La latence compte bien plus que la plupart des gens ne le réalisent, mais ce n'est pas juste une question de ping ; le serveur doit réconcilier ce que tu voyais à l'écran avec l'endroit où l'ennemi était réellement quelques images auparavant, et ce délai crée un décalage. La plupart des jeux de tir utilisent soit le hitscan (rayon instantané depuis ton arme) soit la physique des projectiles, mais les deux sont déformés par le netcode - le serveur a peut-être déjà déplacé ta cible au moment où ton client envoie les données du tir. Ce que la réponse précédente a un peu passé sous silence, c'est que même avec le hitscan, certains jeux ajoutent délibérément une prédiction côté client ou une compensation de latence qui peuvent rendre les coups inconsistants si tu regardes autour des coins ou si l'algorithme de réconciliation du serveur n'est pas d'accord avec ton client sur le positionnement. Ce n'est pas toujours une question de latence pure qui dévore tes tirs ; parfois c'est la façon qu'a le jeu de décider quelle version de la réalité « gagne » dans une situation en une fraction de seconde.

Votre réponse

Se connecterpour répondre.