Files
Blockline/docs/FPS_FOUNDATION.md
T

20 lines
2.0 KiB
Markdown

# FPS-Grundlagen
- Spieler: weiterhin genau eine CapsuleShape3D, inklusive Ducken. Kein Scan-Mesh als Spielerform.
- FpsCamera (`scripts/fps_camera.gd`): rohe screen_relative-Mausbewegung aus _unhandled_input, keine Mausglättung und keine akkumulierten Events. Kameraposition interpoliert zwischen Physikpositionen; Kamerawinkel werden bei jedem Render direkt gesetzt. Lokale Netzwerkkorrektur läuft jetzt im Physiktakt.
- Scan-Kollision: Auf Benutzerwunsch zurückgerollt. Die beiden Route-Scans verwenden wieder ihre originalen Dreiecks-Collider; das Modul ScanCollision wurde entfernt. Die Spielfigur selbst behält ausschließlich ihre CapsuleShape3D.
- ShotFeedback (`scripts/shot_feedback.gd`): ein zuverlässiges serverautoritäres shot_event startet Schusston, Mündungsfeuer, prozeduralen Rückstoß und Crosshair-Puls zusammen. Ein bestätigter Hitscan-Treffer erhält im selben Ereignis Trefferkreuz und Ton. Kein falscher Trefferindikator bei Fehlschuss; Projektiltreffer werden erst beim Einschlag bestätigt. Munitions-Snapshots lösen keinen zweiten Rückstoß aus. Auf Clients bleibt die Netzwerklatenz bis zur Serverbestätigung bestehen; es wurde keine lokale Schussvorhersage eingeführt.
## Prüfung
`tests/fps_foundation.gd`: 12/12; `tests/ttk_muzzle.gd`: 60/60. `tests/fps_network.gd`: Host und Client erfolgreich (bestehender Nahkampf-/Feedback-Netzwerkregressionstest). Godot-Logs ohne Warnungen/Fehler nach den Korrekturen.
Die Kamera wird mit Zeitschritten für 60/120/144/240 Hz geprüft. Dies ist keine Messung auf einem physischen ProMotion-Display. Manuell: seitlich an den Route-Felsen entlanglaufen, springen/ducken, bei hoher Monitorfrequenz gleichzeitig bewegen und zielen; Dauerfeuer und Einzelfeuer, Wandtreffer, Gegnertreffer, Nachladen und unendliche Munition im LAN prüfen.
Ausführung im Projektordner:
```powershell
& ./tools/godot/Godot_v4.5-stable_win64_console.exe --headless --path . --script tests/fps_foundation.gd
& ./tools/godot/Godot_v4.5-stable_win64_console.exe --headless --path . --script tests/ttk_muzzle.gd
```