Migrating our entire development line to MonoGame

Hi Everyone,

I’m very new here, but I’ve been in the game biz for a long time. My company Giggle Horse Games, transitioned all our tech from our old company after 20 years. Anyhow, we developed the Cortex engine which was XNA based in used to lots of games.

We are currently working on a point-n-click called Absolute Zero We ran into some snags that took us down a rabbit hole about XNA that we need to get out of, so we are moving to you guys. You can read about it here. Giggle Horse Games Dev Blog: 0006 | Microsoft Painted us in a Corner

Anyhow, you will be seeing a lot more of me, and we hope to be able to contribute to MonoGame.

Your digital friend,
Randy

2 Likes

Funny story! The events sound a little bit funky. (Steam Greenlight got shutdown much later.)

Anyway, based on your article, I think you might enjoy FNA more than MonoGame: https://fna-xna.github.io/. It’s much closer to XNA. https://github.com/FNA-XNA/FNA

1 Like

If you run into issues with XACT and your go to is Monogame then in short: Don’t. Unless you plan to throwing whole XACT out of the window and replacing it with something reasonable, let’s say FMOD.

1 Like

Hi @Randell, Welcome to the Community!

For rapid responses, join the Discord:

Happy Coding!

1 Like

@Apostolique Yeah, the events that unfolded were a little odd to me. I just like that feeling of being hunted to extinction. Mono looks to be very cross platform compatible, that was the big thing for us. I will look into FNA today, but we aren’t looking for a 1-to-1 port, just something stable and not nefarious. :slight_smile:

We did consider the whole XAct thing. I don’t know that we use a terrible amount of the effects and options other than panning, volume control, and making sounds out of multiple waves. Even if MonoGame doesn’t support XAct, it looks like Microsoft if phasing that out as well, which would just paint us into the same damn corner we got out of. I might have to get off my ass and write a backend for sound myself. I will look at FMOD as well. Thanks

1 Like

When we migrated our game from XNA to MG we had to create Frankenstain’s monster by ripping out parts of FNA audio and using it together with MG. While that was quite a few years ago, I wouldn’t bet on situation improving a lot in meantime. Which is honestly understandable, XACT was and is a heresy, abomination of audio engines. However if you would feel like it is not worth to rewrite then I second FNA recommendation. That also goes in case you simply want swap the API from XNA to successor.

Only case where I would recommend MG is if you want to continue with development and bring it to more modern standards, especially rendering wise. However that goes only for DirectX project, OR OpenGL IF used with Compute fork (which replaces Mojo mistake with Shader conductor). MG openGL is… to put it mildly: Not good.

1 Like

Good to know. We would like to move away from XACT if not for any other reason that the corner that it paints us in. I think I will rewrite the audio portion. Our sound FX and all that are pulled in (Marshelled so to speak) from a game configuration file of sorts, so it is just a matter of changing the manipulation of the audio (I hope) :smiley:

1 Like

I would recommend you to try SoLoud Library, I opened another thread a few months ago around audio libraries to use in Monogame and so far SoLoud seems to be working fine for me, but not sure about the scale of your projects. Check this thread

Also about OpenGL implementation, I am quite noob in that area since I was working on DX before, since I moved my projects now to multi platforms I started using OpenGL, any advice on why OpenGL is so bad in MG? or what is not working?

1 Like

I find it interesting that when a very potentional contributor to “our” framework appears on the forum - people immediately start recommending another framework instead ^^

I wont. Welcome @Randell ! Very much hope you will enjoy MonoGame.

2 Likes

Release version of MG has openGL limited to SM 3.0 which in modern age has absurdly bad resources limitations, that is combined with series of bugs where even basic functionality as instancing is down right broken. If you work on anything but simple game rendering few sprites then default openGL mg is not way to go.

I find it reasonable and helpful that members of this community point out any limitations or things that do not work well to avoid a bad surprise only after potentially a lot of effort would have been been made to move to MG by somebody. If they know beforehand, they can make a better decision or do some more investigation how to work around the things that are not ideal. Of course for MG itself it would be great to get more support for stuff that needs to be improved.

1 Like

Of cource, that goes without saying. What I questioned was the angle of approach of all the immediate replies and the general tone of the discussion. Rather than highligting current limitations, describing what MG is good/bad at (or even need to fix before such migration would be possible) and/or suggest possible workarunds - instead the immediate response was to straight up suggest other frameworks.

As I said, I have nothing against highlighting limitations. Just thought, since this is the MonoGame forum after all, that It could be done in a bit more constructive manner. This is after all an Open Source project so if ppl have such detaild knowledge about certain limitations - perhaps they could start working on a PR instead of trashing the MG forum =)

Is there any plan to improve the support of OpenGL? or the current limitation is only set to continue compatibility with XNA projects? just wondering since I do not have much experience doing much on OpenGL besides simple stuff

There’s an ongoing effort to move away from MojoShader, currently planned for the 3.9 release, based on the computeshader fork that was linked above.

that upgrade seems very good! and tons of new things to learn with it, hopefully we can see it sometime this year.

1 Like

LOL, I was just wondering if that was me, or if I was in the wrong forum. So far the port of the engine is going seamlessly with minimal changes from DX to OpenGL. We will be sure to post any issues we run into and how we solve them. Maybe we aren’t far enough into the port, but so far I’m pretty happy with Mono. I know that may change when we hit the audio, which we have been discussing moving forward without XACT.

Ok, so this discussion of limitations, begs the question from me. What are the limitations that MG has that XNA didn’t have? I’m just wondering if there is a major issue I’m not seeing. Not to mention that if there is an issue, it is open source, and unless it is a major “design” problem with MG, we will try and jump in and fix it. So far so good though.

I do not have a full list, but from my experience porting my old XNA games to Monogame

  • Sound support with XACT , not good , choose another library and you are good. Anyway XACT is not that good but that was one of the options in XNA at that time.
  • It seems some OpenGL implementation is not good yet, but XNA didn’t have all the OpenGL needed anyway

besides that, I think we can do a lot more in Monogame than in XNA, and if you ran into some problems I would recommend you to try to use also Chat GPT, even the free version will help. I am going to release a YouTube video about Chat GPT + Monogame tomorrow in my channel, it helped me solve many coding issues I had.

1 Like