The Kigs framework has always been developed as a tool for rapid video games, simulators, virtual reality application development.
We wanted to have a game engine that even small companies, with small budgets could use (free, easy to use) for real life project (cross platform, easy to port, easy to extend).
And we wanted to be able to correct ourselves bugs, decide ourselves how to design our games, and not to rely on closed source engine. In a word to be free (open source).
C++ is the most used langage in professional game companies. C++ compiler are availables on all consoles, a lot of API or open source library are available in C++. A lot of video game developers are C++ fluent. It was the best choice for cross-platform, object oriented professional use.
Generic modules are cross platform C++ (STL, libc), they are compiled as static libraries, and contain base classes (API/SDK/platform/OS independant classes).
Specific modules are dynamic libraries, they contain the API/SDK/OS/platform dependant implementation of base classes found in Generic modules.
Anonymous modules are dynamic libraries containing classes with no need to a have a new base class : a special 3D SFX object inherited from the generic Node3D base class.
Except for the Core module, all modules can be changed by your own modules.
Core: manages memory, instance factory, classes registration, base classes for all the framework classes, serialization mecanisms, classes members access mecanisms, other module initialisation and dynamic loading...
FileManager: manages pathes and file search.
Timer: manages time.
SceneGraph : manages all scene graph mecanisms : 3D nodes hierarchy, cameras, culling, drawing, zone...
Renderer : manages rendered objects : Meshes, textures, materials, rendering screens...
... : and a lot more
OpenGLRenderer: opengl texture, meshes...
SoundManagerOpenAL: OpenAL sound playing
GUIWindows: Win32 window management
... : and a lot more