I’m having a problem debugging an issue with my pathfinding and movement behaviour, whereby the act of stepping in the debugger is causing the time step for the following world tick to be very large, altering the behaviour that I’m trying to debug.
Is there some way I can fix the world tick time step? I know this would mean the game was no longer running in real time, but for debugging it’s not an issue.
It appears that there is already some cap in place (I seem to see DeltaTime values of 0.4 when I’m stepping), so even just being able to modify this cap to a much smaller value would be good enough.
I did something similar (time tick skipping) by overriding the Tick method on my Character class.
If you download the source to Unreal from GutHub you can look through the code and see where Tick comes from.
There are some functions you can override there.
Okay after some more digging I found what I was after, some largely undocumented command line arguments.
Adding the following 2 command line arguments:
-UseFixedTimeStep -FPS=30
will guarantee that every world tick function is called with a DeltaSeconds of 1/30, or whatever you specify. Note that the naming of the FPS argument is a bit strange - in no way is it connected with realtime frames per second at all. Without modifying anything else, it will continue to churn out as many frames per second as it can up to the MaxFPS cap. It will simply ignore actual time taken to process frames and pass 1/FPS as the DeltaSeconds of every tick.
Thanks for the suggestion. Since I had a number of actors/components involved in what I was testing, I really wanted a way to change the tick rate for everything in game. See my answer if this is still relevant to you.