💡

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.

📚

Doxygen API reference: CNA does not yet have a hosted Doxygen API reference. You can generate one locally: install Doxygen, then run doxygen Doxyfile from the CNA repository root. The generated HTML will be in docs/html/index.html. Alternatively, browse the source headers directly at include/Microsoft/Xna/Framework/ on GitHub.

🚀

Getting Started

Quick introduction to CNA - what it is, prerequisites, first build, and a minimal game skeleton.

Start here
🛠

Building

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 measured type-by-type against FNA - what exists, what's missing, and where "present" does not mean "working".

🔬

Verification & Known Issues

How CNA is actually tested - and the complete, current list of what is broken. Read this before committing to a port.

Start here before porting

Effects System

Built-in effects reference: BasicEffect, AlphaTestEffect, DualTextureEffect, EnvironmentMapEffect, SkinnedEffect, and custom ShaderEffect.

🖼

SpriteBatch

Complete SpriteBatch guide covering Begin overloads, Draw overloads, SpriteSortMode, and BlendState configuration.

🎵

Audio System

Audio API reference: SoundEffect, SoundEffectInstance, MediaPlayer, Song, and the now-functional XACT runtime.

🎮

Input System

Input handling guide for Keyboard, Mouse, GamePad, and TouchPanel across all supported platforms.

🔢

Math Types

Math type reference: Vector2, Vector3, Vector4, Matrix, Quaternion, BoundingBox, Curve, and related utilities.

🗻

Roadmap

Detailed development roadmap - current sprint, upcoming milestones, and long-term vision.

FAQ

Frequently asked questions about CNA, its goals, differences from FNA/MonoGame, and how to contribute.

Subsystem reference

Deeper reference for individual parts of the API.

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 ↗