CNA Demos
Runnable demonstrations of CNA capabilities across web, Android, and desktop platforms. CNA is a work in progress - demos reflect current state and will expand over time.
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 Browsercna-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 linkSpeedy 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.
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.
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.
Sound Demo - Linux
Audio playback demo using SoundEffect and SoundEffectInstance with volume/pitch/pan control. Build with cmake --build build --target cna_demo_sound.
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 linkSpeedy 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 BrowserSpeedy 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.
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.