Platforms
MonoGame supports the following systems:
- Windows
- Mac
- Linux
- Android
- iOS
- PlayStation 4
- PlayStation Vita
- Xbox One
- Nintendo Switch
- Google Stadia
There are different implementations of MonoGame that we call target platforms (or just platforms). The platforms mostly correspond to the systems MonoGame supports but some platforms support multiple systems. Platforms for systems that require registration such as PlayStation and Xbox are not publicly available. To get access to those platforms, please contact your console account manager(s). MonoGame documentation for closed platforms is available in their respective repositories.
Below is a list of public platforms with the corresponding NuGet package, the dotnet new
template identifier and an explanation of the platform.
MonoGame provides additional templates for shared game logic and extensions to the MonoGame Content Pipeline.
Platform details
WindowsDX
Supported Systems | NuGet Package | Template ID |
---|---|---|
Windows | MonoGame.Framework.WindowsDX | mgwindowsdx |
WindowsDX uses WinForms to manage the game window, DirectX (9.0c or newer) is used for graphics, and XAudio is used for audio. You can target Windows Vista and up with this platform.
DesktopGL
Supported Systems | NuGet Package | Template ID |
---|---|---|
Windows, macOS, Linux | MonoGame.Framework.DesktopGL | mgdesktopgl |
DesktopGL uses SDL for windowing. OpenGL is used for graphics, and OpenAL-Soft for audio. DesktopGL supports Windows (Vista and up), macOS (High Sierra 10.13 and up) and Linux (64bit-only).
DesktopGL requires at least OpenGL 2.0 with the ARB_framebuffer_object extension (or alternatively at least OpenGL 3.0).
DesktopGL is a convenient way to publish builds for Windows, macOS, and Linux from a single project and source code. It also allows to cross-compile any build from any of these operating systems.
DesktopGL currently does not have a VideoPlayer
implementation.
WindowsUniversal
Supported Systems | NuGet Package | Template ID |
---|---|---|
Windows 10, Xbox One (UWP-only, not XDK) | MonoGame.Framework.WindowsUniversal | mguwpcore (core app, no xaml), mguwpxaml (xaml app) |
The WindowsUniversal platform runs on Universal Windows Platform (UWP). WindowsUniversal uses DirectX for graphics, and XAudio for audio just like the WindowsDX platform.
This platform is meant to publish games on the Windows Store, for both Windows and Xbox One (through the Xbox Live Creators Program).
Note that UWP games running on Xbox One get restricted access to the console capabilities. To unlock those restrictions, MonoGame has a dedicated Xbox One platform for registered ID@Xbox developers targeting the XDK (this platform is private and requires you to contact your ID@Xbox manager).
Android
Supported Systems | NuGet Package | Template ID |
---|---|---|
Android | MonoGame.Framework.Android | mgandroid |
The Android platform uses Xamarin.Android. OpenGL is used for graphics, and OpenAL for audio.
iOS
Supported Systems | NuGet Package | Template ID |
---|---|---|
iOS | MonoGame.Framework.iOS | mgios |
The iOS platform uses Xamarin.iOS. OpenGL is used for graphics, and OpenAL for audio.
Other templates
.NET Standard Library
Template ID: mgnetstandard
A project template with a .NET Standard project to share game logic for cross-platform development.
Shared Project
Template ID: mgshared
A project template with a shared project library to support cross-platform development.
Content Pipeline Extension
Template ID: mgpipeline
A project template for writing custom logic for handling content and building it into XNB files.