Good news for people with performance issues at 60 FPS that make the game largely unplayable, I have a system that can detect dips in framerate now and alter the game's internal tick factor.
The bad news is the game uses an integer for this. The way it works is basically:
1 Frame = X-Many clock ticks (default value = 2)
I hate everything about the way the game's clock works, it is as everyone knows tied to render framerate. The thing that makes it altogether worse is that Namco devised a system to deal with this, but they don't let me use fractional values to handle situations where the framerate sits between 30 or 60.
So, frame pacing is VERY, VERY important here. To deal with this integer problem, I have to both raise and lower that value periodically any time the framerate is not running at precisely 30 or 60.
A couple of solutions come to mind and I think I will approach this with a layered strategy that uses all of them:
- Implement a system that artificially increases frame time to try and align frame rates to a multiple of 30 FPS as much as possible
- Implement a system that changes in-game timing dynamically -> This system is finished and I plan to roll it out in 1.0.4
The second one is done; the first one is somewhat intrusive and will take a lot of testing to get right. This is the solution I am sure Namco would have gone with if they understood the nature of this problem at its fundamental level.
---
The other, even better news, is that with this system fully fleshed out, any framerate that is a multiple of 30 will be practical. So, 120 FPS is doable -- 144 FPS, not so much.