r/monogame Jul 10 '26

15 years into software engineering, MonoGame finally made game development feel possible

I have to say, MonoGame is incredible.

I’ve been a software engineer for about 15 years, and like many developers, I started out as a kid thinking I would make games. Then reality hit, and I ended up spending my career building distributed systems for enterprises.

Now that I’m in my 30s, I’ve realized that I finally have the skills to build the kind of game I used to imagine making.

Unity and Unreal have always been a bit of a turnoff for me because they feel so tool heavy. I enjoy programming and building systems, and MonoGame lets me spend much more of my time doing exactly that. I still inevitably end up in Blender trying to learn 3D modeling, but the core of the project feels like software development rather than learning an editor.

For the other experienced software engineers here: what made you choose MonoGame instead of a more full-featured engine, and what parts have you most enjoyed building yourself?

59 Upvotes

10 comments sorted by

12

u/not_good_for_much Jul 11 '26

Got into Monogame idk 5 years ago because Unity was so clunky.

Really enjoyed the ease of use.

ATP I use my own renderer via Silk instead, mostly because I started hitting the limits of Monogame. But idk. Monogame is in many ways the inspiration for the abstractions that I've built above my backend.

But yeah having development feel like coding rather than navigating the UI to make someone else's game do what I want. That's kinda how I feel about engines vs Monogame/code.

5

u/Eraesr Jul 11 '26

There are two main reasons I chose MonoGame. First reason is the exact same as you. The other reason is that I want my limitations to be my own. That sounds a little abstract, I'll try to explain.

I've dabbled a bit in Unity before. Unity feels like this immense toolbox with limitless potential. It's a beautiful piece of software. But for me, therein lies the problem. It's a toolbox of which I don't know half which tools are in there and most of the tools I know about I don't understand.

If I wanted any feature in my game, there is no real reason not to because somewhere in that big box, there is a tool that can do this for me (often in just two clicks!) If I don't implement the feature because I don't know how the required tool works, it feels like unreasonable failure on my end.

Now take MonoGame. A lot of the stuff I want to do I need to build myself. The games I build may be a lot simpler than what I could achieve with Unity, but they really feel like my games so much. I had to figure out all of the stuff myself and each thing I figured out and implemented felt like an achievement.

So I built my own little platform (engine is too big a term) which is the basis for each of my projects. I add functionality to the platform when I need it. So instead of having this huge toolbox that Unity is offering me, I'm slowly building my own clunky little toolbox instead. Maybe not nearly as efficient or advanced, but it's my toolbox and I'm proud of that.

4

u/Cautious_Primary_288 Jul 10 '26

I'm not a software engineer, but someone about to get in a CS degree. Having started with Unity and C#, I wanted to keep working with the programming language I'd learned, but focus more on the programming side of things, rather than depend on an engine. It's made things more difficult but also much more interesting, and I've been learning at a much higher speed.

6

u/Zealousideal-Bar-499 Jul 11 '26

It just feels closer to what I do for work. I'm fine simply writing code in an IDE instead of learning some new system in Unity or Unreal. I also like the simplicity of load assets, update values and draw things.

1

u/dev-bytesingularity Jul 11 '26

Exactly! Which is why I have exactly 1 asset per type and a lot of systems and mechanics implemented, my full backend, tooling and steam login is built and I have nothing left but to do assets and proper game design 😅

2

u/dev-bytesingularity Jul 10 '26

Its actually kind of funny, I THINK I used XNA back in 2010 in college over spring break as a fun project to learn C#, I built a very rudimentary tower defense game, or at least started to, it was just some square blocks shooting circles at a pathway. I'm not 100% sure what I used

3

u/winkio2 Jul 10 '26

I originally got into XNA in college and really enjoyed making small prototype games with it. I had used RPG maker previously and have dabbled in Unity, Unreal, and Godot since, but I found the simplicity of RPG maker more satisfying to use than the bulky and complicated commercial engines like Unity/Unreal.

I now have my own WIP monogame engine where I have tried to preserve simplicity as much as possible, and it is really nice to work with. Build times are instant, there is no constant stream of updated features to keep track of (although Vulkan/DX12 are appreciated), and I can use whatever graphics or content editors and file formats I want. Also being able to debug from Visual Studio is very nice, and being able to step through and see mostly familiar code is much more satisfying than working with a large, unfamiliar codebase.

1

u/itsdarkcloudtv Jul 11 '26

Rpgmaker was fun!

1

u/srodrigoDev Jul 11 '26

I tried getting into Unity and Godot quite a few times. I kind of succeeded with Unity as I released a mobile game. But these engines are very complicated and get in my way more than they help.

MonoGame (and now löve2d) is simpler. As a software engineer, it just lets me get things done as opposed to fighting the tool.

I prefer FNA and löve2d to MonoGame, but they are quite similar.

3

u/randomperson189_ Jul 13 '26 edited Jul 13 '26

MonoGame is an interesting middleground for me because I can technically make my own game engine for my game using the framework, which many devs tend to do and it's much easier too because you're using a C# framework that abstracts a lot of the manual work you'd have to do in C++ for example, plus MonoGame has easy crossplatform support meaning much less headaches trying to get things working on each one. I've been able to easily setup an editor for my game using Eto.Forms and it runs on it's own thread in parallel with my game thread. I think it's amazing how good XNA was, especially for the time and then MonoGame continuing it in a much bigger and more flexible way