You can sign up to get a daily email of our articles, see the Mailing List page!
Support me on Patreon to keep GamingOnLinux alive. Funding me on Patreon allows us to have no adverts, no paywalls, no timed articles. Just good content for you to keep up with Linux gaming. Alternatively, you can support me on Paypal.

Want to play 'Duck Game' on Linux? Well, it's possible thanks to XnaToFna

Posted by , 13 September 2017 at 12:19 pm UTC / 2772 views

Duck Game [Official Site] is a popular action game that's a little insane and it's actually possible to run it on Linux, thanks to developer "0x0ade".

We spoke over email to explain the situation and it's really quite interesting. To make it as simple to understand as I can: It uses the XnaToFna project, which essentially "relinks" the game from Microsoft's XNA to Ethan Lee's FNA.

You can find the full instructions on how to do it, on this github page. You obviously need to own a copy of Duck Game to do this.

It doesn't currently work with mods, as the developer said "From what I understand, mods are built against XNA and could contain Windows-limited hacks, f.e. hardcoded \ in paths instead of using C#'s Path.Combine function". They hope to be able to get some mods running in future though.

The developer told me that both XnaToFna and DuckGame-Linux are done in their free time. Also, XnaToFna was started originally as an effort to see how accurate FNA is and to hopefully get more games on Linux. They do need some help, in particular they need more people to test it and report back. It will be interesting to see if more people chip in and help develop XnaToFna.

Hopefully someone at Adult Swim Games or the developer, Landon Podbielski, will take notice and get a proper port going. Sure would be fun to have on Linux, but they never replied to game porter Ethan Lee when he asked about it before.

10 Likes, Who?
HexDSL 13 September 2017 at 1:27 pm UTC
Duck Game! - i really want this to be for-realz ported
Purple Pudding 13 September 2017 at 1:31 pm UTC
hey, maybe someone can try this with "Cthulhu saves the word"? It seems a XNA game too and I want to play it! steam forum thread about possible linux version
KayKay91 13 September 2017 at 1:33 pm UTC
Went ahead and added that info into PCGW article
razing32 13 September 2017 at 1:51 pm UTC
View PC info
  • Supporter
I wonder if same could be done for Underrail.
I really liked that , and if I remember correctly it was built on MS XNA
0x0ade 13 September 2017 at 2:09 pm UTC
Purple Puddinghey, maybe someone can try this with "Cthulhu saves the word"? It seems a XNA game too and I want to play it! steam forum thread about possible linux version

Ethan Lee already tried CStW and a few other games a long time ago with very early builds of XnaToFna. CStW required a single FNA-side change to fix windowing:
image

You should be able to follow the DuckGame-Linux instructions.
MonoMod can possibly fail but will do nothing. The DuckGame.Mod.mm.dll only affects DuckGame.exe
As for the Steam.dll / Steamworks.NET, it shouldn't cause any conflicts, but I don't know what Steamworks binding CStW uses. If it's SW.NET, this should work out of the box.
You then just need to modify the DuckGame.sh to run the CStW .exe instead of DuckGame.exe.

If it doesn't work, please tell me on Twitter, I'll be happy to help! Even though I don't own the game, if something burns down, I can still help. @0x0ade
Purple Library Guy 13 September 2017 at 4:30 pm UTC
I gather then that XNA is some kind of framework or engine-ish thing that helps with writing games, which being Microsoft (ritually spits on ground) is Windows-only?
0x0ade 13 September 2017 at 5:46 pm UTC
Purple Library GuyI gather then that XNA is some kind of framework or engine-ish thing that helps with writing games, which being Microsoft (ritually spits on ground) is Windows-only?

Yes, XNA is a C# game framework. It's not comparable to a fully fledged engine like Unity, but offers most basics (content management, input, graphics, audio, ...). And you got it, it's Xbox 360 - and Windows-only (technically also supports Windows Phone)... and not supported by Microsoft anymore.

FNA is an accurate open-source reimplementation of XNA 4.0 by Ethan Lee. It spawned as a MonoGame fork using SDL2 instead of OpenTK, but the paths have diverged heavily ever since. For example, FNA uses MojoShader to deal with HLSL (DirectX shaders) at runtime; with MonoGame, you've got a content pipeline separated from XNA Game Studio. In my opinion, the situation can be summarized as "FNA = XNA 4.0, MonoGame = XNA 5.0"
Purple Library Guy 14 September 2017 at 6:02 am UTC
Thanks!
Sir_Diealot 15 September 2017 at 10:18 am UTC
AFAIR Banished and Dust: An Elysian Tail were done in XNA, but isn't it dead since a few years?
0x0ade 15 September 2017 at 10:36 am UTC
Sir_DiealotAFAIR Banished and Dust: An Elysian Tail were done in XNA, but isn't it dead since a few years?

Owlboy is another game using XNA and it was released last year.
Although one really shouldn't use XNA for new games if you can avoid it, the Owlboy developers started out with XNA and switching to f.e. Unity so late was impossible.

XNA itself is not actively maintained anymore, but you can still use it on Windows 8+, just not in "Modern UI apps." And projects like MonoGame and FNA will keep the "spirit" of "XNA" alive.

Something that's not looked at often enough is preservation. If XNA will not work on Windows in the future at all, FNA will help us get old games running again. And as XBLIG is dead in a week, MonoGame could help the developer in bringing the game to Xbox One.
While you're here, please consider supporting GamingOnLinux on Patreon. We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

We also accept Paypal donations! If you already are, thank you!

Due to spam you need to Register and Login to comment.


Or login with...

Popular this week
View by Category
Contact
Latest Forum Posts
Facebook