MonoGame
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.
Pros
- 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.
Cons
- 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.
Resources
- Official website
- Documentation
- GitHub repository
- XNA Framework Class Library Reference - Despite being deprecated by MS, it's better than MonoGame's official doc by far.
Tutorials
- Game From Scratch MonoGame Series (C#)
- RB Whitaker's MonoGame Tutorials (C#)
- F# MonoGame Platformer Tutorial
- Installing MonoGame 3.6 on Linux - Currently, MonoGame is a bitch to install on Linux due to MonoDevelop switching to flatpak.
IDEs
Libraries
- MonoGame.Extended - a collection of NuGet packages to make MonoGame easier
- MonoGame.Forms - An easy way to integrate MonoGame render windows into Windows Forms
Miscellaneous
page revision: 17, last edited: 12 Feb 2020 21:16