Files
Blockline/docs/SHOOTING_POLISH.md

2.5 KiB
Raw Permalink Blame History

Shooting und Polish

  • hitscan_ray.gd / shot_origin.gd: wiederverwendeter RayCast3D pro Spieler, sofortige Auswertung, Kamera-Zielstrahl und Deckungsprüfung am Lauf. Server entscheidet Treffer.
  • combat.gd: alle Handfeuerwaffen einschließlich Sniper sind Hitscan. Granaten behalten Flugphysik; keine neue Raketenwaffe.
  • weapon_handling.gd behält die analytische Rückstoßfeder; Sway ist exponentiell gedämpft. fighter.gd verwendet nun auch für die Waffenposition exponentielle Dämpfung. Eingabeabtastung und Rendering sind nicht bitidentisch zwischen 60 und 240 FPS.
  • hit_stop.gd: lokale Treffer setzen Engine.time_scale auf 0.05. Monotone Echtzeitfrist von 30 ms; Rückstellung im ersten Frame danach. Im Test etwa 42 ms beobachtet. Wiederholte Treffer verlängern die Pause nicht. Verlassen stellt den vorherigen Wert wieder her. Auf dem Listen-Host betrifft dies auch die Serversimulation, auf Clients die lokale Simulation.
  • audio.gd: wiederverwendete Schuss-Nodes je Waffe/Schütze, max_polyphony=3 pro Node, Pitch 0.951.05. Ein Master-Limiter mit -0.5 dB Ceiling begrenzt den Mix.
  • effect_prewarm.gd: Explosion, Treffer, Flash, Rauch, Flamme, Glut, Feuerball und Ring werden hinter dem Startbild in einem aktiven, nicht angezeigten SubViewport tatsächlich gerendert. Headless überspringt dies. Neue Effektvarianten müssen ergänzt werden; treiberabhängige Nachkompilierung bleibt möglich.
  • project.godot: Windows und macOS verwenden jetzt Forward+ mit Vulkan als Standard. Automatischer OpenGL-Compatibility-Fallback bleibt aktiviert. Windows-Start und Effekt-Prewarming mit Vulkan wurden im echten Renderlauf bestätigt (logs/vulkan-default-check.log). macOS bleibt auf Hardware ungetestet. Compatibility aktiviert kein SSAO/Glow. Keine pauschale FPS-Garantie.

Godot-Dokumentation zu den Treibern: https://docs.godotengine.org/en/4.5/classes/class_projectsettings.html

Validierung

  • shooting_polish.gd: 19/19; Audio, zehn Rückstoßprofile bei 60/240 Hz, Hit-Stop und echte RayCast3D-Treffer/Misses.
  • ttk_muzzle.gd: 60/60.
  • graphics.gd: 81/81; SSAO-Erwartung berücksichtigt den Renderer.
  • map_weapon_corrections.gd: 24/24.
  • Bestehender FPS-LAN-Regressionstest: Host und Client erfolgreich (Nahkampf/Feedback; kein ausführlicher Schuss-Latenztest).
  • Echter Windows-Renderlauf: OpenGL 3.3 bestätigt, EFFECT PREWARM complete, sechs Screenshots. Kein belastbarer FPS-Benchmark.

Logs: logs/polish-*.log. Tests wie üblich mit Godot --headless --path . --script tests/shooting_polish.gd starten. Prewarming benötigt einen echten Renderer ohne --headless.