🚀

Web builds available now: CNA's EasyGL backend compiles to WebAssembly via Emscripten. The House 3D Demo and the main CNA Demo both run in the browser today. Additional platform builds (Android, Windows prebuilt) are still in progress.

🌐 Web Builds (Emscripten / WebGL 2)

CNA's EasyGL (OpenGL ES 3.0) backend compiles to WebAssembly via Emscripten and runs via WebGL 2. Full 2D and 3D rendering work in the browser today.

House 3D Demo

Procedural 3D house scene with walls, roof, windows, door, and floor. Player movement via WASD + gravity. Runs via WebGL 2/Emscripten. Tests: 3D rendering, BasicEffect, keyboard input.

Play in Browser

cna-demo (2D Sprite Demo)

2D sprite demo running via WebGL 2/Emscripten. Tests: SpriteBatch rendering, 2D rendering pipeline, and basic game loop.

Play in Browser

📱 Android Builds

CNA runs on Android via SDL3's native Android support. The NDK toolchain is configured and validated on Android hardware. Downloadable APKs will be published here.

CNA Demo APK

Android build of the CNA demo application. Requires Android 7.0+ (API 24). ARM64 and x86_64 targets supported.

⚠ TODO: APK download link

Speedy Blupi - Android Port

Android port of the Speedy Blupi game running on CNA. A milestone demo for Android CNA support.

⚠ TODO: APK download link

🖥 Desktop Builds

Desktop builds are the primary current delivery target. Linux binaries and Windows executables can be built from source following the build guide. Prebuilt binaries may be published with future releases.

House 3D Demo - Linux

Procedural 3D house scene with walls, roof, windows, door, and floor. Player movement with WASD + gravity. Uses EasyGL (OpenGL ES 3.0) backend. Tests: 3D rendering, BasicEffect, keyboard input. Build with cmake --build build --target cna_house3d_demo.

Build Instructions

2D Sprite Demo - Linux

SpriteBatch rendering demo with texture loading, movement, rotation, and scaling. Works on all backends. Build with cmake --build build --target cna_demo_2d.

Build Instructions

Input Demo - Linux

Real-time visualization of keyboard keys, mouse state, gamepad axes/buttons/D-pad/triggers, touch input, and gestures. Build with cmake --build build --target cna_demo_input.

Build Instructions

Sound Demo - Linux

Audio playback demo using SoundEffect and SoundEffectInstance with volume/pitch/pan control. Build with cmake --build build --target cna_demo_sound.

Build Instructions

Prebuilt Releases

Prebuilt Linux and Windows binaries will be published as GitHub Releases when stable milestones are reached.

GitHub Releases

🏃 Speedy Blupi - Port / Demo

Speedy Blupi is a classic open-source game being ported to run on CNA as a showcase of the framework's capability to support real game code. This port is both a practical test of CNA's API coverage and a demonstration of the XNA-style game loop in action.

Speedy Blupi - Desktop

Desktop version of the Speedy Blupi CNA port. Currently in development. Follow the project on GitHub for updates.

⚠ TODO: project link

Speedy Blupi - Web

Browser-playable WebAssembly build of the Speedy Blupi CNA port. Emscripten/WebGL 2 support is now working in CNA — Speedy Blupi web port is in progress.

Play in Browser

Speedy Blupi - Android

Android APK of the Speedy Blupi CNA port. APK download coming soon.

⚠ TODO: APK link

📚 cna-samples (GitHub)

Sample applications ported from the original XNA Game Studio 4.0 sample library. These samples demonstrate core CNA APIs and serve as reference implementations for developers learning the framework.

PrimitivesSample

2D primitive drawing demo (lines, shapes) demonstrating SpriteBatch and primitive rendering APIs. A direct port of the classic XNA primitive drawing sample.

Primitives3D

3D geometric primitives (cube, sphere, cylinder) demonstrating VertexBuffer, BasicEffect, and 3D draw calls. A direct port of the XNA Primitives3D sample.

View on GitHub
🛠

Build it yourself now: While public binaries and web builds are still being prepared, you can build CNA from source today. See the Getting Started guide and Build Instructions.