For a while now, I've been working with XNA for game design and development (although only for personal use ATM.) Overall, I'm a major fan of XNA itself, and it's overall "feel." However, due to the fact that:

  1. XNA seems to have a lack of support (no Metro support, no updates since 2010, etc.)
  2. I plan to try and get a job in the game development industry, and due to C++'s dominance, being more familiar with it would be very useful
  3. XNA only supports Windows (non-Metro) and Xbox 360, while I am interested in Mac and (to a lesser extent) Linux support.

I've been trying to shift over to C++ as my main language. However, I do not want to focus on learning raw DirectX/C++ at this time, so I've been looking for a higher level C++ API (something about the same level as XNA, although something a bit more low-level would be fine) with a feel similar to XNA. So, for someone switching from C#/XNA to C++, what would my best choice(s) be for API's similar to XNA, although unmanaged and running on C++?


closed as off-topic by MichaelHouse Nov 4 '13 at 3:43

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions that are about "which tech to use" are outside the scope of the site. For more information, see this meta post" – MichaelHouse
If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ DONT EVER use DirectX with C++... Use OpenGL ;) \$\endgroup\$ – CoffeeandCode Nov 4 '13 at 3:01

First of all, if you want to stick with C#/XNA, and still support Mac/Linux, you could consider MonoGame. Plus they have a Metro port in the works too. So I wouldn't call the XNA API dead just yet. (On the down side, MonoGame's code quality leaves a lot to be desired.)

Also I wouldn't discount the possibility of a new official version of XNA eventually.

If you want to enjoy some of XNA's nice helper classes (eg: SpriteBatch, SpriteFont), while moving over to DirectX/C++, you could try the DirectX Tool Kit. And don't forget that much of the niceness of XNA is in its content pipeline - so DirectXTex might help. It's made by some of the same folks who made XNA, so you know it's good (blog post).

You could consider trying Unity - which uses C#, supports Mac and Linux and a bunch of other platforms, and is used in "The Industry".

If you'd like Metro support, want to learn DirectX, but don't want to leave the comfort of C#, you could check out SharpDX.

Finally, you could look at Cocos2d-X, which seems to be quite popular and is probably the closest cross-platform C++ library to XNA that I can think of.


For the sake of completeness I want to mention SFML. Everybody using C++ should at least take a look at it as SFML is completely object oriented whereas SDL basically is C.


IMHO, these libraries are interesting for solving your migration especially if you want to program in C++:


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