Goodbye, MonoGame...

Posted by : at

Category : update


If you’ve been following my work, you know that I had a passion project called Monolith Engine, a free, an open source, 2D engine which I wanted to use my release my games to mobile and console platforms. While initially MonoGame framework seemed like the perfect solution to build my game engine on, after more than one year spent developing my engine, I had to realize that there are too many caveats that I could not have forseen. After long nights of thinking and careful consideration, I came to the painful conclusion that I have retire Monolith Engine, at least until MonoGame gets into a state where most of the following risks and issues I consider unacceptable are addressed. The blog posts and source code will remain available in their usual places, but they are marked as ‘archive’ and will not receive further updates. Also, further on, unless MG issues are addressed on the long run, there will not be any new posts about MonoGame framework or Monolith Engine, but about the new engine I’m using.
The reasons why I switched from MonoGame and Monolith Engine:

  • In theory, it’s cross-platform, but I see forum posts of people desperately trying to reach the developers to gain access to the console specific SDKs, without luck, even though they are licenced for the target platform. I’ve also seen developer whose publisher deal got jeopardized by not being able to get it touch with MG team about the SDK. The fact that such a small team maintains the framework and has exclusive control over the SDK imposes a risk that I don’t want to take (what happens if they abandon the project, or something happens to them?)
  • At the time of writing this post, I’m still unable to make MonoGame 3.8.1 work on my Mac, and I’m not alone with that.
  • I have constant issues on Mac with .Net and other dependencies. Since MonoGame is not self contained, it takes a lot of struggle to make everything work on a Mac, and the MG updates tend to break everything that was working so far. I’ve already spent way too much time on just simply making everything work, and it seems like this will be the case in the future as well, for which I don’t have the capacity anymore.
  • Apple will eventually decommission OpenGL. Nobody knows when, but I really don’t want to end up in a situation when I’m about to finish my game, just to realize I won’t be able to release it iPhone because it uses OpenGL. MonoGame currently does not have a clear vision of how to address this.

Considering the above, I’ve decided to look around on the landscape again, experiment a with other engines and frameworks, and decided to use Godot engine for now. Using an engine is definitely not as fun as writing your own, but Godot does not feel bloated, is being actively developed, and Godot 4 will support Vulkan, which can allow games to be released for iPhone using MoltenVK even after Metal enforcemnet took place. Let’s see how my first game goes with Godot, and then decide whether to stick to it or look for another option.

Happy coding!


About Lajos
Lajos

Enterprise Java for a living. Video game development for the soul.

Email : lajbertgames@gmail.com

Website : https://lajbert.github.io

About Lajbert

My name is Lajos, a software engineer who decided to chase his childhood dream of becoming a video game developer. I have a long road ahead of me until I can release my first game, but the path taking me there is already very rewarding. There are many great people around the internet who spends time, energy and even money to make great tutorials, shares their Github repos and distribute knowledge, and this blog is my attempt to pay my respect to them and follow their lead of giving back to the community. You’ll find tips, tricks, bits and pieces of what I learned while working on my project, which is also my learning path, so if you see something on my blog that is incorrect or can be done better, please leave a comment, so we all can learn something. Considering the risks I see using MonoGame at its current state, I've decided to (at least temporarly) retire my own game engine called Monolith Engine, and migrate my game onto Godot engine. Still, the code for Monolith Engine will stay available, many of my ideas are generic, and can easily be translated to your favorite language or game engine.

Star
Categories
Useful Links