MonoGame is an open source implementation of the now discontinued Microsoft XNA framework. It supports .NET/Mono languages like C#, F#, and VB.NET, and can run on Windows, macOS, Linux, iOS, Android, and most modern game consoles. It has been used in several well-known indie games such as Fez, Bastion, Stardew Valley, and Axiom Verge.

Pros and Cons

MonoGame is a great framework for professional quality indie games, but it is very low level and not beginner friendly.


  • Widely used throughout the indie game industry.
  • Compatible with XNA 4.
  • Cross-platform - supports Windows, macOS, Linux, iOS, Android, tvOS, and most major game consoles.
  • WebGL support for browser based games.
  • Free and open source. (Licensed under the Ms-PL)
  • Active community.
  • Supports both 2D and 3D games.
  • Supports multiple game windows.
  • Content Pipeline allows you to easily organize and load game content.


  • Very low level compared to other frameworks.
  • If you are coming from other languages, C# may confuse you with the lack of import/include statements and multiple inheritance.
  • MonoGame practically forces you to use a .NET/Mono IDE due to the aforementioned lack of include statements in .NET languages.
  • .NET languages are very verbose and if you not a fan of object-oriented programming, then MonoGame may not be for you.





  • MonoGame.Extended - a collection of NuGet packages to make MonoGame easier
  • MonoGame.Forms - An easy way to integrate MonoGame render windows into Windows Forms


Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License