#How much extra time/work is needed for console porting with MonoGame compared to Unity?

4 messages · Page 1 of 1 (latest)

worn relic
#

I'm developing a 2D platformer game using MonoGame and planning to eventually port it to consoles (primarily Nintendo Switch, possibly Xbox and PlayStation as well). I'll be handling porting process myself.

I understand that Unity offers relatively straightforward console publishing with their tools and contracts with Nintendo, Sony... I'd like to know how much more time/work would be required for porting process with MonoGame. While I enjoy technical challenges, I need to realistically assess the time investment compared to using Unity.

Has anyone here gone through the console porting process with MonoGame? How much additional development time should I expect compared to Unity?

drifting drift
#

At the current moment, right now, if you were to start this today

  1. You would first need to have the NDA developer stuff signed with Microsoft/Nintendo/Sony, whichever platform
  2. You would need to apply with the MonoGame Foundation for access to the console stuff
  3. You would use a tool called BRUTE to transpile your C# MonoGame code into C C++ code that can run natively on the platform. BRUTE has limitations in that it only supports .NET 4.5 and C# language version up to C# 5. So you would have to rewrite a lot of code that uses newer language features most likely.
  4. Time it takes for testing, etc.

BRUTE has been the tool in the past for this with MonoGame and XNA likes. It was developed by Tom specifically for porting XNA games to consoles. However, we now live in 2025 where we have NativeAoT compilation. There is work being done to move away from requiring BRUTE and allow for just Native AoT compilation support. FNA is another XNA like, like MonoGame, and they've had some success with Native AoT on consoles. Since both FNA and MonoGame implement the XNA api, you could theoretically use FNA for console release if you wanted to try with Native AoT compiliation. You would still need the NDA developer stuff and access to the console sdks.

Outside of this information, I don't have much more to offer. I don't have access to the console side of things, so I can't speak to the work needed for it and since a lot of it is under NDAs, I'm not sure how detailed anyone can get.

Going to tag @clear marsh in case he has any insight to offer

clear marsh
#

well i'll echo the advice of Tom from many moons ago - if you have a bunch of 3rd party dependencies, it will very likely be more difficult to port cross platform, because you will also have to port those dependencies. so, my take on that is "write it yourself, if you can" so then you have total control over the codebase and can make changes as you see fit, with code you are familiar with.

brute transpiles c# to cpp, a slight correction

#

compared to using unity, my thoughts are: good luck supporting older unity projects. i cant even load some of them anymore. so, to me, unity has and always will be more of a pain to ship with and support.