Files
Blockline/docs/SHOOTING_POLISH.md

23 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.