Sprung-Eingabepuffer wirkt nicht: 120 ms konfiguriert, real ≤ 1 Simulationsschritt (~8 ms) #4
Labels
No labels
accessibility
bug
cleanup
consistency
crash
critical
game-feel
gameplay
high
input
level-generation
low
maintainability
medium
pause
physics
responsive
security
spec-gap
ui
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gilli/pulse-sprint#4
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Komponente: INPUT (
consume), GAME (playerCmd)Betroffene Version:
main@238ed66,index.htmlZeilen 2086, 2544–2548Beschreibung
AGENTS.md verlangt einen Sprung-Eingabepuffer von ca. 100–140 ms, damit ein Sprung kurz vor der
Landung noch annimmt. Gemessen wird der Puffer mit
K.JUMP_BUFFER = 0.12gesetzt, aber schonnach dem ersten Simulationsschritt wieder verworfen:
Test: Sprung ausführen, in der Luft
jumpdrücken, Landung abwarten → kein Puffer-Sprung.Ursache
Zwei Stellen zusammen nehmen dem Puffer seine Wirkung:
consume()läuft in der Fixzeitschleife (FIXED_TIMESTEP = 1/120). Der_next step, der diePuffer-Schranke sieht, verwertet sie – unabhängig davon, ob die Figur überhaupt springen kann.
Eine in der Luft gedrückte Sprungtaste wird also zum (evtl. erfolglosen) Greifversuch
degradiert und ist danach weg. Der in
tickTimers()herunterzählende Puffer überlebt damithöchstens einen einzigen Fixschritt.
Reproduktion
Playwright über
window.PULSE:Auswirkung
der häufigsten Timing-Situation im Spiel.
Lösungsvorschlag
consume()soll die jump-Kante nur verbrauchen, wenn sie auch ausführbar ist; sonst derPuffer weiterlaufen lassen:
jumpBufferundgrabBuffer) und in der Luft zuerstgrabBufferanbieten,jumpBufferbis zur Landung laufen lassen.Eingabe 200 ms vorher → verfällt.
Dokumentiert in
gitlab-issues/04-sprung-eingabepuffer-wirkt-nicht.md(Commit238ed66). Alle Befunde ausgeführt und gemessen; Repro-Schritte im Text.changed the description
changed the description