Difference between Xamarin and MonoGame

Im a newby in game programming, I was planning to use MonoGame for my next game but I discovered Xamarin and I don’t understand the difference between bettween Xamarin and Monogame ?
Wich one is better to make games ?

Xamarin is the IDE where you can code. Monogame is the framework/template that you can use to make coding a game easier. so you use Xamarin to edit the monogame code. if that makes sense :stuck_out_tongue:
and if you dont like Xamarin as IDE you can also choose for microsoft visual studio.

Xamarin Studio is the IDE, Xamarin is the company that developed it. They also created the tech that allows you to build your C# project for Android and iOS. MonoGame is a game development framework that allows you to write your game against the XNA API and then build for many platforms. To target Android and iOS, MonoGame uses the Xamarin stuff. You’ll probably want to use some game development library to develop games for mobile. MonoGame is one of the options. Check out the game dev page from Xamarin for others: https://developer.xamarin.com/guides/cross-platform/game_development/

1 Like

So Xamarin is just an IDE ? But for example in this video the guy say he used Visual Studio and Xamarin so I don’t understand why he would use 2 IDE ? https://www.youtube.com/watch?v=Q8C4msaNHTM

i think he used two IDE’s because i believe in VS2013 you could not debug on a android simulator. but in xamarin you could in that time. now you can just use VS. because microsoft bought xamarin and put everything they have in Visual Studio

Ok thank you for your fast answer, it helps a lot :slight_smile:

no problem! if you have any more just ask :slight_smile:

So if I want to make a cross platform game for mobiles in VS 2017 wich template sould I use ?
Is there any tutorial wich is compatible with VS 2017 ?

do you by any chance have a mac? or only windows? :stuck_out_tongue:

I only have a PC on windows.

hmm the only thing i remember on windows thats kinda a hassle to make that work. i believe you have to add a android project to a ios project and add references to each other, or something like that. but im not sure. but i would advice to start with a desktop project to get some experience with monogame. there are plenty books/tuts online, you can also look for XNA tutorials because they are almost the same.

To clarify:
Xamarin is BOTH an IDE and a framework to run c# on android and IOS.
Visual studio is only an IDE that helps write c#.
Monogame is a framework to make games on windows, mac, linux (using directx and opengl), android (using xamarin) and ios (using xamarin).

The only minor point you need to consider is that you need a mac to compile IOS apps (not android) you can however write code for IOS in windows and just compile it on a mac if you want (its just some stupid apple rule you can’t compile IOS apps on windows)

To your question regarding wich template to use: ignore the xamarin templates, those are for making plain apps (not games) always use the monogame templates for the respective platforms (just to clarify: the one you selected is for desktop not android or IOS so it won’t use xamarin). If however you want to share code between multiple platforms, thats a bit more difficult since there is no library template but if you want i can explain that too.


The Xamarin Studio IDE will disappear now that Visual Studio for Mac (which is a fork, and kinda the evolution of Xamarin Studio) has been released.

Mono is an implementation of the .NET Runtime on platforms not yet officially supported by Microsoft (.NET Core is currently beeing developed by Microsoft for that purpose). Basically, this allows you to run intermediate language (IL, in a DLL) compiled from C#, VB, F#, on those new platforms.

Xamarin is a company (now owned by Microsoft) that produces Xamarin.iOS/Xamarin.Android which are a set of .NET bindings to the (originally in Swift/Obj-C or Java) native APIs. This allows you to call all the UI, Sensors, low level stuff on iOS and Android from .NET Code (C#, …).

Monogame, for mobile platforms, is a framework (.dlls) based on mono for running its logic, but also on Xamarin for initialization (creating the base UI, interracting with sensors, …) stuff on iOS/Android. That’s why a Monogame mobile project is a Xamarin project.