On this page
Overview
MonoGame is an open-source reimplementation of the discontinued Microsoft XNA Framework for building games in C# and .NET across desktop, mobile, and console targets.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Target desktop, mobile, and consoles from one framework
Supported targets include Windows, Linux, macOS, Android, and iOS/iPadOS, with PlayStation, Xbox, and Nintendo Switch platforms available to registered developers.
Sources: [2]
Use an XNA-style framework and Content Pipeline
The repository includes MonoGame.Framework, the Content Pipeline, mgcb, mgfxc, and project templates so game code and asset processing can be handled in one toolchain.
Sources: [2]
Best fit
Fits C# teams building 2D or 3D games for several targets
It is relevant when developers want the XNA programming model and modern .NET while reusing code across desktop and mobile platforms.
Sources: [2]
Before adoption
Console targets require registered-developer access
Console support depends on platform-holder programs and is not available solely through the public repository and SDK packages.
Sources: [2]
Treat Vulkan and DirectX 12 as preview support
The README describes Vulkan and DirectX 12 support in the 3.8.5 line as preview functionality. Validate stability and required features on the intended target before adoption.
Sources: [2]
Review Ms-PL, MIT portions, and third-party terms
Most of MonoGame is under Microsoft Public License, with some portions under MIT and bundled third-party libraries under their own licenses. GitHub reports the repository SPDX value as NOASSERTION.
Sources: [4]
Official sources
- [1]MonoGame/MonoGame repository(2026-09-30)
- [2]MonoGame README(2026-09-30)
- [3]MonoGame v3.8.5.1 release(2026-09-30)
- [4]MonoGame license(2026-09-30)
Supplemental curator note
MonoGame is a practical fit for teams that want the XNA programming model with modern C# and .NET across platforms. Console targets require registered-developer access, while Vulkan and DirectX 12 are still described as preview support in the README.
Try it in 3 steps
- 1
Install the MonoGame templates
Install the C# project templates pinned to the latest stable v3.8.5.1 release.
dotnet new install MonoGame.Templates.CSharp::3.8.5.1 - 2
Create a DesktopGL project
Generate the DesktopGL template used across Windows, Linux, and macOS.
dotnet new mgdesktopgl -o MyGame && cd MyGame - 3
Run the game
Build and start the generated project to verify the MonoGame render loop on the local machine.
dotnet run
Growth
Growth trends · Last 30 days
14,472 Stars
Trend data is still being collected.
Built with
Categories and tags
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- 3d
- c-sharp
- cross-platform
- csharp
- dotnet
- game-development
- game-engine
- game-framework
- gamedev
- graphics
- monogame
- open-source
- Stars
- 14,472
- Forks
- 3,111
- Watchers
- 453
- Open issues
- 757
- Owner type
- Organization
- Primary language
- C#
- License
- Not determined
- Repository last updated
- Sep 30, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- KiCad2,993 Stars
1 shared tag(s)
Connect schematics, SPICE simulation, PCB layout, manufacturing output, and 3D review in one EDA project suite
C++ - 3DCellForge2,648 Stars
1 shared tag(s)
Combine reference images or GLBs with external image-to-3D providers, local models, and a Three.js inspection workspace in the browser
JavaScript - CascadeStudio1,484 Stars
1 shared tag(s)
Build 3D geometry in code and inspect and export it in the browser
JavaScript - massing139 Stars
1 shared tag(s)
Connect BIM authoring, construction management, development finance, turnover, and operations through one IFC-keyed self-hosted AEC platform
Python - LazyMount-Mac137 Stars
1 shared tag(s)
Automate SMB, Rclone and APFS sparsebundle mounts at macOS login with reachability checks and recovery
Shell - legmacs42 Stars
1 shared tag(s)
Extend a small terminal editor with the same let-go Lisp and public APIs used by its built-in commands
Clojure
Report incorrect information
Tell us if any listing information is incorrect or outdated.