I'm looking for something like an alternative to XNA - I don't care whether it's a 2D or 3D engine. It's not because I dislike Windows or am anti-Microsoft; it's because I like running Linux, code in Linux completely (for C# I use Mono, obviously), and by no means have any hardware to actually support programming in XNA, simply because my video card is 6 years old. I also don't have a Windows 7/Vista CD for DirectX 10.

Thus, for game development I'm kind of stuck in the stone age. Yet, I like C# very much and would hate to have to drop it as a language due to this.

Is there anything I can do?

  • 13
    \$\begingroup\$ I hate when an answer is picked so fast. It doesn't leave time for deeper or more detailed answers to be posted. \$\endgroup\$ Aug 8 '11 at 20:46
  • 6
    \$\begingroup\$ @AttackingHobo If you have a deeper more detailed answer to propose, by all means go ahead. \$\endgroup\$ Aug 8 '11 at 21:21
  • 1
    \$\begingroup\$ @Jonathan The problem is the first answer is not regularly the best one. In fact it can often be the least researched or least thought out. There's a reason we have a silver badge for answering first and being right - it's an achievement, or a reward for answering a dead question. \$\endgroup\$ Aug 8 '11 at 23:56
  • \$\begingroup\$ @Jonathan Connell I have been researching something similar for over a week already. I have found a few different candidates, but I want to actually use them, and see what ones are actually viable. Just typing the question into google and blindly posting some of the links as an answer is not very helpful. \$\endgroup\$ Aug 9 '11 at 16:55
  • \$\begingroup\$ Hey @AttackingHobo, it would be nice of you to post your candidates, since I've been looking for something similiar out of passive interest for like 5 years. From all that time I can only remember Irrlicht wrapper and managed Ogre wrapper working correctly, and I don't like them: Irrlicht was buggy but presumably fixable, and for managed Ogre it would be better to chose NeoAxis. Maybe you was lucky to find something good which I missed, I'm just one guy after all, so it would be great to share it :) \$\endgroup\$
    – EnoughTea
    Aug 9 '11 at 19:00

I'm afraid there is no such thing as a complete alternative to XNA in the world of C#-based cross-platform frameworks. Monoxna is long dead, and very few other cross-platform tools use C# as their language of choice.

However, this soon-to-be port of XNA on iOS and Android looks very promising: ExEn. Don't know about requirements though.

Since you've used word "engine" you may want something more complex. I can remember only one cheap full-fledged C# engine that can run on Linux and has pretty forgiving hardware requirements: NeoAxis.

However, if your primary target is 2D games, then you may check out this little cross-platform game library: AgateLib. Two years ago it was nice to use yet somewhat buggy, maybe now things are better.

Anyway, if anything else fails, you can always use OpenGL with SDL via OpenTK or SDL.Net.

  • 3
    \$\begingroup\$ Just a note - ExEn is maintained by our very own Andrew Russel! \$\endgroup\$ Aug 8 '11 at 22:12
  • 1
    \$\begingroup\$ -1. While ExEn seems useful and interesting, it is not a linux compatible alternative to XNA. "2D or 3D engine" seem to be referring to the graphics engine. \$\endgroup\$ Aug 9 '11 at 17:29
  • \$\begingroup\$ MonoGame was in development for several years and progress looks nice lately, but remembering my experience with it this spring, I have more faith in ExEn. If it will have a bit of a good architecture, it will be very possible to replace MonoMac with OpenTk. \$\endgroup\$
    – EnoughTea
    Aug 9 '11 at 17:59
  • \$\begingroup\$ For 2D, even GTK# might be an option to consider. \$\endgroup\$ Aug 10 '11 at 2:41

Why seek an alternative when you can use a port?

"MonoGame is a free OpenGL implementation of the XNA 4.0 Framework. It is built upon the excellent range of Mono compilers and is compatible with MonoTouch (iOS), Mono for Android (Android), MonoMac (Mac OS X), Mono for Windows and now Linux!

Our goal is to allow XNA developers on Windows & Windows Phone 7 to port of their games to the iOS / Android / Mac OS X / Windows / Linux and visa versa, with minimal hassle."

MonoGame website.

MonoGame repository


2 libraries good for software rendering:

  1. SDL (C/C++) or SDL.NET, since they are built for OLD hardware and can optionally use OpenGL, if you want to upgrade your hardware later. SDL's totally cross-platform for desktop systems.
  2. Allegro is another old-school library good for pushing pixels individually without the need for special graphics hardware.

I fing Allegro more powerful from a pixel pushing standpoint, but I do not think it sees the same level of activity that SDL does, and while SDL is kept up to date by its author, I think this is much less the case with Allegro.

  • \$\begingroup\$ -1: Allegro version 5 came out this year, and it has regular updates. So... I have no idea what you're talking about. Also, why no mention of SFML? \$\endgroup\$ Aug 10 '11 at 2:28
  • \$\begingroup\$ My experience was with Allegro 4, by the way. "Also, why no mention of SFML?" -- Am I under some obligation to mention every library out there, including ones I've no interest / experience in? Why didn't Den or Vigil mention SFML either? Maybe because they didn't want to? You don't have to try to justify your -1 further. \$\endgroup\$
    – Engineer
    Aug 10 '11 at 7:34

You may want to check out ANX:

The ANX.Framework is a framework which is source compatible with Microsoft's XNA framework 4.0. Source compatibility means, that you can "translate" a XNA game project to be a ANX game project by simply replacing all namespaces from Microsoft.XNA.Framework to ANX.Framework. The advantage of ANX is simply that you are able to swap the RenderSystem, the InputSystem and the AudioSystem. By swapping this systems you are no more limited to run your game using DirectX9 which XNA is using. ANX comes with a DirectX10 RenderSystem as a default. A DirectX 11, DirectX 11.1 and a OpenGL 3 RenderSystem is currently in development. This will make it possible to run your games on Linux and other plattforms which are supported by OpenGL etc. simply by swapping the namespaces.

~ Codeplex site: http://anxframework.codeplex.com/

It is still under heavy development but most of the basic XNA features are implemented.


Not the answer you're looking for? Browse other questions tagged or ask your own question.