On this page
Overview
FNA is a C# project focused on accurately reimplementing the Microsoft XNA 4 runtime. It preserves the Microsoft.Xna.Framework namespace and XNA4 API behavior so existing XNA titles can be ported and maintained across open desktop platforms.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Prioritize compatibility with the XNA4 API and runtime behavior
FNA is not centered on a new proprietary game-engine API. Its goal is an accurate XNA4 runtime reimplementation, retaining Microsoft.Xna.Framework so existing XNA codebases can move with minimal API rewrites.
Connect graphics, audio, video, and input through native backends
The repository references FNA3D, FAudio, Theorafile, dav1dfile, and SDL2/SDL3 submodules, connecting the C# XNA-facing API to graphics, audio, video, windowing, and input functionality.
Best fit
Fits teams porting or maintaining XNA4 games on desktop platforms
It is useful when an existing game depends on XNA4 APIs and should be preserved while targeting desktop platforms beyond the original Windows-focused XNA environment.
Sources: [1]
Before adoption
It is a runtime compatibility layer, not a full editor-driven game engine
The README positions FNA as an XNA4 runtime reimplementation for desktop. It does not provide a scene editor or a new asset-authoring environment, so projects retain a code-driven XNA/FNA workflow.
Sources: [1]
Runtime work depends on native submodules and multiple component licenses
A source checkout needs submodules such as FNA3D, FAudio, and Theorafile. FNA itself uses the Microsoft Public License, while LzxDecoder is dual MS-PL/LGPL 2.1 and Mono.Xna-derived code is MIT, so bundled component licenses also require review.
Official sources
- [1]FNA README snapshot(2026-10-04)
- [2]FNA project file snapshot(2026-10-04)
- [3]FNA .NET Standard project snapshot(2026-10-04)
- [4]FNA native submodules snapshot(2026-10-04)
- [5]FNA Microsoft Public License(2026-10-04)
- [6]FNA LzxDecoder license(2026-10-04)
- [7]FNA Mono.Xna-derived code license(2026-10-04)
Supplemental curator note
FNA is a runtime for preserving and porting existing XNA4 code rather than a new editor-driven game engine. Adoption should consider both API compatibility and the distribution and licensing of native components such as FNA3D and FAudio.
Try it in 3 steps
- 1
Fetch the reviewed FNA source with submodules
Clone FNA3D, FAudio, Theorafile, and the other native dependencies, then pin the commit reviewed on 2026-10-04.
git clone --recurse-submodules https://github.com/FNA-XNA/FNA.git && git -C FNA checkout 738c0a64df173c54187e78dde3a75d3d7a3e5c0e && git -C FNA submodule update --init --recursive - 2
Build the .NET Standard FNA assembly
Build the managed
netstandard2.0assembly. This step does not yet package the native libraries required to run a game.cd FNA && dotnet build FNA.NetStandard.csproj -c Release - 3
Verify the generated FNA.dll
Confirm the managed runtime build output. Running an actual game also requires the platform-specific FNA3D, FAudio, SDL, and other native libraries.
cd FNA && test -f bin/Release/netstandard2.0/FNA.dll && echo 'FNA build OK'
Growth
Growth trends · Last 30 days
3,051 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 99
- Open PRs
- 33
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- xna
- fna
- csharp
- gamedev
- windows
- macos
- linux
- steamos
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Jellyfin57,751 Stars
1 shared tag(s) · Same language
Serve your own media library and adapt playback through Direct Play or Transcode for each client
C# - ASP.NET Core38,464 Stars
1 shared tag(s) · Same language
build web apps, HTTP APIs, and mobile backends on a modular cross-platform .NET web framework
C# - Avalonia31,619 Stars
1 shared tag(s) · Same language
build cross-platform C# and XAML interfaces for desktop, mobile, and WebAssembly from one .NET UI framework
C# - .NET MAUI23,321 Stars
1 shared tag(s) · Same language
build native Android, iOS, macOS, and Windows apps from a shared C# and XAML codebase with a cross-platform UI framework
C# - Godot Engine118,086 Stars
2 shared tag(s) · 1 shared category(s)
Build 2D and 3D games in one editor and export them to desktop, mobile, and the web
C++ - Cocos Engine9,843 Stars
2 shared tag(s) · 1 shared category(s)
use a C++ and TypeScript runtime to deliver 2D and 3D games across native, web, and mini-game platforms through Cocos Creator
C++
Report incorrect information
Tell us if any listing information is incorrect or outdated.