So you’ve probably all heard the anecdote about how a frog would immediately jump out of boiling water but would sit comfortably and allow itself to be boiled to death if you initially placed it in cool water and raised the temperature gradually. Its apparently completely innacurate but its still a nice little story to convey a point. Boiling water is problematic but the source of discomfort isn’t really from the heat but instead the sharp change in temperature. The problem is the contrast. The frame rate (the number of times the screen is updated each second) in games is similar. Ideally a games frame rate should always be a constant 60 or higher. But you can get away with a lot less without it effecting the experience. 30 is a well accepted standard and to be honest I’m usually fine with anything at or over 25. To an extent its even preferable to have a consistently low frame rate then it is to have an inconsistently high one. The disparity created by brief moments of smooth game play only serves to draw attention to the problem.
That’s what I was referring to when I said that the improved frame rate would actually worsen the experience in the 0.7 release of Cubicle Shooter. I got it too the point where you could blow the world into 9999 pieces and it would still run at roughly 60 frames when you where looking at the sky with nothing else in front of you but would drop to to as low as 15 when you turn around and look at the fragmented walls. The game always ran poorly when the world became overly complex but that increasingly quick change from good to bad and back again only made the performance feel worse.
Although it tuned out not being so bad in the end. Using vertex buffer objects (to store the data about the walls on the GPU’s RAM instead of passing it to it again every time it needed to render them) cut down on the time spent on each block of the wall each frame but did nothing to help with rendering them and is what got me feeling uncomfortable. Interleaving the texture coordinates with the vertex positions helped speed things up a bit and raised that worst case scenario frame rate. And finally some stupidity on my part for how I moved the enemy animation to be done once a frame but not necessarily every time the screen is rendered (for the benefit of split screen multiplayer) slowed things a bit for single player in a very constant way. Which all helped to bring the highs and lows together and cut down on that contrast.
Obviously it would be nice to speed things up which would then allow for there to be more environmental destruction before the frame rate deteriorates. But I don’t really consider that a major focus anymore. My main concern now in terms of performance isn’t the average frame rate its how freaken long of a pause there can be at times when its updating the world after you blast a new hole into it.
Oh and on the off chance anybody cares I got PS3 stuff compiling for Windows again.