MonoGame

MonoGame is a free and open source C# framework used by game developers to make games for multiple platforms and other systems. It is also used to make Windows and Windows Phone games run on other systems. It supports iOS, Android, macOS, tvOS, Linux, PlayStation 4, PlayStation 5, PlayStation Vita, Xbox One and Nintendo Switch. It implements the Microsoft XNA 4 application programming interface (API). It has been used for several games, including Bastion, Celeste, Fez and Stardew Valley.

History
MonoGame is a derivative of XNA Touch (September 2009) started by Jose Antonio Farias and Silver Sprite by Bill Reiss. The first official release of MonoGame was version 2.0 with a downloadable version 0.7 that was available from CodePlex. These early versions only supported 2D sprite-based games. The last official 2D-only version was released as 2.5.1 in June 2012.

Since mid-2013, the framework has begun to be extended beyond XNA4 with the addition of new features like RenderTarget3D, support for multiple GameWindows, and a new cross-platform command line content building tool.

Architecture
MonoGame attempts to fully implement the XNA 4 API. It accomplishes this across Microsoft platforms using SharpDX and DirectX. When targeting non-Microsoft platforms, platform specific capabilities are utilized by way of the OpenTK library. When targeting OS X, iOS, and/or Android, the Xamarin platform runtime is necessary. This runtime provides a tuned OpenTK implementation that allows the MonoGame team to focus on the core graphics tuning of the platform.

The graphics capabilities of MonoGame come from either OpenGL, OpenGL ES, or DirectX. Since MonoGame version 3, OpenGL 2 has been the focus for capabilities. The earlier releases of MonoGame (2.5) used OpenGL 1.x for graphics rendering. Utilizing OpenGL 2 allowed for MonoGame to support shaders to make more advanced rendering capabilities in the platform.

Content management and distribution continues to follow the XNA 4 ContentManager model. The MonoGame team has created a new content building capability that can integrate with Microsoft Visual Studio to deliver the same content building capabilities to Windows 8 Desktop that Windows 7 users had used in Microsoft XNA.