Titel: Bug: Spieler kann Kollisionen mit Gegnern umgehen – Leaderboard manipuliert
Zusammenfassung
- Ein Nutzer hat entdeckt, dass im JavaScript-Car-Game Kollisionen mit Gegnern in bestimmten Situationen nicht erkannt werden. Dadurch lässt sich das Leaderboard manipulieren. Die Maßnahme, Nutzer aus der DB zu löschen, ist kein geeigneter Bugfix. Bitte Reproduzieren, patchen und Tests hinzufügen.
Reproduktionsschritte
- Umgebung: aktueller Dev-Build des Spiels (Browser-basierte Implementierung).
- Voraussetzungen: mind. ein Gegner auf dem Display, aktivierter Score/Leaderboard.
- Schritte:
- Starte eine Runde mit mindestens einem Gegner.
- Führe eine Route durch, bei der eine Kollision normalerweise auftreten müsste (hohe Geschwindigkeit/Spitzwinkel).
- Beobachte, dass keine Kollision erkannt wird und der Score/Leaderboard weiter steigt.
- Erwartetes Verhalten: bei jeder Überschneidung der Hitboxes wird eine Kollision erkannt und Score entsprechend angepasst bzw. Schaden/Nebenwirkungen angewendet.
Tatsächliches Verhalten
- Kollisionen werden in bestimmten Szenarien nicht erkannt, was zu unverdienten Punkteständen im Leaderboard führt.
Betroffene Komponenten
- Collision/Hitbox-Logik
- Physics/Delta-Time-Handling
- Score/Leaderboard-Update-Pfade
Ursachenannahmen (vorschläge zur Prüfung)
- Fehlende oder fehlerhafte kontinuierliche Kollisionsnachverfolgung (tunneling) bei hohem Tempo.
- Rotierte vs. achsen-ausgerichtete Bounding-Boxen (AABB) vs. kreisförmige Hitboxes inkonsistente Berechnung.
- Broadphase/Narrowphase-Fehler oder stale Hitbox-Daten pro Frame.
- Eventuelle Shortcut- oder Early-Return-Pfade, die Kollisionsprüfungen überspringen.
Lösungsansatz (Vorschläge)
- CodeReview der Collision-Module: sicherstellen, dass Hitboxen von Player und Gegner pro Frame aktuell sind.
- Implementiere oder verbessere Continuous Collision Detection (CCD) für Hochgeschwindigkeits-Szenarien.
- Verifiziere Kollisionserkennung bei Rotationen, Skalierungen und unterschiedlichen Hitboxformen.
- Ergänze automatisierte Tests:
- Unit-Tests für Kollisions-Erkennung bei variierenden Geschwindigkeiten, Winkeln und Rotationen.
- Integrations-Tests, die Score-Updates nach Kollisionen prüfen.
- Entferne jegliche Maßnahme zur Löschung von Nutzern als Bugfix-Ansatz; nutze stattdessen angemessene Sicherheits-/Audit-Prozesse.
- Dokumentiere Patch-Keypoints im PR (betroffene Module, relevante Checks).
Akzeptanzkriterien
- Reproduktionsfall lässt sich nach dem Fix nicht mehr zuverlässig reproduzieren.
- Bei allen getesteten Geschwindigkeiten/Winkeln wird eine Kollision korrekt erkannt und Score/Leaderboard aktualisiert.
- Keine Manipulation des Leaderboards über nicht erkannte Kollisionen mehr möglich; Integrität des Leaderboards gewährleistet.
- Neue/aktualisierte Tests existieren:
- Unit-Tests für Collision-Detection
- Integrationstests für Gameplay-Flow inkl. Score-Logik
- Release-Sicherheit: Patch läuft ohne negative Nebeneffekte in vorhandene Spielmechanik.
Notizen
- Zuweisung: Florian (Game-Security/Gameplay-Entwicklung) oder entsprechendes Teammitglied.
- Labels: bug, security, collision-detection, leaderboard, high-priority
Anhang/Verknüpfungen
- Link zum betroffenen Modul (Collision/Physics)
- Referenz-PRs oder Builds, sofern vorhanden
Titel: Bug: Spieler kann Kollisionen mit Gegnern umgehen – Leaderboard manipuliert
Zusammenfassung
Reproduktionsschritte
Tatsächliches Verhalten
Betroffene Komponenten
Ursachenannahmen (vorschläge zur Prüfung)
Lösungsansatz (Vorschläge)
Akzeptanzkriterien
Notizen
Anhang/Verknüpfungen