MoonWorks is a free cross-platform game development framework. Its implementation is heavily inspired by FNA, which is itself a free implementation of the Microsoft XNA API.

MoonWorks wraps native-code implementations in managed C# for clean high-level abstractions that still run fast. It’s simple and it tries to stay out of your way as much as possible.

MoonWorks does provide the components you need to implement a functioning game: window management, input, graphics, 3D math utilities, and audio.

MoonWorks does not include things like a built-in physics engine, a GUI editor, or a standard rendering pipeline. These decisions and tools are better made per-team or per-project. In short, if you know or want to learn what a vertex buffer is, this framework is for you.

MoonWorks uses strictly Free Open Source Software. It does not have any kind of dependency on proprietary products, and it never will! I have been working professionally on games for nearly a decade and in that time I have learned that proprietary software is utterly disastrous for long-term maintenance of projects. You deserve to have the freedom to own your development process.

This document is intended as a guide for getting your head around how to use MoonWorks in practice. For the actual API reference, the source is documented extensively in doc comments that your preferred IDE can read.

If all this sounds good to you, read on!