MonoGame is a free, open source gaming project written in C# and released under a custom open-source licence. It has 14,428 GitHub stars, 3,107 forks and 766 open issues, and was last pushed 26 hours ago. On this registry it ranks #3 of 4 tracked projects in Gaming, with 5 head-to-head comparisons available. It gained 17 stars over the last 6 tracked days.

MonoGame — Free, open-source framework for cross-platform game development

What is MonoGame?

What it is

MonoGame is a free, open-source C# and .NET game framework for building cross-platform games. It lives in the .NET game-development ecosystem and is positioned as one framework for creating games on desktop PCs, mobile devices, and consoles. It is an open-source re-implementation of Microsoft's discontinued XNA Framework, used to create games such as Streets of Rage 4, Carrion, Celeste, and Stardew Valley.

The concrete problem it solves is writing a game once in C# and deploying it across target platforms without the discontinued XNA Framework. MonoGame provides a framework for game code and graphics work, with support for Windows, Linux, macOS, Android, iOS, iPadOS, and console platforms for registered developers. Platform notes include OpenGL on desktop and mobile, DirectX 10 on Windows, and preview or experimental Vulkan and DirectX 12 paths.

Key capabilities

  • MonoGame provides a C# and .NET framework for game code, graphics, and cross-platform targeting.
  • It is an open-source re-implementation of Microsoft's discontinued XNA Framework.
  • It targets desktop PCs, mobile and tablet devices, and console platforms for registered developers.
  • It supports OpenGL on Windows, Linux, macOS, Android, iOS, and iPadOS, with DirectX 10 support on Windows.
  • It is adding Vulkan and DirectX 12 graphics support in preview for version 3.8.5 on supported platforms, with experimental implementations available to source-code users.
  • It includes maintained samples for a basic 2D platformer and a twin-stick shooter with particle effects and save data.

Who uses it and how

  • Developers have used MonoGame to create games such as Streets of Rage 4, Carrion, Celeste, and Stardew Valley.
  • C# developers use the framework to build games for desktop PCs, mobile devices, and consoles.
  • Console developers use the framework only with registered developer access for PlayStation 4, PlayStation 5, Xbox, and Nintendo Switch platforms.
  • New users can start from the Getting Started tutorials, Documentation Hub, and API Reference.
  • Developers can examine the MonoGame.Samples repository, including the Platformer 2D sample and the NeonShooter sample.

Getting started

The provided README directs users to the Getting Started tutorials, Documentation Hub, API Reference, and the MonoGame.Samples repository. It does not list a package manager or Docker image, but it notes that experimental Vulkan and DirectX 12 implementations are available to source-code users.

When to use it — and when not to

Use MonoGame when a team wants a C# and .NET cross-platform game framework and an open-source replacement for the discontinued XNA Framework. Avoid it when console deployment without registered developer access is required, or when production-ready Vulkan and DirectX 12 support is needed, because those paths are preview or experimental. The registry lists the license as NOASSERTION, so legal review may be needed before adoption.

project readme (upstream, from github) — read inline
MonoGame

MonoGame

Join the chat at https://discord.gg/monogame GitHub Actions Workflow Status Donate

One framework for creating powerful cross-platform games

Supported PlatformsResourcesSamplesSupport and ContributionsSource CodeHelpful LinksLicense

Overview

MonoGame is a simple and powerful .NET framework for creating games for desktop PCs, video game consoles, and mobile devices using the C# programming language. It has been successfully used to create games such as Streets of Rage 4, Carrion, Celeste, Stardew Valley, and many others.

It is an open-source re-implementation of the discontinued Microsoft's XNA Framework.

Supported Platforms

We support a growing list of platforms across the desktop, mobile, and console space. If there is a platform we do not support, please make a request or come help us add it.

  • Desktop PCs
    • Windows 10 (22H2+) and up (OpenGL[^1] & DirectX 10[^2])
    • Linux[^3] and up (OpenGL[^1])
    • macOS 13 "Ventura" and up (OpenGL[^1])
  • Mobile/Tablet Devices
    • Android 6 (API 23) and up (OpenGL)
    • iOS/iPadOS 12.2 and up (OpenGL)
  • Consoles (for registered developers)
    • PlayStation 4
    • PlayStation 5
    • Xbox (GDKX & XDK)
    • Nintendo Switch 1 & 2

[!NOTE] Vulkan and DirectX12 graphics support is also being added in preview for 3.8.5 for supported platforms.

[^1]: An experimental Vulkan implementation is available to source code users.

[^2]: An experimental DirectX 12 implementation is available to source code users.

[^3]: Requires a distribution with glibc 2.27 or up. This includes SteamOS 3.0 and up, Ubuntu 22.04 and up, Debian 12 and up, CentOS 9 and up among other unlisted distributions.

Resources

Samples

Check out the awesome game samples maintained by the MonoGame team:

Platformer 2D Sample NeonShooter
Supported on all platforms Supported on all platforms
Platformer 2D Sample NeonShooter Sample
The Platformer 2D sample is a basic 2D platformer pulled from the original XNA samples and upgraded for MonoGame. Neon Shooter Is a graphically intensive twin-stick shooter with particle effects and save data from Michael Hoffman
Auto Pong Sample Ship Game 3D
Supported on all platforms GL / DX / iOS / Android
Auto Pong Sample ShipGame 3D Sample
A short sample project showing you how to make the classic game of pong, with generated soundfx, in 300 lines of code. 3D Ship Game (Descent clone) sample, pulled from the XNA archives and updated for MonoGame

Support and Contributions

If you think you have found a bug or have a feature request, use our issue tracker. Before opening a new issue, please search to see if your problem has already been reported. Try to be as detailed as possible in your issue reports.

If you need help using MonoGame or have other questions we suggest you post on GitHub discussions page or Discord server. Please do not use the issue tracker for personal support requests.

If you are interested in contributing fixes or features to MonoGame, please read our contributors guide first.

Subscription

If you would like to help the project by supporting us financially, consider supporting us via a subscription for the price of a monthly coffee.

Money goes towards hosting, new hardware and if enough people subscribe a dedicated developer.

There are several options on our Donation Page.

Source Code

[!NOTE] For the prerequisites to build from source, please refer to the Requirements file.

The full source code is available here from GitHub:

  • Clone the source: git clone --recurse-submodules https://github.com/MonoGame/MonoGame.git (including resursive submodules).
  • Set up the submodules: git submodule update --init
  • Open the solution for your target platform to build the game framework.
  • Open the Tools solution for your development platform to build the pipeline and content tools.

A high level breakdown of the components of the framework:

Helpful Links

License

The MonoGame project is under the Microsoft Public License except for a few portions

readme truncated — read the full docs on github

Frequently asked questions

Is MonoGame free to use?

MonoGame is open source. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does MonoGame do?

Free, open-source framework for cross-platform game development

What is MonoGame written in?

MonoGame is primarily written in C#. Its source is publicly available at https://github.com/monogame/monogame, and it has 14,428 GitHub stars.