Moss is an effort to create a stable, efficient, portable, class library and modular architecture for game development. Moss is currently implemented for win32 and linux platforms, and is planned for MacOS X. Moss consists of two main parts:
The kernel is the core of the moss application. It is a binary executable that contains the base class library and controls the application loop. On it's own the kernel is useless and will only loop indefinitely until the process is stopped. The kernel is started with command line arguments specifying either a list of modules or a file containing a list. Moss will then load those modules and rely on them to perform the useful functions of the application.
Module refers to a binary dynamically loaded library and the MModule inheriting object it creates. Moss loads a module by invoking a plain C function from the library, which creates and returns an instance of the class the module provides. The object will inherit the functionality of an interface class which inherits MModule. Modules interact with each other by utilising the interface class corresponding to that module's type id string.
figure 2: Module Class Relationships