Infinite bobs
Demoscene |
---|
Concepts |
Alternative demo platforms |
Current parties |
Past parties |
Websites |
Magazines |
Software |
|
The infinite bobs is an effect used in demos that show a lot of simple sprites moving on the screen at the same time (usually on computers like Amiga, Atari ST, or Commodore 64, which featured a limited number of sprites).
The effect is achieved thanks to multiple buffers: actually, only one sprite is used, and it is rendered only once per frame; but, unlike most of software sprite engine, nothing is done to preserve the background, or to erase the sprite from the old position (so, moving a sprite leaves a trail behind it). Video buffers are rotated, and each frame use a different buffer from previous: so, the sprite will be drawn in a slightly different position in all buffers; when all buffers have been used, the first one is used a second time, without cleaning it, so the sprite is rendered on a buffer that already contain the sprite image (but, since some other frames have been rendered in the meantime, the two pictures don't overlap); by flipping all the buffers, all instances of the sprites appear like they are moving.
With that trick, there is no limit to the number of sprites that can be rendered: since only one sprite needs to be moved, animated and rendered, the speed does not change when the screen is empty, or when thousands of sprites are already moving. Of course, all the sprites need to follow the same path, mimicking the first one (the only one that is actually moved by the program); so, that trick cannot be used in particle systems, or in shoot-em-ups, where each sprite needs its own vector.