A few years back, we created the Cortex game engine which is based on XNA 4.0. We use this for all our projects but now are working on a very large game. We have built a prototype of the game (which is large itself) and decided based on requests from publishers to try and port it. So we converted the Cortex Engine over to Mono 3.5 and it compiled and ran the tiny stub we made fine. So I thought awesome! This is going to to cool…write once run anywhere…eh, not yet.
When we went to run our prototype project we got all sorts of things happening that doesn’t give me a lot of confidence. I am really hoping I am doing something wrong. Here is a list of the immediate issues we see.
The green channel of RGBA seems to be missing from everything. It is all orange looking.
Our audio sound FX (which were compiled in XAct3) sound like crap. Really loud with lots of distortion like a blown speaker.
(really important) Anytime we play a video like a cutscene, or company intro. It immediately crashes without any exception or we get an “Out of memory” exception from SharpDX.
Is this typical? Is Mono this buggy? Is SharpDX that buggy? Think about it, it runs out of memory using managed code…I shutter to think what that code looks like. Please tell me that I’ve got the wrong version of Mono, I am missing Magic.dll that fixes all this? I guess I am in shock a bit about how much I’ve been told this is a “clone” of 4.0 yet it …isn’t. Please tell me I am wrong I really would like to get this technology working for us.
Yes, I understand that “new” software can have bugs. I’m a veteran to the industry for 20 years, I understand that new features are added over time and issues might arrise. However when something was a feature in XNA 3.1 a decade ago, and it still doesn’t work in Monogame, that is isn’t “just a bug” anymore. Not having the capability to play a video or running out of memory because of a leak isn’t a minor development bug. Especially when there is tons of software like VS memory checker and Numega Softice that will pin point leaks. The issues we are seeing don’t give me a lot of confidence in Monogame as a stable platform. Thanks for all your replies, I don’t think Monogame is something for us. The cross platform feature looked intriguing, but when it is a hassle to get things to work on a single platform our QA team would have a field day with multiple targets and we just don’t have the funding to keep chasing down bugs we didn’t create.
Well, try FNA, it looks like you dont need advantage of Monogame over XNA, thus FNA is definitely better choice for you since you are looking just for portability. We migrated to monogame because of terrible XNA limitations when it came to rendering and lack of 64bit support.
For what it’s worth, I have chosen MonoGame, for the better AND the worth, but it’s unfortunately always how it’s work these days, you do all by yourself and deal with your own issues, or carry the burden of someone else’s work, and may expect blocking issue may not/never be fixed at all.
But, the best attitude in your case it at least, to take a little time to give some samples which shows the issue (maybe the same code in XNA and MG on the SAME platform with the same assets) to give people a chance to fix the issue(s) you found. Complaining and leaving didn’t help anyone at all, especially you.
Don’t forget with open source project like this one you have the unique opportunity to be listened and maybe someone doing something similar to you can try and work on a fix for it, whereas with $$$ projects like Unity or Unreal engines, if the team doesn’t care about your very own issue(s), they’ll never get fixed (or by “accident” sometime).