Tell me more ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

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++?

share|improve this question

3 Answers

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.

share|improve this answer

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

share|improve this answer

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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