Files
Blockline/docs/FPS_FOUNDATION.md
T

2.0 KiB

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:

& ./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