A C# platform-independent game development framework.
One of the ultimate goals of the framework is to allow developers to just change one line and a compile-time define in order to port their application to another platform (such as Mono).
In order to make this happen, we are outlining a set of interfaces that shall expose common engine operations, so that you will be able to use a different engine while mantaining all your existing codebase.
An example:
// compile without the MONO defineinternal static IEngine engine = new Truevision3DEngine(); // new SlimDXEngine(); // new OpenTKEngine(); // OpenGL engine, we might as well compile with // the MONO define, so that Win32 specific p/invokes // will be removed accordingly and the code will // hopefully run on the Mono clr as well.
Imagine building a terrain editor, a level editor, a whole game. In this way, you can keep your algorithms and just recompile with the proper Engine assembly reference.
Another goal is to provide extensible implementations of reusable components. The Framework will provide elements to cover many (if not all, in the simplest case) aspects of your application.
We are striving to maximize reusability and performance.
Work in progress:
- Graphics engine abstraction interfaces and data structures.
- A Scenegraph implementation, along with paging and culling.
- Game states and input management facilities.
- Scriptable Entity System with persistence features.
- Networking layer.
- Scriptable user interface.
We are currently focusing on the engine abstraction interfaces.
Interested in helping? Consider joining us!
Comments