I have been playing around with different game frameworks for a while now and one of the things that stands out between Monogame and the others is that Monogame far exceeds the number of supported platforms of any game framework out there. It’s mainly the console support that seems to be non-existant in other game frameworks (not even in c/c++). I was just hoping to get your two cents on why monogame was able to get support for so many different platforms while other game frameweorks seemingly can’t or won’t.
I don’t have a definitive answer, but one contributing factor to supporting consoles is how easy XNA made it to develop for both PC and Xbox 360. As a result, XNA developers had more experience developing for consoles, and this knowledge was passed over to MonoGame. Some of the MonoGame maintainers have even worked on porting games such as Celeste and TowerFall Ascension to console.
Could it have something to do with c#? Like why did unity (also supports tons of platforms) choose c# for their scripting languae?
EDIT: Oops. Logged in with wrong account.
Don’t take my word seriously; I just watched things as they happened.
Back when Microsoft extinguished XNA (circa 2012), people were already using Mono to write C# applications for non-Windows platforms. (Don’t confuse MonoGame and Mono!). Unity used a version of Mono to allow developers to write C# code for their games. You can read up on it more but Miguel de Icaza was the primary developer for Mono. He is also the founder of Xamarin. There is a lot of experience with developing for multiple platforms right there. Over the years, this knowledge and technology have made it back to MonoGame one way or another. Things changed. SuperGiant Games forked MonoGame for development of Bastion. Microsoft acquired Xamarin. Miguel now works for Microsoft. Microsoft acquired GitHub… The story continues, but that is just one side.
Another side of the story is that Tom Spilman (lead of the MonoGame project) and the rest of Sickead Games has a lot of experience helping developers who developed their game on Windows port the game to consoles. In fact, if you check their website it lists that one of their services is to port games.
Together, the story answers your question. Over the years, from rising to meet the need of a disbanded API to being open-source, MonoGame has acquired a lot of knowledge about making games for multiple platforms and continues to exercise that knowledge.
Yes, Mono and Tom/Sickhead Games are the two reasons MG can support so many platforms. For platforms that don’t support Mono, Sickhead developed a cross-compiler called BRUTE to compile C# IL to C++ so it can be compiled for consoles. If you are a registered developer, you can get access to one of the MonoGame repos for consoles that require AOT compilation and access to BRUTE.
Just want to point out and say, Happy 17th Sickhead Games @Tom and team.