-
Notifications
You must be signed in to change notification settings - Fork 105
Description
At present, several areas of the code deviate from the original game in assuming various ticks per second values; often these are tied to erroneous frames per second values
Since the Alpha 0.2 series of OpenApoc versions, the frame rate has been fixed at 60fps as opposed to the original game's assumed 18/36.
However, ticks per second is still all over the place with some parts of the code, for example, weapons ballistics assuming 144TPS on a 144Hz Monitor - this causes very real problems with the ballistics calcs making matching the original game impossible as many values are based on integers which do not permit decimal values
Some time ago tentative discussion was made on discord about fixing this
One idea would be to have the game assume 180 ticks/sec for everything - this is because 18/36/60 based calculations from the original game can be easily adapted into whole number multiplications/divisions when calculating certain game mechanics and we can keep using int instead of float - it's a lot less work to update the codebase and fix any calculations if 180 is the unified value
Though this would present an issue in meeting the 5ms optimisation target on none-desktop hardware
Whilst I'm inclined, given that any mobile forks of OpenApoc would need massive changes to the UI as well as other optimisations, to go "leave it to the mobile devs to sort out" and shift to the ideal of 180TPS. We should probably try not to break compatibility if a "better" solution can be found
The IDEAL solution is for all calculations to be separated from TPS / FPS but this will require quite some work to resolve
Please see discussion on discord for further details:
https://discord.com/channels/142798944970211328/143424162998910976/642830538117349385
https://discord.com/channels/142798944970211328/143424162998910976/702306923894145025