Hi guys,
Viral spread - that'd be great :-)
One of the basic jobs I do for a bitmapped game is to calculate how much work the blitter needs to do. My calculations from March 2013 estimated FIGnition 2blts 12622 tiles/s, which is 252 tiles per frame. These are 2blt timings (where a bitmap is xor-blitted with its old position to erase it and then (a possibly different bitmap) is xor-blitted into a new position).
FIGgyBird will need to blit 3 columns and a bird. Each column is 2 tiles wide and 14 tiles high (if we exclude the gap in the middle) = 28 tiles. Thus 3 columns require blitting 84 tiles. The bird needs 4 tiles, taking it up to 88 tiles. The background (if/when I add it) only needs blitting at the start.
84 tiles is only 33% of the frame blitting performance of FIGnition, which means we should achieve 50fps for this game; leaving 66% of CPU for playing the game, about 200*2/3 = 133KIPs or just over 2500 instructions per frame. So how much is needed?
The column loop needs about 12 instructions for each 8 pixels of the column and there are 12 of these in total. Also, 4 instructions are needed when displaying part of a column (which is done twice). Also, .pipe needs 57 instructions. So the total will be about: 209 per pipe or 627 for 3 pipes. So, the bulk of the computation is only 25% of remaining CPU. It will be a bit more than that for the animated version of the pipe display routine, let's say 33%. So, assuming that displaying the bird and doing other calculations takes up another half of that, then we're still only using 50% of CPU.
Conclusion, a 50fps version of FIGgyBird is easily within FIGnition's capabilities :-)