games A Sprite Engine... from a Slightly Different Point of View Kyra is a simple, fully featured, industrial strength Sprite engine written in C++. It is built on top of SDL and has been tested on Windows and Linux. It is provided free for open source projects under the GPL and LGPL. What is a Sprite Engine? A Sprite Engine is the drawing and rendering component of 2D and quasi-3D games. Examples of this kind of game are Civilization, Donkey Kong (classic arcade), Pharaoh, Zeus, Warcraft, Diablo, Frogger, and Pirates!, among many others. It is so called because the "characters" or "little men" are referred to as "sprites". Simple and Easy to Use. Kyra has a clean and simple C++ interface. Or at least as simple as an engine can be. It comes with several examples to get you started, as well as full documentation for the API and the tool chain. Fully Featured. It is fully featured, supporting top-down, side, and isometric rendering. It supports the 'Sprite' as its basic type, but also supports Tiles and user-drawn Canvases. It can draw to a traditional bitmap surface, and supports OpenGL hardware acceleration. Industrial Strength. Kyra has a complete tool chain including a sprite editor and encoder. It's fast and capable, with specialized code for rendering and rectangle updates. ...From a Slightly Different Point of View. But Kyra does some things differently. It supports color transformations and alpha blending (!). All objects in Kyra are inserted into a containment hierarchy, and children are transformed by their parents. So a complex object can be moved simply by changing the coordinates of the top level object, and color transformations and alpha transformations work the same way. The alpha blending can be applied at a per-image or per-pixel level. Objects can be scaled up or down when drawn, or scaling can be pre-cached. The screen can be split into sub window views, and each view has its own object transformations. Use as is. Kyra is currently working and ready for use. You can put it into your programs and start using it now. It has been used enough to mature some and be already bug fixed. On the other hand, if you're someone who likes to get involved, there are still optimization and feature opportunities in the code.