Some interesting factoids about sprites (computer graphics sense) that spring into mind:

  • In Commodore 64, sprites (or MOBs, as they were super-officially known, even when everyone called them just sprites) were 24x21 pixels, each either single-colored or (with half horizontal resolution) 3-colored. Sprite data was organized in a fairly easy way: The sprite data was 3x21=63 bytes, with each horizontal row of the sprite represented with 3 bytes (24 bits). Due to multi-color resolution thing, One common technique was to create the character out of n*2 sprites - one colored sprite on bottom, giving the colors, and one hi-rez black sprite on top, giving the outlines. They could be expanded in both directions to double size, but one hack I saw used video chip rasters quite cleverly to expand them up to 8 times! On hardware, C64 supported only 8 sprites.
  • Nintendo Entertainment System supported gigantic amount of 64 sprites... at 8x8 or 8x16 pixels. See NES PPU.

On these two systems, there's almost always the problem of running out of sprites - The 8 sprites on C64 are definitely not enough for anything involving many characters, and on NES, constructing anything large enough eats up lots of sprites. The problem is solved (though not in very programmer-friendly way) by using raster interrupts: Once the sprite has been drawn, you change the sprite pointers in memory, and the system thinks it hasn't yet drawn the sprite on this scanline and starts over again. This often works pretty well, but it sometimes gets a bit out of hand, particularly in quickly written and hastily produced games (I think TMNT games sprite-bugged a lot on both C64 and NES!) - but sometimes this bugs in even high-profile releases (The squashers in Mega Man 2 Dr. Wily levels with their chains magically appearing in walls...)

(Thanks for corrections to yerricde)