Yesterday, I discovered a serious flaw in the design of Bullfrog.
I’ve been developing this game on a PowerMac Dual 2GHz G5 with 1 GB RAM. The game was designed to run at approximately 60 frames per second. The animation was smooth and all the game objects moved at their correct speeds.
Last night, I decided to move my development over to my aging PowerBook 800 MHz G4 with 1 GB RAM so I could work on my code while watching the World Series on my couch.
Boy, what a wake up call!
Everything crawled on the screen. My frame rate dropped to about 30 frames per second and the whole thing became unplayable.
So, in comes the major refactoring task in order to support time-based animation and movement. After a long night, it all seems to be working now.
I keep track of time elapsed between frames and then calculate the percentage difference from the 60 frames per second. Then take that percentage and multiply it against the movement constants for each game object. This seems to take care of all the problems — though I probably need to test it out on some different processors when I get the chance.