🚀

Web builds available now: CNA compiles to WebAssembly via Emscripten, and its WebGL 2 renderer (an EasyGL profile) is the Emscripten default. The demos below run directly in the browser from demos.libcna.com, and 90 C++ ports of Microsoft’s XNA samples are playable at samples.libcna.com. Android APKs and prebuilt Windows binaries are not published yet.

📚 cna-samples (GitHub)

C++ ports of the official XNA Game Studio 4.0 sample library — a concrete measure of how much real XNA code has been migrated. The repository’s own plan (cna-samples revision 5db32e6, 3 October 2026) audits 153 entries — the size of the audit list, not 153 games. 91 are complete C++ ports, so the port of the relevant XNA 4.0 samples is practically complete; 8 relevant XNA 4.0 C# programs remain, and 54 entries are not port targets (XNA 3.x or older content, Silverlight and Windows Forms tools, Visual Basic and C++ projects, asset packs, duplicates and samples tied to retired services). The Racing Game Kit is ported in its own plan and is not hosted, because its original content is not treated as redistributable by the sample gallery (video). The counts belong to that pinned revision and to CNA next at that date; they are not a result for CNA snapshot c1c316b9 and not a universal runtime result across renderers.

🌐

Playable sample gallery. 90 Release web builds (WebGL 2; five of them threaded) are published at samples.libcna.com, each run in Chrome when its port was completed — real XNA sample code running on CNA in your browser, not screenshots. One (PerformanceUtility) is marked partial. The same samples also run as unchanged original C# through CNA.NET.

Browse and play CNA Samples →
ⓘ

Shader-driven samples are no longer blocked by .fx. An earlier revision of this page said that 23 samples could not build because CNA lacked compiled-shader support. That is no longer true: BloomSample, NormalMapping, PerPixelLighting, ShadowMapping, DistortionSample, ShatterEffect, NonPhotoRealistic, ColorReplacement, SkinningSample, CPUSkinning, CustomModelAnimation, CustomModelEffect, ShipGame and Spacewar are all marked complete, because the official Effect binaries produced by XNA’s own content build load through CNA’s compiled-effect path. What CNA still does not do is compile HLSL .fx source at run time; see Effects System. The remaining samples wait on owner decisions or are documented non-ports, not on a missing shader compiler.

A representative selection of the samples marked complete at that revision:

Rendering & 3D

PrimitivesSample, Primitives3D, Graphics3D, GeneratedGeometry, ReachGraphicsDemo, LensFlare, RimLighting, SpriteEffects, SpriteSheet, TexturesAndColors, ShapeRendering.

Gameplay & complete games

Platformer, MarbleMaze, RolePlayingGame, CatapultWars, HoneycombRush, NinjAcademy, CardsStarterKit, Yacht, SnowShovel, SoccerPitch, ShipGame, Spacewar.

Input & devices

InputReporter, InputSequence, GesturesSample, TouchThumbsticks, AccelerometerSample, Orientation, MicrophoneEcho.

Shaders & effects

BloomSample, DistortionSample, NormalMapping, PerPixelLighting, ShadowMapping, NonPhotoRealistic, ColorReplacement, ShatterEffect, SkinningSample, CPUSkinning, CustomModelAnimation, CustomModelEffect — the samples that previously waited on compiled shaders.

Audio

Audio3D, SoundAndMusic — both exercising CNA's real XACT parser and its 3D audio path.

Collision, physics & AI

CollisionSample, PerPixelCollision, RectangleCollision, TransformedCollision, HeightmapCollision, Pathfinding, FlockingSample, FuzzyLogic, ChaseAndEvade, InverseKinematics, Bounce.

Cameras, UI & networking

ChaseCamera, CameraShake, SafeArea, UISample, DynamicMenu, GameStateManagement, LocalizationSample, ClientServerSample, NetRumble (native only).

View on GitHub

🌐 Web Builds (Emscripten / WebGL 2)

CNA compiles to WebAssembly via Emscripten; the WEBGL2 renderer (an EasyGL profile, and the Emscripten default) runs on WebGL 2, and CNA also has an experimental WebGPU renderer for the browser. Full 2D and 3D rendering work in the browser today. These are prebuilt binaries hosted at demos.libcna.com; each loads and responds to input when checked, but none is tied to a recorded CNA revision.

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

House Simulator

Explore a furnished house from the basement to the attic and garden, with changing daylight and weather. WASD or arrow keys move, click to look around with the mouse, Shift switches between walk and run, and Esc opens Pause. The first load downloads a large asset package.

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

CNA Craft

An interactive CNA Craft demo compiled to WebAssembly and running directly in the browser.

Play in Browser

CNA Examples

A browsable collection of CNA API examples and experiments, available as a WebAssembly application.

Play in Browser

Mesh Craft

An interactive WebAssembly demo focused on geometry and 3D mesh rendering with CNA.

Play in Browser

Black Pine

An exploration and puzzle adventure across a five-act story at a mountain radio relay.

Play in Browser

Lines CNA

A classic ball-line puzzle game — build lines of five or more matching colors before the board fills.

Play in Browser

Tamagotchi CNA

A faithful reimplementation of the 1997 virtual pet — one creature, three buttons, a tiny LCD.

Play in Browser

Wolf CNA

A retro first-person shooter prototype with true polygonal 3D rendering and multiple weapons.

Play in Browser

CNA Car Simulator

A realistic passenger-car driving simulator in a small fictional Czech town, with traffic, weather, a day-night cycle and a helicopter.

Play in Browser

CNA Street

A procedurally generated European inner-city street with a signalised junction, traffic, pedestrians, shadows and reflections. The street is built in your browser, so the first start takes about a minute.

Play in Browser

Living Room Simulator

An explorable, furnished 3D living room with changing daylight and weather, rendered by the original C++ application through the WebGL 2 renderer. WASD moves, the arrow keys look around, 1–8 switch viewpoints and F1 shows the controls. The first load downloads about 128 MiB of models.

Play in Browser

📱 Android Builds

CNA targets Android through SDL3's native Android support and NDK sensor integration, and the Devices demo carries a complete Gradle project (minSdk 24, arm64-v8a). There is no Android CI job and no APK has been published yet, so nothing below is downloadable; APKs will be published here when they exist.

CNA Demo APK

Android build of the CNA demo application. The demo project targets Android 7.0+ (API 24) and builds arm64-v8a.

⚠ No APK published yet

Speedy Blupi - Android Port

An Android Gradle/NDK project for the Speedy Blupi C++ port exists in its repository, but no APK has been published anywhere; build it yourself from source. See the Speedy Blupi section below.

⚠ No APK published yet

🖥 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. Clone CNA’s apple/m4-stabilization branch, as the build guide explains.

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) renderer. 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 renderers. 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; none exist yet (the CNA repository publishes tags only).

GitHub Releases

🏃 Speedy Blupi - Port / Demo

Speedy Blupi, in its 2013 Windows Phone edition, has been decompiled, translated from C# to C++ and moved onto CNA by the OpenEggbert project (repository openeggbert/mobile-eggbert, MIT-licensed). It is a showcase of the framework's capability to support real game code, a practical test of CNA's API coverage and a demonstration of the XNA-style game loop in action. It is an independent consumer of CNA, not part of CNA or its test suite: every result below belongs to the CNA revision it was built with, not to snapshot c1c316b9.

Speedy Blupi - Desktop

Builds and runs on Linux (SDL_Renderer) from source, and Windows builds are documented (native, MinGW cross-build, and Direct3D through Wine or Proton). No prebuilt binaries are published, and the repository lists open issues; follow the project on GitHub for updates.

Source on GitHub

Speedy Blupi - Web

Playable in the browser at speedyblupi.com, hosted by the OpenEggbert project as a WebAssembly build made with Emscripten. It is an external build of the Speedy Blupi port: its embedded CNA code dates from May 2026 (an early revision, using CNA’s SDL_Renderer backend), so it predates both alpha.1 and the documented snapshot and is not evidence for either. The Windows Phone game itself is not a CNA example.

Play in Browser

Speedy Blupi - Android

An Android Gradle/NDK project exists in the repository, but no APK has been published anywhere. Build it from source if you want to try it.

⚠ No APK published yet

🎮 cna-examples (GitHub)

A single browsable catalogue application that demonstrates CNA's own APIs area by area — rather than porting existing XNA samples, this is purpose-built teaching material. One executable (cna_examples) presents a Home → Area → Category → Demo menu you navigate at runtime, so you can step through the API surface without rebuilding. At revision ea33c9a29 (13 September 2026) 249 demo screens are registered across 13 areas and 79 categories, every one calling a real API rather than a mock. It builds against the OPENGLES3 renderer by default, though the renderer is overridable, and a hosted WebAssembly build is available above.

📝

Broad, with a catalogue checker. An earlier revision of this page described only two populated areas and no tests. Today every area has demos, tools/check_catalog.py keeps the table, plan and registrations in agreement, and the README reports all 249 screens rendering on both OPENGLES3 and SDL_RENDERER via a headless sweep. The count moves with the repository; run ./build/cna_examples --list-demos for the authoritative list.

Input — 52 screens

Keyboard, Mouse, Gamepad, Touch and a catch-all Other group (joysticks, host sensors, haptics, device enumeration and a cross-subsystem summary).

Audio — 12 screens

SoundEffect, SoundEffectInstance, 3D audio (AudioListener/AudioEmitter with Apply3D()), DynamicSoundEffectInstance, Microphone and XACT.

Graphics — 83 screens

40 in 2D Graphics and 43 in 3D Graphics, including self-checking screens that compute their own pass/fail for volume and cube textures.

Framework, Math, Content, Media, Devices, Net and more

Game loop and components, vectors and matrices, ContentManager with the XNB and CNJ formats, Song/Video/MediaLibrary, sensors and power, network sessions and leaderboards, storage, diagnostics and avatars — the remaining areas.

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.