What is IndieLib?
IndieLib is a c++ 2.5d engine for game development and fast game prototyping in a really easy way. Internally it uses Direct3d for hardware acceleration, but doesn't use DirectDraw or ID3DXSprite, it directly draws textures on polygons. The engine is focused in fast 2d rendering, but also allows you to use 3d models. The main IndieLib features are:
- Simple interface and extreme easiness: really fast game prototyping using entities for each of the graphical objects and changing their attributes. All the methods are as simple as "SetPos", "SetCollisionArea", "SetFade", "SetTransparency", etc.
- Translations, rotation, mirroring and scaling of sprites.
- Alpha blending, transparency, tinting and fading of sprites.
- Render images of any size (not only power of two). You can load images as big as 10000x10000 pixels or more, and IndieLib will cut them internally in smaller blocks. Furthermore, IndieLib will automatically discard all the blocks out of the screen, also if your sprites are transformed and the camera making a zoom or rotated, only what you see is what is going to be rendered.
- SetGrid method in order to create grids for your sprites. Later you can move each grid point in order to make a lot of different effects like waves, etc.
- 2d and 3d camera concepts, completely independent of the graphical objects. Easy methods to translate, rotate or zoom you camera.
- Easily creation of several viewports. Just create as many viewports as you want using different cameras assigned to them. This is really useful for making widescreen games, etc.
- Scrolls of any size, with automatic block discarding.
- Animation system using XML animation scripts, for defining the frames and sequences.
- Advanced collision system. Create an xml file defining your collision areas per sprite using circles, rectangles or triangles. You can define as many collision groups as you want, each one with a different name. Join this file to an entity object and check collision between the collision groups of other entities. Don't worry about translating, rotating or scaling your entities, the collision groups will always fit perfectly your entity. You can also have sprite animations in which each frame has different collision groups (imagine this feature in a "Street Fighter" type game).
- Bitmap font system, for drawing graphical texts of fonts created with MudgeFont for IndieLib. Change the alignment, char spacing and line spacing easily.
- Rendering of 3d Meshes (you can mix 2d and 3d easily). You can also apply transformations to them (rotation, scaling, fading, etc). This will allow you to make games like "New Super Mario Bros" in which the characters are 3d models and the scenario is 2d.
- Light manager, for lighting your 3d models. Enable / Disable lights, change their attributes, etc.
- Timers. Start, stop, pause them easily.
- Entity class, for both 2d and 3d objects, for managing the graphical objects in a really easy way. Just create an entity, join a graphical object to it, an change it's attributes (space transformations, color transformations, etc).
- Image class, for loading / saving different types of image files and for accessing to the bitmaps directly. You can also apply filters to the images like gaussian, noise, equalize, saturation, etc.
- Direct blitting of primitives (rectangles, circles, polygons, lines, etc).
- Mouse and keyboard input. Check if any key/button has been pressed, is being pressed or has been pressed more than n milliseconds. Check combination of keys/buttons that are pressed at the same time.
What is the IndieLib license?
Is IndieLib documented? Is there a forum for posting my doubts?
Yes! Check out these links:
What do I need to develop an IndieLib application
The are some things you need in order to use IndieLib. The first thing is a programming environment. The programming environment will depend on the platform you use. Generally, under windows, IndieLib is compiled for Visual C++ 2008 Express Edition (that is free) and Visual C++ 6. You will also need the DirectX SDK, that IndieLib uses for rendering the 2d stuff using hardware acceleration. The last thing you need is, of course, the IndieLib SDK. Under OSX and Linux, requirements will differ quite a bit. Also you would need OpenGL available under these platforms.
Check out the Tutorial 01 Installing for getting started.
Is IndieLib portable?
Yes!! There is an ongoing project porting all features to OpenGL and OpenGL ES 2.0. As for the time of this writing, supported OS are Windows, Linux and OSX. Supported renderers are DirectX 9.0c and OpenGL 1.5 over all platforms. Check out this wiki page for roadmap and state of project: 
Has IndieLib a Music engine?
Who is the developer of IndieLib
The project was handed over to:
Miguel Angel Quinones (mailto:email@example.com) as a team lead. Michael Fogh Kristensen (mailto:firstname.lastname@example.org) as Linux developer and project contributor.
The original developer of the library (Windows / DirectX) is *Javier López López* (http://javilop.com), a Spanish game designer / programmer / 3d artist, who likes all the stuff related to digital art, game development and game designing.
I'm reading this stuff and I'm liking it?
HELL YEAH! Now, make games!