One framework for creating powerful cross-platfrom games
Supported Platforms • Resources • Samples • Support and Contributions • Source Code • Helpful Links • License
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.
We support a growing list of platforms across the desktop, mobile, and console space. If there is a platform we don't support, please make a request or come help us add it.
- Desktop PCs
- Windows 8.1 and up (OpenGL & DirectX)
- Linux (OpenGL)
- macOS 10.15 and up (OpenGL)
- Mobile/Tablet Devices
- Android 6.0 and up (OpenGL)
- iPhone/iPad 10.0 and up (OpenGL)
- Consoles (for registered developers)
- PlayStation 4
- PlayStation 5
- Xbox One (XDK only) (GDK coming soon)
- Nintendo Switch
Check out the awesome game samples maintained by the MonoGame team:
Platformer 2D Sample | NeonShooter |
---|---|
Supported on all platforms | Supported on all platforms |
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 |
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 |
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.
If you'd 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.
The full source code is available here from GitHub:
- Clone the source:
git clone https://github.com/MonoGame/MonoGame.git
- 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.
For the prerequisites for building from source, please look at the Requirements file.
A high level breakdown of the components of the framework:
- The game framework is found in MonoGame.Framework.
- The content pipeline is located in MonoGame.Framework.Content.Pipeline.
- Project templates are in Templates.
- See Tests for the framework unit tests.
- See Tools/Tests for the content pipeline and other tool tests.
- The mgcb is a command line tool for content processing.
- The mgfxc is a command line effect compiler tool.
- The mgcb-editor tool is a GUI frontend for content processing.
- The official website is monogame.net.
- Our issue tracker is on GitHub.
- You can join the Discord server and chat live with the core developers and other users.
- The official documentation is on our website.
- Download release and development packages.
- Follow @MonoGameTeam on Twitter.
- Get premium content on Patreon (coming soon)
The MonoGame project is under the Microsoft Public License except for a few portions of the code. See the LICENSE.txt file for more details. Third-party libraries used by MonoGame are under their own licenses. Please refer to those libraries for details on the license they use.