Here’s the major reasons why I made this decision, and why I’m currently doing the migration.
1. My version of GameMaker Studio 1.4 was out-of-date and no longer being supported. YoYo Games, the developers of GameMaker Studio, had already released GameMaker Studio 2, so understandably, the writing was on the wall for GMS 1.4, as evidenced by this blog post. Now this release was a few years ago, back in 2017, but being on a tight developer budget, I was hesitant to pay for an upgrade when the version I had was still pretty workable at the time. As I am already experienced with programming in languages like Java and C#, I also questioned if it made since to pay for an engine upgrade when there were other tools available, such as MonoGame and Marmalade (at the time), without the cost. There was no good reason for me not to be able to develop in these other tools, given my coding experience and background as a professional software engineer.
2. GM Studio’s sandbox environment was not a good fit for my level editor. Unfortunately, when I decided to do the level editor, I couldn’t see a good way to get around GM Studio’s sandbox, meaning that if I wanted players to be able to choose where to save there own level files outside of a specific, non-intuitive directory on their system, I would need a different approach. Again, even if I decided to redo the game in a programming language like C#, at least the users would get to choose their own save destinations. If I’m not mistaken, GM Studio 2 allows an option around this restriction, but as I said in my first point, as a programmer, I should be able to find more cost-effective approaches. I suppose I could have created a .dll or some other extension to bypass this issue on Windows, but I also would like this game to be cross-platform, so I would have had to buy a more expensive license package to develop for multiple platforms, and a Windows extension wouldn’t work for Mac or Linux (once I get to that point, of course). So again, easier just to use a different tool.
3. As a long-time programmer, I find that the way I think and organize my work just is better suited to a language like C# or Java. Yes, I know that GM Studio has a scripting language (Game Maker Language, or GML), but for whatever reason, I just feel like in many cases it’s simpler to get things done in a different language. I’m not really sure how to articulate it, but maybe it’s just because my first programming language was C++, so my preference just reflects the route I’ve gone.
So, while I think GM Studio brings a lot of great things to the table, especially for non-programmers and those new to game development, it’s just the best decision now to migrate Brain Bouncer to MonoGame. I think for smaller projects I’d still get a lot of use out of GM Studio, but for larger scope and added development, MonoGame seems like the more maintainable, logical choice for me.
Plan Going Forward
I always like to start off with a new tool by doing some tutorials and walking through the documentation, so that I can familiarize myself. That’s what I’ve been doing for this project, while at the same time taking notes and applying the lessons learned to the actual game migration.
I will be posting devlogs about the migration, which I hope will add to the useful resources out there for those who also want to learn MonoGame. I’ll share the tutorials that I’ve used, and others that might be helpful, so if you’re interested in developing in MonoGame yourself, I hope this will be helpful to you!
If you’d like to learn more about the game, visit the Brain Bouncer page here.