<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/cna---it-s-xna-but-c--nf3zk0mq0" -->

---
title: CNA - It's XNA But C++! | daily.dev
description: CNA is an open-source, work-in-progress re-implementation of Microsoft's XNA game development framework written in C++23, using SDL3 as a backend with a...
canonical: https://daily.dev/posts/cna---it-s-xna-but-c--nf3zk0mq0
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: CNA - It's XNA But C++! | daily.dev
og:description: CNA is an open-source, work-in-progress re-implementation of Microsoft's XNA game development framework written in C++23, using SDL3 as a backend with a...
og:url: https://daily.dev/posts/cna---it-s-xna-but-c--nf3zk0mq0
og:image: https://api.daily.dev/og/posts/NF3Zk0Mq0.png
og:image:alt: CNA - It's XNA But C++!
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# CNA - It's XNA But C++!

**[Gamefromscratch](https://daily.dev/sources/gamefromscratch)** · 8 min read · 10 upvotes · 0 comments

## Summary

CNA is an open-source, work-in-progress re-implementation of Microsoft's XNA game development framework written in C++23, using SDL3 as a backend with a pluggable rendering layer. It aims to bring XNA's clean, familiar API to C++ developers who want native performance without garbage collection. The project currently has 236,000 lines of code, ~99% type presence, ~75% functional coverage, and supports 14 rendering backends including Direct3D 9, Vulkan, and SDL GPU. A demo game (Speedy Bloopy) has been ported and runs in-browser via a canvas backend. The project is open source under the MSPL license. XNA's legacy includes major indie titles like Stardew Valley, Terraria, and Celeste, with MonoGame and FNA being the existing C# successors.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=eHOSDlWfW6A>

## Questions this post answers

### Is there a C++ version of the XNA game framework?

Yes, a project called CNA reimplements Microsoft's XNA game framework in C++23 instead of C#, using SDL3 on the backend with a pluggable rendering layer. It supports 14 selectable rendering backends including Direct3D 9, Vulkan, and canvas, has about 99% type coverage and 75% functional coverage, and is roughly 236,000 lines of code. It's open source under the MSPL license.

_Developers weighing C++ over C# for game frameworks can track CNA's progress and alternatives via daily.dev._

### What are the alternatives to XNA for cross-platform game development today?

Two main derivatives keep XNA alive: MonoGame, a fully cross-platform evolution of XNA that continues receiving new features and can run on consoles with proper authorization, and FNA, which stays essentially 100% compatible with the original XNA for developers wanting to port old titles without changes. A newer option, CNA, offers the same XNA structure but reimplemented in C++.

_Choosing between MonoGame, FNA, and CNA gets easier when developers compare notes on daily.dev._

### What well-known indie games were originally built using XNA?

Notable titles developed using XNA or its derivatives include Stardew Valley, Terraria, Celeste, Bastion, Dust: An Elysian Tail, Barotrauma, Rogue Legacy, and Streets of Rage 4. Supergiant Games, the studio behind Hades, also got its start developing XNA games before moving to a custom C engine.

_Indie developers researching proven frameworks behind hit games can follow this history on daily.dev._

## Similar posts on daily.dev

- [Master Low-Level Graphics in C: Build a Software Renderer from Scratch](https://daily.dev/posts/master-low-level-graphics-in-c-build-a-software-renderer-from-scratch-ssvj3mayp) · freeCodeCamp · 0 upvotes · 0 comments
- [GitHub - MonoGame/MonoGame: One framework for creating powerful cross-platform games.](https://daily.dev/posts/github---monogame-monogame-one-framework-for-creating-powerful-cross-platform-games--ska9nkiqu) · Hacker News · 0 upvotes · 0 comments

---

Tags: [#game-development](https://daily.dev/tags/game-development), [#c++](https://daily.dev/tags/c++)

[View this post on daily.dev](https://daily.dev/posts/cna---it-s-xna-but-c--nf3zk0mq0)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"CNA - It's XNA But C++!","url":"https://daily.dev/posts/cna---it-s-xna-but-c--nf3zk0mq0","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/cna---it-s-xna-but-c--nf3zk0mq0"},"datePublished":"2026-08-04T15:25:05.631Z","dateModified":"2026-09-13T20:19:45.778Z","description":"CNA is an open-source, work-in-progress re-implementation of Microsoft's XNA game development framework written in C++23, using SDL3 as a backend with a...","image":"https://i.ytimg.com/vi/eHOSDlWfW6A/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/eHOSDlWfW6A/sddefault.jpg","isAccessibleForFree":true,"articleSection":"Gamefromscratch","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Gamefromscratch","logo":"https://media.daily.dev/image/upload/s--EcPfFcSs--/f_auto/v1724391677/logos/gamefromscratch","url":"https://daily.dev/sources/gamefromscratch"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/cna---it-s-xna-but-c--nf3zk0mq0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":10},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"game-development,c++","timeRequired":"PT8M","video":{"@type":"VideoObject","name":"CNA - It's XNA But C++!","description":"CNA is an open-source, work-in-progress re-implementation of Microsoft's XNA game development framework written in C++23, using SDL3 as a backend with a...","thumbnailUrl":"https://i.ytimg.com/vi/eHOSDlWfW6A/sddefault.jpg","uploadDate":"2026-08-04T15:25:05.631Z","duration":"PT8M","url":"https://api.daily.dev/r/NF3Zk0Mq0","embedUrl":"https://www.youtube.com/embed/eHOSDlWfW6A"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Gamefromscratch","item":"https://daily.dev/sources/gamefromscratch"},{"@type":"ListItem","position":3,"name":"CNA - It's XNA But C++!"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/cna---it-s-xna-but-c--nf3zk0mq0#faq","mainEntity":[{"@type":"Question","name":"Is there a C++ version of the XNA game framework?","acceptedAnswer":{"@type":"Answer","text":"Yes, a project called CNA reimplements Microsoft's XNA game framework in C++23 instead of C#, using SDL3 on the backend with a pluggable rendering layer. It supports 14 selectable rendering backends including Direct3D 9, Vulkan, and canvas, has about 99% type coverage and 75% functional coverage, and is roughly 236,000 lines of code. It's open source under the MSPL license. Developers weighing C++ over C# for game frameworks can track CNA's progress and alternatives via daily.dev."}},{"@type":"Question","name":"What are the alternatives to XNA for cross-platform game development today?","acceptedAnswer":{"@type":"Answer","text":"Two main derivatives keep XNA alive: MonoGame, a fully cross-platform evolution of XNA that continues receiving new features and can run on consoles with proper authorization, and FNA, which stays essentially 100% compatible with the original XNA for developers wanting to port old titles without changes. A newer option, CNA, offers the same XNA structure but reimplemented in C++. Choosing between MonoGame, FNA, and CNA gets easier when developers compare notes on daily.dev."}},{"@type":"Question","name":"What well-known indie games were originally built using XNA?","acceptedAnswer":{"@type":"Answer","text":"Notable titles developed using XNA or its derivatives include Stardew Valley, Terraria, Celeste, Bastion, Dust: An Elysian Tail, Barotrauma, Rogue Legacy, and Streets of Rage 4. Supergiant Games, the studio behind Hades, also got its start developing XNA games before moving to a custom C engine. Indie developers researching proven frameworks behind hit games can follow this history on daily.dev."}}]}
```

