Headshot, sniper et hitbox

Feisty_F4wn
134 postsMember, Battlefield, Battlefield 4 Messages: 147 Member
mars 2018 modifié
Comment sont gérées les hitbox dans bf4 ? Est-ce que le jeu considère qu'un tir est réussi bien qu'il frôle la hitbox de l'adversaire sans la toucher en tenant compte de certaines variables (la distance à laquelle le tireur se trouve, le type d' arme...) ?

Je demande ça parce qu'après avoir constaté quelques fois des HS contestables mais bel et bien réussi, j'ai capturé une vidéo d'un sniper (SRR-61) dont voici 2 captures qui illustre parfaitement mes propos:

Dans la [url=""]première[/url] on remarque que le tir est comptabilisé AVANT de toucher l'adversaire et que le tir passe non seulement loin de la tête mais surtout passe à côté du pnj tout entier. Cela se voit encore mieux sur la [url=""]deuxième[/url] capture.

C'est encore plus WTF en live! Si le jeu fait des compromis de la sorte ça serait bien de le savoir :smile:
Post edited by Feisty_F4wn on

Réponses

  • Sgt_FR_Bidochon
    188 postsMember, Battlefield, Battlefield 3, Battlefield 4, Battlefield 1, Battlefield V Messages: 192 Member
    janvier 2018 modifié
    Le fait que ce soit comptabilisé AVANT que l'on s'en aperçoive en "live" n'est pas propre au tir de Snipe. Cela m'arrive également en lançant une grenade GS M320

    En tenant compte que pour BF4 c'est le Frosbite 3, que le netcode est hybride et que pour TitanFall c'est du source engine mais cela donne une explication ;
    Pour le Tickrate : https://www.gamekult.com/actualite/titanfall-de-l-importance-d-un-bon-tickrate-130413.html
    Prendre en compte également tout ce qui est réseau et comment cela fonctionne (en Anglais mais c'est visuel )

    - Autre exemple une explication qui vient d'une page qui n'existe plus et qui est lié à VALVE et CS mais le principe est le même (j'ai mis quelques extraits) :
    ___________________________
    - VOCABULAIRE

    - cl_cmdrate (CLIENT): Le nombre de fois par seconde que le client émet des paquets vers le serveur.
    - cl_updaterate (CLIENT): Le nombre de fois par seconde que le client demande des paquets du serveur
    - tickrate (SERVER): Le nombre de fois que le serveur rafraîchit le monde. Le serveur récupère toutes les données émises par les clients, recalcule de nouveau monde au moment T à partir de l'ancien monde du moment T-
    ____________________________


    === COMMENT CA MARCHE ===
    Le client et le serveur sont configurés comme je l'ai expliqué plus haut.
    Vous avez un cl_cmdrate de "100" => vous envoyez les données toutes les 10ms (1000/100).
    Vous avez un cl_updaterate de "100" => vous recevez les informations du serveur toutes les 10ms (1000/100).

    Prenons un cas (extrème au niveau des délais) où vous tirez une balle dans un mur.
    A l'instant T, vous cliquez sur la souris
    A T+10ms, les données sont envoyées au serveur.
    A T+XX+10ms, les données sont reçues par le serveur
    A T+XX+20ms, le serveur calcul le nouveau monde et décide de vous envoyer les données.
    A T+XX+30ms, vous recevez les données du serveur et vous voyez la balle dans le mur.
    Si vous pinger le serveur à 20ms, il s'est passé 50ms entre le moment où vous avez tirés et le moment où vous voyez la balle dans le mur.

    Heureusement, Valve a introduit le Lag Compensation.
    Quand vous visez une personne à une coordonnée X,Y,Z à un moment T, cette personne au même moment, du point de vue du serveur, a certainement déjà bouger. Le serveur est capable alors de remonter le temps pour savoir si vous l'avez bel et bien touché.
    ____________
    Interpolation :

    Prenons le cas où vous avez 100fps et que vous envoyez et recevez des informations toutes les 10ms et que le serveur a un sys_ticrate de 1000 (calcule le monde toutes les10ms). Vous jouez avec une personne qui elle envoie et reçoit des informations toutes les 50ms (cl_cmdrate de "20" et cl_updaterate de "20"). Lorsque le serveur vous envoie des informations, vous ne recevez la position du joueur adverse qu'1 fois sur 5. L'interpolation permet à votre ordinateur d'inventer" les positions manquantes du joueur adverse. En gros, dans vos 100fps par secondes, il y a 80fps dans lesquels le joueur adverse n'a pas une vraie position mais une position interpolée. Le problème c'est que par défaut (ex_interp à 0.1 pour 100ms), votre CS prend 100ms de temps pour calculer toutes les interpolations. Par conséquent, au moment où vous voyez un adversaire qui court de gauche à droite, il faut tirer légèrement devant lui car sa position réelle (notament les HITBOXS) à 100ms d’avance sur la position (MODEL GRAPHIQUE) que vous voyez réellement à l'écran
  • crafteur66
    98 postsMember, Battlefield, Battlefield 4 Messages: 118 Member
    Le fait que ce soit comptabilisé AVANT que l'on s'en aperçoive en "live" n'est pas propre au tir de Snipe. Cela m'arrive également en lançant une grenade GS M320

    En tenant compte que pour BF4 c'est le Frosbite 3, que le netcode est hybride et que pour TitanFall c'est du source engine mais cela donne une explication ;
    Pour le Tickrate : https://www.gamekult.com/actualite/titanfall-de-l-importance-d-un-bon-tickrate-130413.html
    Prendre en compte également tout ce qui est réseau et comment cela fonctionne (en Anglais mais c'est visuel )

    - Autre exemple une explication qui vient d'une page qui n'existe plus et qui est lié à VALVE et CS mais le principe est le même (j'ai mis quelques extraits) :
    ___________________________
    - VOCABULAIRE

    - cl_cmdrate (CLIENT): Le nombre de fois par seconde que le client émet des paquets vers le serveur.
    - cl_updaterate (CLIENT): Le nombre de fois par seconde que le client demande des paquets du serveur
    - tickrate (SERVER): Le nombre de fois que le serveur rafraîchit le monde. Le serveur récupère toutes les données émises par les clients, recalcule de nouveau monde au moment T à partir de l'ancien monde du moment T-
    ____________________________


    === COMMENT CA MARCHE ===
    Le client et le serveur sont configurés comme je l'ai expliqué plus haut.
    Vous avez un cl_cmdrate de "100" => vous envoyez les données toutes les 10ms (1000/100).
    Vous avez un cl_updaterate de "100" => vous recevez les informations du serveur toutes les 10ms (1000/100).

    Prenons un cas (extrème au niveau des délais) où vous tirez une balle dans un mur.
    A l'instant T, vous cliquez sur la souris
    A T+10ms, les données sont envoyées au serveur.
    A T+XX+10ms, les données sont reçues par le serveur
    A T+XX+20ms, le serveur calcul le nouveau monde et décide de vous envoyer les données.
    A T+XX+30ms, vous recevez les données du serveur et vous voyez la balle dans le mur.
    Si vous pinger le serveur à 20ms, il s'est passé 50ms entre le moment où vous avez tirés et le moment où vous voyez la balle dans le mur.

    Heureusement, Valve a introduit le Lag Compensation.
    Quand vous visez une personne à une coordonnée X,Y,Z à un moment T, cette personne au même moment, du point de vue du serveur, a certainement déjà bouger. Le serveur est capable alors de remonter le temps pour savoir si vous l'avez bel et bien touché.
    ____________
    Interpolation :

    Prenons le cas où vous avez 100fps et que vous envoyez et recevez des informations toutes les 10ms et que le serveur a un sys_ticrate de 1000 (calcule le monde toutes les10ms). Vous jouez avec une personne qui elle envoie et reçoit des informations toutes les 50ms (cl_cmdrate de "20" et cl_updaterate de "20"). Lorsque le serveur vous envoie des informations, vous ne recevez la position du joueur adverse qu'1 fois sur 5. L'interpolation permet à votre ordinateur d'inventer" les positions manquantes du joueur adverse. En gros, dans vos 100fps par secondes, il y a 80fps dans lesquels le joueur adverse n'a pas une vraie position mais une position interpolée. Le problème c'est que par défaut (ex_interp à 0.1 pour 100ms), votre CS prend 100ms de temps pour calculer toutes les interpolations. Par conséquent, au moment où vous voyez un adversaire qui court de gauche à droite, il faut tirer légèrement devant lui car sa position réelle (notament les HITBOXS) à 100ms d’avance sur la position (MODEL GRAPHIQUE) que vous voyez réellement à l'écran

    En gros?
  • MAZARKHO
    969 postsMember, Battlefield, Battlefield 4, Battlefield Hardline, Battlefield 1, Battlefield V Messages: 997 Member
    janvier 2018 modifié
    crafteur66 a écrit: »
    En gros?
    En gros, il dit que ce que tu vois a l’écran a une temporalité et une spatialité différente des autres joueurs a l'instant T; dans un but de coordination, le serveur calcule et interprète ainsi une réalité qui par nature, se trouvera dans le passé.
    Mais cela ne joue pas trop dans la prise en compte de la hitbox de la tête sur BF4, qui contrairement a BF1, dépasse la tête du joueur.
    En d'autre terme, sur BF4, la zone de la hitbox de la tête est plus grande que la tête elle - même.
    Un exemple pour l'illustrer : sur BF4, vous avez votre SRR-61, vous voyez un type allongé a 200 m, vous visez le centre de la cible (approximativement la tête) et vous ferez un headshot. Sur BF1, même situation (hormis le SRR-61 qui se transforme en Gewehr 98), vous tirez et atteignez sois la hitbox du bras, du torse ou de la tête. EXPLICATION : sur BF4, la hitbox de la tête (dépassant celle-ci) du joueur couché masque les autres hitbox du corps (vue de devant), pas sur BF1. Sur BF4, le tir sur une cible couché vue de devant, c'est un headshot quasi-assuré.

  • Feisty_F4wn
    134 postsMember, Battlefield, Battlefield 4 Messages: 147 Member
    Dans l'exemple que je donne, le mec tire un bon mètre à gauche de la cible. Je veux bien que ce soit une histoire de réseau/désynchro/tickrate et tout ça mais la cible arrivant en rampant par la droite il ne s'est donc jamais trouvé par le passé là où la balle à touché.
  • BF-B0t_Mod
    4378 postsMember, Battlefield, Battlefield 4, Game Changer Messages: 4,709 Game Changer
    janvier 2018 modifié
    Bonjour,

    Zoom x40, un bon mètre à une distance de plusieurs centaines de mètres, notion de collision également à prendre en compte avec la forme entourant le joueur qui matérialise le hit, et le recul de l'arme qui peut aussi générer un effet de décalage lors du shoot.
    De mon point de vue, ça serait la même image à 40 mètres, là on aurait du mal à comprendre, mais à plusieurs centaines de mètres, effectuer un tir de précision comme celui là, avec l'interpolation à prendre en compte pour peu que le joueur ait reculé entre le début du shoot et la fin (Je rappelle qu'il y a un délai entre le début du tir, et le hit plus la distance augmente), ou que la zone de hit soit positionnée "devant" au lieu de "sur" le joueur pour justement empêcher tout headglitch, ça me semble OK.
    Le serveur enregistre le shoot au début, rafraichit, signale l'enregistrement sur le joueur avec ce délai. Le temps que la balle traverse la map, cet affichage survient en même temps à peu de chose près.

    EA Moderator | Senior Battlelog Moderator | BF3, BF4 & BF1 DICE Friend | BFHL Game Changer | https://twitter.com/BF_B0t

  • Feisty_F4wn
    134 postsMember, Battlefield, Battlefield 4 Messages: 147 Member
    janvier 2018 modifié
    Ok du coup, de loin, il faut délibérément viser à côté pour toucher ?

    Quoi qu'il en soit, j'ai appris 2 choses surprenantes:
    - la hitbox de la tête est plus grosse que celle-ci (assez pour masquer les autres hitbox du corps en position couché).
    - les hitbox peuvent se trouvées fortement décalées par rapport au personnage.

  • BF-B0t_Mod
    4378 postsMember, Battlefield, Battlefield 4, Game Changer Messages: 4,709 Game Changer
    Bonjour,

    Pour la taille de la zone de hit, il me semble que c'était pour éviter le headglitch (En toutes positions) et ainsi favoriser le kill à un hit au torse.
    Pour la hitbox décalée, je pense qu'il faut tenir compte du mouvement du joueur positionné entre le début du tir, et la fin du tir selon la distance.
    Les notions d'interpolation, tickrate, latence, hitbox et lag compensation en cas de mouvement sont à appréhender pour traiter cette sensation dont vous parlez. (Et je n'aborde pas le cas de l'UI qui affiche le contenu associé à un kill à un timing précis.)

    EA Moderator | Senior Battlelog Moderator | BF3, BF4 & BF1 DICE Friend | BFHL Game Changer | https://twitter.com/BF_B0t

  • Sgt_FR_Bidochon
    188 postsMember, Battlefield, Battlefield 3, Battlefield 4, Battlefield 1, Battlefield V Messages: 192 Member
    janvier 2018 modifié
    Le gros soucis c'est que cela est variable suivant les serveurs (pays, ping, traceroute), le tickrate du serveur, sa configuration, le nombre de joueurs, sa propre config réseau, matérielle, logicielle etc
    Cela ne risque pas de s'améliorer sur BF4, vu que par ex nombre de serveurs (du moins en Hardcore) sont situés en Allemagne ou pays de l'est (avec 90% de Russes dessus :-) . Perso j'ai nettement perdu dans le "ca touche" sauf sur un serveur FR lorsqu'il y a du monde dessus (je le vois lorsqu'il faut appréhender le déplacement de l'ennemi qui coure latéralement. Suivant le serveur je dois tirer entre 50cm et 2 mètres sur le côté gauche ou droite) Idem dans les duels "face to face" . Sur ces serveurs étrangers, j'ai l'impression d'une latence d'une demi seconde au premier tir, alors qu'en face "visuellement" il n'a pas encore commencé à tirer, je ressens les premiers impacts
  • crafteur66
    98 postsMember, Battlefield, Battlefield 4 Messages: 118 Member
    Moi pour ma part, je trouve qu'ils devraient juste réduire un peu la hitbox de la tête, parce que il y a desfois ou je mets carrrément la balle a côté et je tue quand même le gars. C'est pas réaliste et puis c'est un peu... comment dire ça... exagéré.
  • MAZARKHO
    969 postsMember, Battlefield, Battlefield 4, Battlefield Hardline, Battlefield 1, Battlefield V Messages: 997 Member
    janvier 2018 modifié
    crafteur66 a écrit: »
    Moi pour ma part, je trouve qu'ils devraient juste réduire un peu la hitbox de la tête,
    Va jouer a BF1 sur PS4 ou les "headglitch" sont légions, des mecs allongés a 200 m de toi qui te tire dessus sans aucun moyen de les tuer a moins d'avoir de la chance ou un skill de ouf.
    Sur BF1 c'est le contraire, tu tire dans la tête et il ne se passe rien, a croire que la hitbox de la tête est plus petite que cette dernière ( ou le jeu a été codé avec le cul).
    Post edited by MAZARKHO on
  • crafteur66
    98 postsMember, Battlefield, Battlefield 4 Messages: 118 Member
    MAZARKHO a écrit: »
    crafteur66 a écrit: »
    Moi pour ma part, je trouve qu'ils devraient juste réduire un peu la hitbox de la tête,
    Va jouer a BF1 sur PS4 ou les "headglitch" sont légions, des mecs allongés a 200 m de toi qui te tire dessus sans aucun moyen de les tuer a moins d'avoir de la chance ou un skill de ouf.
    Sur BF1 c'est le contraire, tu tire dans la tête et il ne se passe rien, a croire que la hitbox de la tête est plus petite que cette dernière ( ou le jeu a été codé avec le cul).

    Oui, mais bon, étant donné que BF1 est plus récent que BF4, a la limite encore je ne leur en veux pas, mais une hitbox sur BF4, ou a longue voire très longue distance tu mets carrément la balle a côté du gars, juste non. Ca casse le réalisme du jeu.
Connectez-vous ou Inscrivez-vous pour répondre.

Salutations, Étranger !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons.