XNA to C++

Started by
13 comments, last by Buster2000 10 years, 9 months ago

I've been searching about this for days, but I can't find a clear answer.

I recently started with XNA, I haven't made anything that is ready to be shared. I enjoy the XNA framework, but I don't see a future in it - XNA is dead, how reliable is MonoGames? And if I'd like to proffesionally work with game programming, I need C++, from what I've read.

I'm having a hard time deciding between continuing with XNA or go to C++.

Since I won't lose alot of experience in XNA when I go to C++, it might be better if I change to C++ asap.

What do you think?

Advertisement

XNA is dead, in that there won't be any changes to it. But why is that?

XNA is based on D3D9. XNA serves as a bridge to Xbox 360 hobby development. Neither D3D9 nor X360 libraries are going to change. So there is no need to modify XNA.

That does not mean XNA or D3D9 or X360 projects will suddenly cease to work. They will continue to work.

If you want to use XNA, then do so. It is not going anywhere.

XNA is dead, in that there won't be any changes to it. But why is that?

XNA is based on D3D9. XNA serves as a bridge to Xbox 360 hobby development. Neither D3D9 nor X360 libraries are going to change. So there is no need to modify XNA.

That does not mean XNA or D3D9 or X360 projects will suddenly cease to work. They will continue to work.

If you want to use XNA, then do so. It is not going anywhere.

I want to focus on Windows computer games, like an RPG game. What do you think about that?

My future goal is to, in many years, make a multiplayer game like this:

I don't want to have worked in XNA for years and then every computer runs on D3D10(?) and my game doesn't work.

It's answers like the one frob gave that make the time spent on gamedev.net such a joy :) He's absolutely right, so to add my two cents I would also say it is probably more important to learn to create a game first, from experience I have found it's a lot easier to pick up other languages after a while, but learning to make a game is difficult whichever you choose.

On the compatibility track, MonoGame for the most part is making a good effort to make sure people who learn XNA can port their games, there are still a few niggles, but nothing that would stop you making your game for Windows 8 for example.

Aimee

We are now on Tumblr, so please come and check out our site!

http://xpod-games.com

I don't want to have worked in XNA for years and then every computer runs on D3D10(?) and my game doesn't work.

There are no plans to drop support for them any time soon. There is backwards-compatible support for all the old versions.

In fact, you can still run games that were written back in 1996 that used the first versions of DirectX. They run just fine because the video drivers still support very old versions.

The current version is 11.2, which many people thought would be numbered 12.


I don't want to have worked in XNA for years and then every computer runs on D3D10(?) and my game doesn't work.

That's not, in general, a real concern. You don't need D3D9 hardware to run a 3D39 app, you need D3D9 hardware or better. I suppose at some far distant point, Microsoft might cull very old interfaces from the DirectX runtime, but AFAIK they support them all the way back to the beginning currently, except In Windows Store and Windows Phone apps where you have to use the D3D11 interface, but can target the Direct3D9 feature level.

APIs come and go -- just because the world has moved on doesn't suddenly invalidate everything you've learned. What about D3D 7, 8, and 9 programmers? Were their efforts wasted? Of course not. Just go learn whatever speaks to you, and learn how it works, not just the API calls you copy & pasted from some tutorial.

throw table_exception("(? ???)? ? ???");


And if I'd like to proffesionally work with game programming, I need C++, from what I've read.

The difference between a professional and an amateur - Professionals get paid.

You can be a professional with any toolkit/language you want. Personally, I have been challenged about what you're struggling with too, but it came down to these things for me:

1. I would rather spend time making a game than worrying about a bad pointer or memory leak in my amateur C++ code.

2. C# is "easier" to pick up and a lot of the frameworks in place make it simpler for you to get started and learn some great concepts in programming and games.

3. I would rather spend time doing anything else besides worrying about a bad pointer or memory leak in my amateur C++ code.

With the ramp up in indie development lately, going "AAA studio professional" should be less of a focus. However, I would think being a master at C++ would be awesome to help you get into that field, as I have read too. I think C++ is "needed" in the fields because they need as much control over their product as possible because they are either doing crazy stuff that pushes the limits, or crazy stuff no one has done and made a kit for.

jmillerdev.com

Follow me @jmillerdev

It's also important to note that "XNA" isn't a language, it's an API.

C# is the language usually used with XNA, and C# support hasn't ended. Just because one API of your language has been feature-frozen, that doesn't mean you need to abandon the entire language. You could switch to the open-source replacement for XNA, called MonoGame, or you could switch to something like Unity Engine, which is heavily used and heavily supported, and continues to be developed.

As for as developing your skills go, it'll be more beneficial to use the tools available to you to complete projects, than to switch languages whenever it seems like the language is being ill-supported. Until two years ago, it seemed like Microsoft had abandoned C++ to support C#. Now it seems (at the surface level) like Microsoft has abandoned C# to support C++. Chances are they'll release XNA 2.0 shortly after the XBox One launches.

Ironically, I had a similar 'crisis of faith' in C++ about two years ago, as all the programming news I was hearing was shouting "C#, C#, C#!".

A good tool is a good tool, and it's sometimes confusing when the winds of media hype for different technologies blows counter to the direction you were heading in.

I ended up deciding to stick with my current language, because I realized it's more important to actually finish a project, then it is to make sure that that project uses Company X's favorite language of the week. C# isn't dead, even if XNA has been sunsetted. XNA != C#

If you know the XNA api you might want to try SharpDX. It's more or less a clone of the DirectX api, like XNA is, but it currently supports up to DirectX 11.1. Also most of the library locations are somewhat similar so it's not too bad to convert.

I can't remember the name but I think there is another C#/DirectX based library if SharpDX doesn't float your boat.

EDIT: I was thinking of SlimDX, but it is out of date.

SharpDX, and to a lesser extent SlimDX, is a very minimal communication layer between Managed code and DirectX, which is normally only accessible to native code. The managed code environment is about as much as either of them have in common with XNA, which offers a simplified, higher-level API and other high-level game development features. MonoGame is an XNA clone, and offers mostly the same functionality.

throw table_exception("(? ???)? ? ???");

This topic is closed to new replies.

Advertisement