Prüft der Server Treffer nur gegen die „aktuelle Position auf dem Server“, weicht die Trefferabfrage von dem ab, was man auf dem eigenen Bildschirm gesehen hat.
Warum Gegner auf dem eigenen Bildschirm an seiner Position von vor etwa 0,2 s (bei 150 ms Ping und 100 ms Interpolation) → Folge Server prüft gegen die aktuelle Position, an der anvisierten Stelle ist der Gegner schon weg → Auf dem Bildschirm Eindeutig getroffen und trotzdem daneben. Auf bewegte Ziele muss man vorhalten
Server: auf den Zeitpunkt zurückspulen, den der Angreifer gesehen hat, und dann prüfen (Lag-Compensation), oder auf Zielauswahl (Tab-Targeting) umstellen. Client: beim Angriff den selbst gesehenen Zeitpunkt (die gerade interpolierte Serverzeit) mitschicken.
Im Graphen
Nur einzelne Ausreißer · Trefferquote auf bewegte Ziele (nach Ping-Bereich)
Wo nachsehen
Im Log der Trefferabfrage auf dem Server Angriffszeitpunkt, Zielposition auf dem Bildschirm des Angreifers (vom Client gemeldeter Wert), für die Trefferabfrage verwendete Zielposition auf dem Server und RTT des Angreifers gemeinsam protokollieren. Zeichnet ein Entwicklungs-Build die vom Server verwendete Position über das Client-Bild, ist es sofort zu sehen
Spricht dafür
Bei Fehlschüssen beträgt der Abstand der beiden Positionen etwa Zielgeschwindigkeit × (RTT des Angreifers + Interpolationszeit), und mit steigendem Ping sinkt nur die Trefferquote auf bewegte Ziele
Spricht dagegen
Auch stehende Ziele werden verfehlt: Problem mit Hitbox oder Kollisionsprüfung. Abweichung trotz Zurückspulen: prüfen, ob der Client dem Server eine falsche Interpolationszeit meldet
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig
Peeking into VALORANT's NetcodeRiot Games Der Server spult für die Trefferabfrage auf den Spielzustand zurück, den der Spieler im Moment des Schusses gesehen hat, der Client schickt die gesehene Simulationszeit mit