My main project is the development of a game engine called PlaneD. It's a 2d engine with a focus on modularity, portability, and performance. Here's a quick summary of the current features.
Currently, graphics are done using OpenGL, and sound is through SDL. 90% of the code necessary to do basic 3d scenes is done. The 2d code has already been used in a commercial game, and several minor applications. Currently, I am also developing a game manager and downloader, which uses PlaneD for the userside application.
- Hot swappable graphics/sound/physics modules
- Automated and easy settings management
- Multicore support
- Multiple windows, runtime resolution switching
- MDI style layout for multiple scenes or contexts
- Support for Mouse/Keyboard/Controllers via one interface
- OOP based garbage collector
- Memory pools
- Game mod management
- File manager with versioning, archives, and mod support
- Dynamic resource management (textures, sounds, actor definitions, etc)
- All resources are indexed by user friendly strings, easy to update.
- Resources parsed from xml, ini, or from 2 proprietary formats
- Optionally discover and load all valid resources in specified directories
- Plug in your own code via events, function pointers, or inheritence
- ttf/bmp font support (ttf is through FreeType)
- Texture support for bmp/png/jpg/gif/tga, using FreeImage
- HTTP/FTP support
- All calls to non portable functions are wrapped, so it's easy to add support for another OS
- Automatic measurement conversion.
- Unlimited camera zoom scaling
- Performs well enough to have several thousand active sprites in a scene, on even a very outdated computer.
- Built in support for mapediting a scene while the game is running or paused
These are some screenshots of Eternity's Child in action:
These are some screenshots of the map-editor for Eternity's Child, as well as the animation tool built using PlaneD: