I recently changed from using GM:S for a game I’m working on to using MonoGame. There are a few good reasons for doing this, mainly to do with low-level control, and some performance improvements. There are many good reasons not to do this. A few that spring to mind are:
- You use GM:S for the drag-and-drop coding
- You’re not familiar with object-oriented programming but are happy using GML
- You like the large and active community of GM:S
- You use some of the advanced features of GM:S, like In App Purchases or Advertising
- (Perhaps most importantly) Everything is fine as it is in GM:S
With all that said, MonoGame is a great cross-platform library, and for much of what you’d want to do there is an easy one-to-one conversion into C# with MonoGame.
Things which will be more difficult to convert include Time Lines and Texture Pages. I shan’t go into much detail on these, but be aware for the latter that your performance could be significantly worse if you use lots of individual sprite files rather than unified sprite atlases.
I’m going to talk through a conversion process for the Tile Based Platformer project which comes with GM:S. Hopefully for other simple projects the conversion is just as easy.