How good of a replacement is MonoGame for Unity?

Hi All (and surely some of my past fellow Unity devs)

I’m just curious, how good of a replacement is MonoGame for ex-Unity developers?
I understand this is closer to the old XNA framework than Unity, but, is the community still active here and looking to grow? (Sorry for sounding snobbish)
Many of ex-Unity developers are looking for a new home and, I used to love XNA back in the day, so, just curious…how complex can we go with MonoGame? Where do the limitations start to kick in?

Kind Regards

5 Likes

Hey @Leobot welcome to the community.

We’re an active community, though probably more active in the discord than the forums if you wanna hop up there. We’re always willing to answer questions, offer suggestions and guidenace.

Theres a huge difference in using a framework like MonoGame vs a full engine like Unity. Since you mentioned you used XNA back in the day, im sure you’re aware of this.

For other readers though that aren’t, MonoGame is a code first environment. There is no editor, no built in things like physics engines, etc. It gives you all the base grunt work you’d need to start making a game like Window management, graphics api, input magament, and sound. From there, it gets as complex as you want it to be.

Want to add physic simulations? You can build your own or use existing solutions like Box2D, Farseer, or Aether.Physics (recommend Aether).

Need to do tile maps? There are tons of tools to choose from like Tiled, Ldtk, and Ogmo.

The big difference between and engine like Unity and MonoGame is just going to be the no editor, code first approach, build and add the tools you need.

4 Likes

Oh also if you’re looking for a MonoGame solution but with an actual editor. Check out FlatRedBall by @vchelaru

https://flatredball.com

2 Likes

Thank you for the clear and concise explanation :slight_smile:

I guess some of the Unity guys would love to have a UI for them to also switch over to MonoGame, but it is understandable that that is not the focus of this engine. (It is better be good at one thing, than to be mediocre in everything :slight_smile: )

My next question, that I am sure fellow ex-unity devs would ask, is: Is there an Asset Store of some sorts?
-Since my main reason for switching from XNA to Unity originally was the ease of accessing 3rd party models (without risking legal issues) and libraries via their Unity Asset Store.
Is there anything similar to this eco-system in MonoGame perhaps? It is understandable to not prioritise or have a UI, but an asset store where non-experienced coders can purchase libraries and/or models would probably be fairly crucial for other Unity devs without much coding experience to get onboard (Unity is the king of asset-flipped games afterall…or was! )
I am sure with an asset store, developers would create and sell UI’s for the engine etc (it really is an open market now again now that Unity has lost its trust).

IMO, this is the time for MonoGame to rise and shine; many Unity devs are looking for a C# alternative and don’t want to learn C++ for UE, or have only partial C# support such as with Godot.

Also, I would suggest that community members from MonoGame come join the Unity forum to help raise awareness that this engine exists, and, in turn also possibly get funding for the MonoGame development team.

1 Like

Unfortunately there isnt an asset store concept in MonoGame. There are tons of libraries that are open source and developed by others for free that offer thing’s like UIs, like Myra GitHub - rds1983/Myra: UI Library for MonoGame, FNA and Stride

Theres also tons of extensions that are availabe to use that offer things like a near full engine (minus editor) like Nez GitHub - prime31/Nez: Nez is a free 2D focused framework that works with MonoGame and FNA

Or more specidic tooling like my Aseprite importer https://monogameaseprite.net

Anyone who makes extensions or third pary libraries like this are always allowed to sell it for a price if they wanted, most do it for free on donation systems.

In terms of raw assets like graphics, 3D models, audio, etc, for asset flipping (lol), again there is no central store or hub, but can use whatever you find. Like graphics from https://kenney.nl for 2D things

Heres a couple of really good bookmarks to have for resources others have made

3 Likes

Is something worth visiting…

Planning to craft content there myself, and have already gotten some assets there which I forgot about… oops…

Hi @Leobot, and Welcome to the Community

Happy Coding!

2 Likes

See the write up I did recently which covers most of the questions here:

MonoGame roundup for 2023 - DarkGenesis - indie development for the new world order (zenithmoon.com)

In the end it comes down to what you are familiar with and what is your preferred method of game development:

  • If it’s code first and code always, then MG is for you (although as @Aristurtle pointed out, there are open source engines / editors built on top of MG)
  • If you prefer GUI’s and visual scripting, then MG might not be your preferred choice as it is programmer first, not GUI first.

Personally, I’ve always liked code as the code never lies and nothing is hidden in a magic routine on the editor has access to. If I need an editor, I’ll write one just for the scenario I need it for (or write a content pipeline extension to do it for me), but that’s me.

Every developer is unique and has their preferred way of making their projects, so choose what suits you. As I suggest in the article, give all the prospective options a week to build something simple, and then you will truly know.

Hope this helps.

6 Likes

Hey there Leobot and welcome!
Sorry to hear about the whole Unity deal. I used to work with it a while ago, and I found it quite nice.

Speaking strictly from my experience of prototyping 2D games, no 3D (yet), the only “limit” I can think of was a cross-platform one. While I can build my project perfectly, if I have some HLSL shaders, I need to compile them on Windows and then transfer the .xnb files to linux manually. I don’t even mind that, it’s simply an extra step in the release checklist…

Performance or flexibility wise, nothing I can think of. Whatever you want, you can do. And I got crazy good performance, even to thousands of fps for a rather complex 2D tile game. Not that you’d ever use that.

Now, I have to say I realize Unity is more than just writing code, it’s also a strong editor, so I expect some will find that as a limitation. And it might take a while to adapt from that to MonoGame. For instance, I am used to writing my own importers, parsers of whatever I need, even an ingame map editor if needed:

So, it takes maybe a bit more time to do ‘some’ things, but in my view, it really gives me more control and power over certain aspects.

As developers we are all different and maybe biased so I think a fair advice on my part (being clearly biased and all that) would be for you to also do some actual exploratory coding with MonoGame (that is, if you don’t find anything dramatic to stop you from considering this framework). It might take a month or so, but at the end of it, you’ll know.

… and to be honest, it might get addictive. :slight_smile:

4 Likes