Worth it to try again?

About a year ago, I posted this thread in codeplex detailing my attempts to port my game, DwarfCorp from XNA to Monogame for Linux + Mac support, with, erm… extremely underwhelming results. I think the consensus was to “wait a while” for a new SDL version of MonoGame, so I’ve been just developing in XNA ever since. I’ve noticed a new release as recently as April, so I was wondering if it was worth it to take another shot?

To reiterate: my game is full-3D, desktop-targeted, makes extensive use of custom shaders, uses JSON serialization, etc. so not the typical 2D mobile sprite-batch based game MonoGame tutorials are usually about.

Just to reiterate, some of the frustrations I was having with MonoGame a year ago were:

  1. Really bad windowing support on Linux
  2. No support at all for compressed audio (“Songs”) on Linux or Mac
  3. Very limited support for custom shaders (and in general tons of limitations from OpenTK)
  4. Really complicated content pipeline setup

I was wondering if these issues have been resolved yet? And, if so, is there any updated documentation anywhere for porting a game from XNA to Linx/Mac OSX?

Well, content pipeline setup is still the same.

But i am using a seperate program called " XNAContentCompiler ". I am compiling other images , fonts vs. to .xnb to use in my game.

They are saying MonogameContentPipeline is near complete but they are working on a PS4 port of MG right now. So we still have to wait for it.

  1. The SDL2 version by flibitijibibo should do all the windowing stuff AFAIK
    https://github.com/flibitijibibo/MonoGame

thefiddler (OpenTK maintainer) is working on fixing windowed/fullscreen in monogame non SDL2 version as well.

  1. SDL2 version supports compressed audio on all platforms via libvorbis (ogg) IIRC.
    Main branch uses SDL(1?) to play music on linux, so should support whatever your install does, Mac supports AAC audio.

  2. These should be a bit better (I’ve seen some PRs improving minor bits), but I’m not totally sure on this one.

  3. Very recently a pipeline UI has been born:
    https://github.com/mono/MonoGame/pull/2441
    So this should be improved, but it is still quite early days.

Hope that helps :smile:

So just to be clear, I should download this 3rd party branch instead of the main branch if I want to do linux development?

Right now if you want fullscreen/windowed to work correctly in linux, I’d use the SDL2 version yeah.

Sweet. I’ve gotten the samples to work on the Windows GL build and Linux build. Question: can I continue building on windows and then copy the contents of my Linux build folder to linux and it will automatically work? (Assuming of course I have the proper dependencies)

With the SDL one I think so (I haven’t tried it myself yet :slight_smile: ), they have a wiki page that has some links that might help:

Wow, exactly the tutorial I was looking for there!! Very helpful!

This is what my game looks like right now in monogame SDL on Windows. I had to change many of the things I changed last year : instancing doesn’t work, some shader features like texcube don’t work, etc. but it was much easier to track them down and change them this time. I will now try porting to Linux.

1 Like

Well, there we go! It runs maybe 100x slower on this ancient mac book, but it at least does run! I will have to figure out how to profile it on mac to figure out why its so bad.

1 Like