CNA Documentation
Everything you need to understand, build, and develop with CNA. Documentation is growing alongside the project — contributions welcome.
CNA is a work in progress. Documentation reflects the current state of the codebase and is updated as features are implemented. For the most authoritative source, consult the source code and README on GitHub.
Getting Started
Quick introduction to CNA — what it is, prerequisites, first build, and a minimal game skeleton.
Start hereBuilding
Full build instructions for Linux and Windows, backend selection, cross-compilation with MinGW-w64, and optional system SDL.
Platforms
Detailed platform support matrix: Linux, Windows, Android, and web (Emscripten) — current status and future targets.
Rendering Backends
Comparison and guide for SDL_Renderer, EasyGL (OpenGL), bgfx, and Vulkan backends — tradeoffs and when to use each.
XNA Compatibility
API coverage table — which XNA 4.0 classes and namespaces are implemented, partially implemented, or planned.
Roadmap
Detailed development roadmap — current sprint, upcoming milestones, and long-term vision including Nova-3D integration.
FAQ
Frequently asked questions about CNA, its goals, differences from FNA/MonoGame, and how to contribute.
External references
CNA targets compatibility with the Microsoft XNA 4.0 API. These external resources are useful for understanding the target API surface:
Microsoft XNA 4.0 API Reference
Official Microsoft documentation for XNA Game Studio 4.0 on Microsoft Learn.
Open ↗FNA Documentation
FNA is a managed C# reimplementation of XNA 4.0. Its documentation is a useful cross-reference.
Open ↗MonoGame Documentation
MonoGame extends the XNA API. Good reference for API patterns and expected behaviour.
Open ↗SDL3 Documentation
SDL3 is CNA's platform foundation. The SDL3 wiki is the reference for the underlying platform APIs.
Open ↗