Game Delta Time en Vaste Timestep Laboratorium

Vergelijk game-lussen met variabele delta en vaste timestep met herhaalbare framepieken, gesimuleerde beweging, inhaalstappen en zichtbare tijdsdrift.

Bouw het framemotief

Gerenderde frames per seconde

Extra tijd voor piekframes

Gelijke grootte van de simulatiestap

Het proefveld

Twee klokken, één bewegend object

Balken tonen de hitches, lijnen volgen beide posities en het onderste spoor maakt de drift zichtbaar die eindwaarden kunnen verbergen.

Experiment bijgewerkt

Het bewegingsregister

Positie over verstreken echte tijd. Een stippellijn markeert gelijke vaste stappen.

Variabel deltapadPad met vaste timestepFramepiek

Het variabele model gebruikt de huidige frameduur eenmaal met de snelheid. Het vaste model verzamelt alle echte tijd en beweegt in gelijke stappen. Geen van beide paden is een prestatiemeting.

Je waarden worden alleen in deze browser opgeslagen, zodat het experiment klaarstaat wanneer je terugkomt. Er worden geen gamegegevens of telemetrie verzonden.

Zoom 100%
Hulpmiddelenstudio

Wil je dit hulpmiddel op je website?

Pas kleuren en de donkere modus aan voor WordPress, Notion of je eigen site.

Veelgestelde vragen

Wat laat dit laboratorium voor een vaste timestep zien?

Het voert hetzelfde bewegende object door een lus met variabele delta en door een accumulator met vaste timestep. Herhaalbare framepieken maken gesimuleerde tijd, positiedrift en inhaalstappen zichtbaar zonder een game-engine te starten.

Wat is het verschil tussen variabele delta en vaste timestep?

Het variabele model werkt eenmaal per gerenderd frame met de duur van dat frame. Het vaste model werkt met gelijke simulatiestappen en gebruikt een accumulator om de stappen te verwerken die de verstreken echte tijd vereist. Vaste stappen verminderen de afhankelijkheid van de renderfrequentie, maar een lang frame kan extra inhaalwerk veroorzaken.

Wat stelt de invoer voor een framepiek voor?

De invoer voegt extra milliseconden toe aan elk geselecteerd piekframe. Met het interval bepaal je na hoeveel frames de piek verschijnt, zodat je een herhaalbaar hitchpatroon kunt onderzoeken.

Wat verandert delta begrenzen?

De bovengrens beperkt de delta die het variabele model gebruikt wanneer een frame langer is dan de gekozen grens. Dat kan een te grote sprong voorkomen, maar de gesimuleerde klok loopt dan achter op de echte tijd. De vaste accumulator blijft de volledige frameduur verwerken.

Is dit een profiler of vervangt het playtesten?

Nee. Het is een deterministisch leer- en ontwerplaboratorium met opgegeven getallen. Het meet geen apparaat, diagnosticeert geen engine, modelleert geen renderkosten en bewijst niet dat één lus voor elk spel geschikt is.

# Begrijp de klok in een game-lus

Elk gerenderd frame geeft de game nieuwe verstreken tijd. In een lus met variabele delta wordt beweging vaak bijgewerkt als position += velocity × frameTime. Bij stabiele frames blijft de gemiddelde snelheid dicht bij de bedoeling, maar één update kan zo groot worden als het frame dat haar veroorzaakte. Een hitch is daarom niet alleen een visuele pauze: hij verandert de hoeveelheid gametijd die die update verbruikt.

# Vergelijk variabele integratie met een vaste accumulator

Een lus met vaste timestep telt elke frameduur op bij een accumulator en verbruikt daarna herhaaldelijk een gekozen stap zoals 16,667 ms. De simulatie ziet gelijke updates, terwijl de renderer een ander ritme kan houden. De resterende fractie blijft in de accumulator voor het volgende frame. Bij een lang frame voert de vaste lus meerdere kleine updates uit om de verstreken tijd te verwerken. De stapgrootte blijft stabiel, maar er kan een inhaalpiek ontstaan.
Situatie Pad met variabele delta Pad met vaste timestep Beslissing om te overwegen
Stabiele renderingEén update gebruikt elke normale frameduurGelijke stappen verbruiken de verzamelde tijdBeide paden zouden dezelfde beweging moeten volgen.
Lang frameEén grote update kan een object te ver verplaatsenMeerdere vaste updates halen de tijd inLees drift samen met het aantal inhaalstappen.
Andere renderfrequentieDe updategrootte verandert met de framerateDe simulatiestap blijft gelijkVaste stappen verminderen renderafhankelijkheid.
Delta-plafondTijd boven de grens wordt genegeerdDe accumulator ontvangt de volledige frameduurBegrens alleen wanneer tijd verliezen aanvaardbaar is.

# Zie wat een framepiek werkelijk doet

Bij 60 frames per seconde duurt een normaal frame ongeveer 16,667 ms. Met een extra piek van 80 ms duurt één frame ongeveer 96,667 ms. Het variabele model verwerkt die hele duur in één update. Het vaste model verwerkt in plaats daarvan ongeveer zes stappen van 16,667 ms. De totale verstreken tijd kan gelijk zijn, terwijl het pad door de simulatie verschilt.

# Lees positiedrift samen met inhalen

Positieverschil is het variabele pad min het vaste pad. Het toont hoe ver de twee integratiekeuzes uit elkaar zijn geraakt, niet automatisch welke keuze juist is. Het aantal inhaalstappen toont hoeveel vaste arbeid in één gerenderd frame nodig was. Een groot verschil wijst op zichtbare bewegingsafwijking; veel inhaalstappen wijzen op een mogelijk CPU-budgetprobleem. De signalen hangen samen, maar zijn niet dezelfde diagnose.

# Behandel delta begrenzen als een beleid

Een begrenzing kan voorkomen dat een gepauzeerd tabblad, breakpoint of zware hitch een personage teleporteert of een physics-object door geometrie laat gaan. De prijs is dat de variabele klok achterloopt op de echte verstreken tijd. Als de game timing moet behouden, gebruik dan een vaste accumulator of ander herstelbeleid. Als sprongen begrensd en de game responsief moet blijven, kan een begrenzing passend zijn, maar het verlies aan tijd moet opzettelijk zijn.

# Kies de lus voor de taak die ze beschermt

Taak in de game-lus Nuttige standaard Reden
Physics, botsingen of deterministische gameplayVaste timestepGelijke stappen maken de simulatie minder afhankelijk van het render-ritme.
Eenvoudige visuele beweging zonder opgebouwde toestandVariabele deltaDe update is klein en heeft meestal geen inhaalwachtrij nodig.
Gameplay-simulatie met vloeiende renderingVaste update met interpolatieDe simulatie houdt zijn stap terwijl de presentatie de fractie verbergt.
Herstel na een zware stilstandBegrensd inhaalbeleidVoorkom dat één slecht frame onbeperkt simulatiewerk veroorzaakt.

# Gebruik een herhaalbare afstelmethode

Begin zonder pieken en bevestig dat beide paden samenvallen. Voeg één herhaalbare hitch toe en verander daarna het interval om te zien of de zichtbare fout optelt of stabiliseert. Pas de vaste stap aan en bekijk het aantal inhaalstappen voordat je de snelheid verandert. Schakel ten slotte de begrenzing in en vergelijk variabele simulatietijd met echte tijd. Zo scheid je de oorzaak van drift van het beleid dat haar moet beperken.
Wat dit experiment niet kan bewijzen
Het laboratorium gebruikt opgegeven frameduren en constante snelheid. Het verklaart timinggedrag, maar meet geen apparaat en valideert geen engine. Echte physics, inputmeting, netwerk, interpolatie en framebudget kunnen de beste keuze veranderen. Gebruik het resultaat als hypothese en controleer die daarna in de echte game.