wmd wrote: ↑Wed Nov 15, 2023 12:20 am
I've just seen the video on youtube that shows this game running at 50fps. Was that patch only for the Pi / RISC PC or can ARM3 machines benefit from that?
ARM3 isn't powerful enough, the original run at around 12.5fps on ARM2. You'd be lucky to even hit 25fps on ARM3 as its not fundamentally that much quicker.
The videos were recorded on a Pi1 although I don't think I ever finished coding it - it was just something I was tinkering with as we'd just imaged the development machine and I was going through it trying to figure out what the source-code belonged too. From memory, I don't think I ever got the cars to exactly replicate how they act when the game is at its original 12.5fps.
Zarch 50fps has a similar issue, where the ship movement can't be adjusted to exactly match the original.
The problem virtually all Arc games have is the game loop is tied to the video update loop, not time, so as you adjust the FPS the game speeds up. To work around that there's two options:
- Adjust all the movement and decision making to account for the time to the last frame
- Thread the update code, so the game objects are updated independently from the video output
The first option isn't always obvious as values is generally hardcoded and even if you do manage the variablise all of it, quite often you end up working with fractional values...as in the case with Zarch 50fps.
The second option, assuming the original game did implement frame pacing (neither Zarch or Stunt Racer do), does result in the correct game speed, but will look odd as the game objects will be static for several frames unless the object update rate matches or exceeds VSync. I think I did start work on threading one or both of them at some point, with a 100Hz thread updating the game objects and the video update running at VSync.
One thing which several people also pointed out at the London show I demoed Zarch 50fps at, was how unplayable it became. The reason for that is that as the game update rate increases, your reaction time has to improve accordingly!