Glossar-Begriff

Wie wir Stick-Drift erkennen

Wir erfassen die radiale Ruheimplitude jedes Sticks für 5 Sekunden, während der Controller unberührt liegt, und vergleichen die beobachtete Maximale mit den von GPADLAB festgelegten Bandbreiten. Unter 0.05 ist unsere gesunde Referenz, 0.05 bis 0.15 zeigt einen zunehmenden Mittelfehler an und 0.15 oder höher ist unser Band für schweren Drift zur weiteren Untersuchung.

Definition

Was Wie wir Stick-Drift erkennen bedeutet

Wie wir Stick-Drift erkennen: Unsere Drift-Erkennungsmethodik erfasst den maximalen radialen Betrag - die euklidische Distanz vom Zentrum in der Achsenebene - den jeder analoge Stick während eines 5-Sekunden-Ruhefensters meldet.
Auch bekannt alsdrift detection methodologyMessung der Stick-KalibrierungTest auf Controller-Drift
Mechanismus

Der exakte Erkennungsalgorithmus

Jeder der folgenden Werte ist eine Konstante im ausgelieferten Code: DRIFT_THRESHOLD = 0,05, WARN_THRESHOLD = 0,15, SAMPLE_DURATION_MS = 5000. Die Berechnung ist exakt; die Interpretation von 0,05 und 0,15 fällt in GPADLABs Benchmark-Richtlinie und nicht in einen universellen Hardware-Defekt-Standard.

  1. 01

    Beide Sticks pro Frame auslesen

    Bei jedem requestAnimationFrame-Takt liest der Tester pad.axes[0] und pad.axes[1] für den linken Stick, pad.axes[2] und pad.axes[3] für den rechten. Das sind die Standard-Gamepad-API-Achsenpositionen im Bereich -1,0 bis 1,0 relativ zur Mitte jedes Sticks.

  2. 02

    Radialen Betrag berechnen

    Für jeden Stick berechnen wir magnitude = sqrt(x² + y²) - die euklidische Distanz zur Mitte in der Achsenebene. Das ist wichtig, weil ein Stick diagonal driften kann: eine achsenweise Prüfung würde einen Stick übersehen, der (0,04, 0,04) meldet und einen echten Betrag von 0,057 hat. Wir messen die tatsächliche radiale Auslenkung, nicht achsenweise begrenzt.

  3. 03

    Maximalwert während des Ruhefensters tracken

    Während des 5-Sekunden-Probefensters halten wir den höchsten bisher beobachteten Betrag pro Stick fest. Wir verwenden den Maximalwert - nicht den Mittelwert -, weil Drift sich häufig als intermittierende Spitzen und nicht als konstanter Offset äußert. Ein Stick, der bei 0,02 ruht und einmal pro Sekunde auf 0,12 ausreißt, driftet bereits; nur Max-Tracking erfasst das.

  4. 04

    5-Sekunden-Fenster ohne Berührung

    Das Fenster läuft exakt 5.000 Millisekunden lang. Die Anweisung - den Controller auf eine ebene Fläche legen und nicht anfassen - ist der Kern der Methodik-Gültigkeit. Wenn die Hand des Nutzers während des Fensters einen der Sticks berührt, wird die Messung wertlos. Fünf Sekunden sind kurz genug, um sie ohne Fingern zu schaffen, aber lang genug, um intermittierende Drift-Spitzen zu beobachten.

  5. 05

    Verdict vom schlechteren Stick

    Am Fensterende nehmen wir das Maximum aus leftMax und rightMax und vergleichen es mit den drei Bändern des Testers: unter 0,05 besteht GPADLABs gesunde Referenz, 0,05 bis 0,15 ist das mittlere Drift-Band und 0,15 oder höher ist das Fehler-Band des Testers. Der schlechtere Stick bestimmt dieses GPADLAB-Verdict.

Referenz

Wie wir Stick-Drift erkennen: drift verdict thresholds

Die folgende Drei-Banden-Skala verwendet den normalisierten -1,0 bis 1,0-Achsenbereich der Gamepad API. Ein Betrag von 0,05 entspricht etwa 5 % der vollen Achsauslenkung und dient als GPADLABs gesunder Referenzpunkt. Spiele können andere Deadzones und Response-Curves verwenden, daher sollten diese Bänder nicht als universelle Spielbarkeitsgrenzen betrachtet werden.

Maximaler radialer Betrag im RuhezustandUrteilBedeutung
< 0,05GesundInnerhalb von GPADLABs gesundem Referenzband und voll Punkte wert in der Drift-Stufe des Controller Health Score. Ein Spiel mit einer sehr kleinen oder benutzerdefinierten Deadzone kann Verhalten dennoch anders offenlegen.
0,05 - 0,10Leichter DriftBeobachteter Center-Offset oberhalb von GPADLABs gesundem Band. Spiele mit kleineren Deadzones können ihn früher offenlegen; erneut testen und gegebenenfalls Kalibrierung oder Deadzone-Tuning in Erwägung ziehen.
0,10 - 0,15Spürbarer DriftGrößerer beobachteter Center-Offset in GPADLABs intermediate Scoring Band. Ob er sichtbare Bewegung erzeugt, hängt von der Deadzone und der Eingabeverarbeitung des Spiels ab; Reinigen, Neukalibrieren oder Hardware-Diagnose kann erwägenswert sein.
>= 0,15Signifikanter DriftGPADLABs severe-Drift-Band und faulty-severity Scoring Range. Kalibrierung, Kontamination, Mechanik, Firmware und Stick-Hardware untersuchen; ein persistierender schwerer Offset kann Reparatur oder Austausch rechtfertigen, aber diese Zahl allein identifiziert nicht die physische Ursache.

DRIFT_THRESHOLD (0,05) und WARN_THRESHOLD (0,15) sind in StickDriftTester.tsx als GPADLAB-Verdict-Schwellenwerte hardcodiert. Die Scoring-Bibliothek scoreStickDrift() fügt ein intermediate 0,10-Band für feinere Punktkalibrierung hinzu. Diese Konstanten definieren GPADLABs Benchmark-Verhalten, nicht universelle Controller-Industrie-Defektgrenzen.

Häufig gefragt

Fragen zu Wie wir Stick-Drift erkennen

Weil die Messung nur sinnvoll ist, wenn die Sticks wirklich ruhen. Den Controller zu halten übt zwangsläufig subtile Druck durch den Griff aus - genug, um die Sticks bei manchen Designs um 0,01 bis 0,03 zu verrücken. Das ist dieselbe Größenordnung wie echter Drift. Das Ablegen auf eine ebene Fläche eliminiert diese Störgröße vollständig. Wenn du ihn halten musst, halte ihn so locker wie möglich mit flachen Handflächen und ohne Daumen auf den Sticks.

Bei steady-state Drift erfasst fünf Sekunden fast alles. Bei intermittierendem Drift - Sticks, die alle paar Sekunden einmal ausreizen - erfasst ein längeres Fenster mehr Ausreisser. Wir haben 5 Sekunden gewählt, weil es das Minimum ist, das nötig ist, um die meisten intermittierenden Verhaltensweisen zu beobachten, und gleichzeitig der Test so zügig bleibt, dass du ihn tatsächlich abschließt. Wenn du intermittierenden Drift vermutest und der Test besteht, führe ihn dreimal hintereinander aus: Dann erfasst du einen Stick, der 20% der Zeit ausreist.

Weil Drift ein 2D-Phänomen ist. Ein Stick, der (0,04, 0,04) meldet, hat einen radialen Betrag von etwa 0,057, obwohl keine einzelne Achse 0,05 überschreitet. Die Formel sqrt(x² + y²) erfasst die kombinierte X/Y-Auslenkung. Spiele können radiale, axiale, hybride oder benutzerdefinierte Deadzone-Verarbeitung verwenden, daher sollte die radiale Methode von GPADLAB nicht mit der Implementierung jedes Spiels verwechselt werden.

0,05 ist der von GPADLAB gewählte gesunde Referenzwert auf der Skala der normalisierten Gamepad-API. Er lässt Raum für kleines Center-Noise, hält den Benchmark aber empfindlich gegenüber sichtbarem Offset. Er ist keine universelle Spieleinstellung: Manche Titel verwenden kleinere oder größere Deadzones, benutzerdefinierte Response-Curves oder benutzerkonfigurierbare Werte, daher muss die Auswirkung auf das Gameplay separat geprüft werden.

0,15 ist die GPADLAB-Schwelle für schweren Drift und entspricht dem Fehlerbereich, den scoreStickDrift() verwendet. Auf diesem Niveau ist der gemessene Center-Offset groß genug, um eine weiterführende Diagnose zu rechtfertigen, ist aber keine universelle Ersatzschwel le oder ein klinischer Industriestandard. Je nach Controller und Symptomen kommen Neukalibrierung, Reinigung, mechanische Prüfung, Firmware-Checks oder Austausch in Frage.

Weil der Spieler den Controller genau so erlebt. Ein DualSense mit einem einwandfreien rechten und einem driftenden linken Stick ist ein driftender Controller; du kannst schließlich nicht nur die Hälfte des Spiels damit spielen. Ein Mittelwert beider Sticks würde ein irreführend positives Ergebnis liefern. Der höhere Wert aus leftMax und rightMax bildet die tatsächliche Spielerfahrung ab: Der bessere Stick gleicht den schlechteren nicht aus.

Ehrliche Antwort: Der standalone Stick Drift Test verwendet den radialen Betrag sqrt(x² + y²), was mathematisch korrekt ist. Das zusammengesetzte Controller Benchmark nutzt das einfachere max(|axis0|, |axis1|) für Pipeline-Konsistenz über seine sechs Stufen. In der Praxis liefern beide Ansätze sehr ähnliche Ergebnisse, weil Drift fast immer vorrangig auf einer Achse auftritt; reine diagonale Drift ist selten. Die Scoring-Bibliothek scoreStickDrift() verbraucht die Zahl, die der Aufrufer liefert. Wenn du die präziseste Drift-Zahl willst, nutze den standalone /tools/stick-drift-test - das steht auf dem Polish-Backlog, um es abzugleichen.

Nein - dafür ist der Hall Effect Checker da, und auch dieses Tool leitet nur ab statt sicher zu identifizieren. Diese Methodik misst das Verhalten im Ruhezustand. Hall-Effect-Sticks zeigen typischerweise ein Achsen-Noise-Floor um 0,005 bis 0,015, Potentiometer-Sticks um 0,010 bis 0,030 - ein subtiler Unterschied, kein klares Signal. Die Schlussfolgerung des Sensortyps aus Rauscheigenschaften ist unzuverlässig; prüfe die Herstellerspezifikation oder iFixit-Teardowns für eine definitive Antwort.

Quellen

Weiterführende Literatur

  1. Verständnis von Analog-Stick-Deadzones · Game Dev Stack Exchange
Verfasst von
Abdul Soomro
Gründer & Lead Diagnostic Engineer
Zuletzt geprüft
Veröffentlicht