Started work branch for low-latency input and modern player movement
The objective is to allow players (and only players) to be controlled and moved in fractional time, i.e., as fast as the frame rate allows.
The approach is to separate player mobj thinking (moving) from other mobjs in such a way that they are ran every time G_Ticker() is called. On sharp ticks, all other mobjs think as in vanilla mode.
The "input-sharp" cvar was repurposed and renamed to "input-vanilla" to control this entire process. In vanilla mode, everything works as in the vanilla Doom with fixed 35 Hz ticks and player controls. In non-vanilla mode, player controls become fractional in addition to the player mobj movement.
This initial commit updates the public Thinkers API with a function that allows selectively running a subset of thinkers and separates sharp player views from the rest of the sharp world state.
Started work branch for low-latency input and modern player movement
The objective is to allow players (and only players) to be controlled
and moved in fractional time, i.e., as fast as the frame rate allows.
The approach is to separate player mobj thinking (moving) from other
mobjs in such a way that they are ran every time G_Ticker() is called.
On sharp ticks, all other mobjs think as in vanilla mode.
The "input-sharp" cvar was repurposed and renamed to "input-vanilla"
to control this entire process. In vanilla mode, everything works as
in the vanilla Doom with fixed 35 Hz ticks and player controls. In
non-vanilla mode, player controls become fractional in addition to
the player mobj movement.
This initial commit updates the public Thinkers API with a function
that allows selectively running a subset of thinkers and separates
sharp player views from the rest of the sharp world state.