MonoGame
{{short description|Free C# framework used by game developers}}
{{Use mdy dates|date=February 2023}}
{{Infobox software
| name = MonoGame
| logo = MonoGame Logo.svg
| logo size = 100px
| screenshot =
| caption = Write Once, Play Everywhere
| developer = MonoGame Team
| released = {{Start date and age|2009|09|02}}
| latest_release_version = 3.8.4{{cite web
| url = https://github.com/MonoGame/MonoGame/releases
| title = MonoGame release 3.8.4
| access-date = 2025-06-02
}}
| latest_release_date = {{Start date and age|2025|06|02}}
| programming language = C#
| platform = iOS, iPadOS, macOS, Android, Linux, Windows Phone 8, Windows Desktop, Windows 10, PlayStation 4, PlayStation 5, PlayStation Vita, Xbox One, Xbox Series X/S, Nintendo Switch
| genre = Application framework
| license = Microsoft Public License{{cite web
| url = https://github.com/MonoGame/MonoGame/blob/master/LICENSE.txt
| title = FAQ: Licensing – MonoGame
| website = GitHub
| access-date = 2009-09-02
}}
| website = {{URL|www.monogame.net}}
}}
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, iPadOS, Android, macOS, Linux, PlayStation 4, PlayStation 5, PlayStation Vita, Xbox One, Xbox Series X/S and Nintendo Switch.{{Cite web |title=Documentation |url=http://www.monogame.net/documentation/?page=What_is_MonoGame |access-date=2017-08-25 |website=MonoGame.net |language=en-US}}{{Cite web |title=Main Page|url=http://www.monogame.net/|access-date=2023-11-25 |website=MonoGame.net |language=en-US}} It implements the Microsoft XNA 4 application programming interface (API).{{cite web |date=2012-08-01 |title=Windows 8, XNA and MonoGame |url=http://blogs.msdn.com/b/bobfamiliar/archive/2012/08/01/windows-8-xna-and-monogame-part-1-overview.aspx |archive-url=https://web.archive.org/web/20120804001200/http://blogs.msdn.com/b/bobfamiliar/archive/2012/08/01/windows-8-xna-and-monogame-part-1-overview.aspx |archive-date=2012-08-04 |access-date= |website=MSDN |publisher=Microsoft |quote=MonoGame is an Open Source implementation of the Microsoft XNA 4 Framework. The goal is to allow XNA developers on Windows & Windows Phone to port their games to the iOS, Android, Mac OS X, Linux with both PlayStation Suite and Windows 8 support currently under development.}} 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{{cite web|url=https://www.facebook.com/jalfbr|title=José Antonio Leal de Farias |publisher=Facebook}} and Silver Sprite by Bill Reiss.{{Citation needed|date=June 2013}} 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,{{cite web |author=tomspilman |date=2013-03-15 |title=RenderTarget3D for DirectX |url=https://github.com/mono/MonoGame/pull/1549 |work=GitHub}} support for multiple GameWindows,{{cite web |author=jamesford42 |date=2013-02-26 |title=Multiple GameWindow support for Windows/DirectX |url=https://github.com/mono/MonoGame/pull/1465 |work=GitHub}} and a new cross-platform command line content building tool.{{cite web |title=MonoGame Content Builder |url=https://github.com/mono/MonoGame/wiki/MonoGame-Content-Builder |url-status=dead |publisher=Github |access-date=June 7, 2013 |archive-date=April 29, 2015 |archive-url=https://web.archive.org/web/20150429225916/https://github.com/mono/MonoGame/wiki/MonoGame-Content-Builder }}
As of 2025, MonoGame continues to be used by indie developers for cross-platform 2D and 3D games, including recent releases on Steam and Xbox.{{Cite web |title=Releases · MonoGame/MonoGame |url=https://github.com/MonoGame/MonoGame/releases |access-date=2025-04-14 |website=GitHub |language=en}}
Architecture
MonoGame attempts to fully implement the XNA 4 API.{{cite book|url=https://books.google.com/books?id=NyyyEwWxpF0C&q=%22MonoGame%22%20-inpublisher:icon&pg=PA178|title=Windows 8 App Projects - XAML and C# Edition|first=Nico|last=Vermeir|date=1 April 2013|publisher=Apress|isbn=9781430250661|via=Google Books}} It accomplishes this across Microsoft platforms using SharpDX and DirectX.{{cite web |last1=Torre |first1=Charles |last2=Spilman |first2=Tom |date=2012-11-02 |title=Monogame at Build 2012 |url=http://channel9.msdn.com/Events/Ch9Live/Channel-9-Live-at-BUILD-2012/Monogame-at-Build-2012 |url-status=dead |archive-url=https://web.archive.org/web/20130707093557/http://channel9.msdn.com/Events/Ch9Live/Channel-9-Live-at-BUILD-2012/Monogame-at-Build-2012 |archive-date=2013-07-07 |access-date=2013-05-11 |work=MSDN Channel 9 |publisher=Microsoft}} 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.
Games
{{dynamic list}}
See also
References
{{Reflist|colwidth=30em}}
External links
- {{official website}}
{{DEFAULTSORT:MonoGame}}
Category:Cross-platform software
Category:Free computer libraries
Category:Free computer programming tools
Category:Free software programmed in C Sharp