Detailed Roadmap
CNA is a long-term open-source project. There are no fixed release dates. Progress is incremental. This roadmap describes goals and current priorities, not commitments.
Current sprint — XNA API coverage expansion
The top priority is incremental implementation of XNA 4.0 API classes not yet covered. Each class is implemented with the goal of matching XNA 4.0 semantics in C++. Implementation is tracked in the source code with TODO markers and progressive stubs.
Active implementation targets
- Remaining
Graphicstypes:Effect,BasicEffect,RenderTarget2D,VertexBuffer,IndexBuffer Input:KeyboardState,MouseState,GamePadStateAudio:SoundEffect,SoundEffectInstance,MediaPlayer- Additional
SpriteBatchoverloads (rotation, scale, source rectangles, effects) - bgfx backend rendering implementation
Near-term milestones
Milestone: Speedy Blupi full port
A real-world game (Speedy Blupi) is being ported to run on CNA. This is the most important near-term validation milestone. It will expose gaps in API coverage, semantic differences from XNA, and performance characteristics.
Expected to drive: SpriteBatch completeness, input handling, audio, content loading, and game loop fidelity.
Milestone: Windows CI validation
Setting up continuous integration for Windows builds. MSVC 2022 and MinGW-w64 targets. SDL_RENDERER backend. Ensures Windows support does not regress.
Milestone: bgfx backend completion
Completing the bgfx backend to full feature parity with SDL_RENDERER and EASYGL backends. This includes SpriteBatch, Texture2D, and GraphicsDevice operations through the bgfx API.
Phase 2 milestones — compatibility & platform expansion
Milestone: Android build support
CMake toolchain configuration for the Android NDK. SDL3 Android build validation. Platform lifecycle adaptation (Activity pause/resume). Validation on Android hardware with SDL_RENDERER.
Milestone: Emscripten / web build support
CMake toolchain for Emscripten. SDL3 Emscripten target. Game loop adaptation for emscripten_set_main_loop. Asset loading for web. Enables browser-based demos.
Milestone: Expanded test coverage
GoogleTest suite expansion: math correctness, game loop semantics, cross-backend rendering consistency. Regression protection for API changes.
Milestone: Vulkan backend
Implementing the Vulkan backend beyond its current scaffold state. Requires Vulkan swapchain, command buffer, pipeline, texture, and SpriteBatch implementations. Long-term parallel effort alongside bgfx.
Phase 3 — Nova-3D foundation
Nova-3D integration
Once CNA reaches a stable, broadly-tested state (Phase 1 + Phase 2 complete), Nova-3D will begin using CNA as its internal runtime and rendering abstraction layer. Nova-3D depends only on CNA's public API layer — not on backend internals.
3D rendering extensions
Extending the CNA rendering abstraction beyond SpriteBatch 2D to 3D geometry, materials, camera, and lights. Required as a foundation for Nova-3D's 3D capabilities.
Public stable release (v1.0)
A versioned, stable release of CNA with:
- Full XNA 4.0 public API coverage
- Two or more stable backends
- Multi-platform validation (Linux, Windows, Android)
- Comprehensive test suite
- API stability guarantee
Contributing to the roadmap
The best contributions at this stage are:
- Implementing missing XNA API classes (any unchecked entry in XNA Compatibility)
- Improving backend feature parity (bgfx, Vulkan)
- Writing tests for existing implementation
- Testing on Windows, Android, or other platform targets
- Porting games to CNA to expose API gaps
Open issues and TODO markers in the source are the best starting points. See the GitHub repository.