Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


XNA to C++


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
14 replies to this topic

#1 QBTAS   Members   -  Reputation: 106

Like
0Likes
Like

Posted 17 July 2013 - 07:19 AM

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?



Sponsor:

#2 frob   Moderators   -  Reputation: 22293

Like
7Likes
Like

Posted 17 July 2013 - 09:05 AM

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.


Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I write about assorted stuff.


#3 QBTAS   Members   -  Reputation: 106

Like
0Likes
Like

Posted 17 July 2013 - 09:43 AM

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:

https://www.youtube.com/watch?v=5oJqgeOxU7

 

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


Edited by QBTAS, 17 July 2013 - 10:02 AM.


#4 Tarika   Members   -  Reputation: 481

Like
0Likes
Like

Posted 17 July 2013 - 11:35 AM

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


#5 frob   Moderators   -  Reputation: 22293

Like
0Likes
Like

Posted 17 July 2013 - 12:26 PM

 

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.


Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I write about assorted stuff.


#6 Ravyne   GDNet+   -  Reputation: 7884

Like
1Likes
Like

Posted 17 July 2013 - 12:36 PM


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.



#7 tharealjohn   Members   -  Reputation: 451

Like
0Likes
Like

Posted 17 July 2013 - 12:38 PM


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. 


Edited by tharealjohn, 17 July 2013 - 12:40 PM.

jmillerdev.com

Follow me @jmillerdev


#8 Servant of the Lord   Crossbones+   -  Reputation: 20384

Like
2Likes
Like

Posted 17 July 2013 - 01:04 PM

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#


It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.
All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.
Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal

[Fly with me on Twitter] [Google+] [My broken website]

[Need web hosting? I personally like A Small Orange]


#9 Earthmark   Members   -  Reputation: 198

Like
0Likes
Like

Posted 17 July 2013 - 03:02 PM

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.


Edited by Earthmark, 17 July 2013 - 03:04 PM.


#10 Ravyne   GDNet+   -  Reputation: 7884

Like
0Likes
Like

Posted 17 July 2013 - 03:20 PM

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.



#11 ZwodahS   Members   -  Reputation: 483

Like
0Likes
Like

Posted 18 July 2013 - 12:06 AM

I was on this boat last December, to continue working with XNA/C# or to go into C++. XNA isn't really dead as many have mentioned. For me, the main reason for using XNA was that the kind of projects that I was interested in is good in the console and porting over to XBox is really easy (from what I heard) with XNA. Now that it is not an option anymore, using XNA become less relevant. 

I think the tool is not important, but how you good you are with the tool. If you are not deep into XNA yet, I would suggest SFML for C++ if you want to try C++.

However, if you are already very comfortable with XNA, then stick with it.

 

Just my 2c.


Check out my blog at zwodahs.github.io and zwodahs.itch.io/


#12 QBTAS   Members   -  Reputation: 106

Like
0Likes
Like

Posted 18 July 2013 - 12:48 AM

Thank you for your answers everyone.

I think I'll continue with XNA for now :)



#13 chrispetersinc   Members   -  Reputation: 114

Like
2Likes
Like

Posted 18 July 2013 - 11:35 AM

I caught this kind of late, but I wanted to say something. I've seen this question asked once or twice a week on this forum for as long as I can remember. The answers are always the same: "It's all the same. Just go with what you like. It'll be viable in the future." Well my answers to that are no it's not, no you shouldn't, and no it won't. There are some very good XNA games coming out that have been in development for a couple of years. However, if you’re going to start a game from scratch right now it would severely limit you to go with XNA. One big reason is because XNA will have no future support. Yes there will be support from the community to keep it alive, but you can do much better with an alternative. If you already have a game you've created with XNA and your deep into development then I can understand staying with it. Also, yes C++ is a pain to program with and learn, but there is a ridiculous amount of support for it out there and it will always be viable. There will always be support for it, there will always be a highly active community developing it, and most importantly, you have direct control over your game! How many times have you had to find some crazy workaround in XNA to get something to work that is akin to duct tape because you couldn't get into the code and make it work the right way? Anyway, it's a great language to learn in order to get into game design, especially 3D. However, I can't say it's a very good framework to stick with. Before anyone says anything about XNA being a framework, not a language, I think C# itself is a good language to program business apps with. But the level of control is not there for game development unless you are just going to keep it as simple as possible. Just my opinion. I know it goes against a lot of the devs here. But I have a question to you guys. Do you program in XNA? If not, would you start? If you were going to start developing with no knowledge of XNA or C++ would you choose XNA/C# or C++? I’m guessing the majority wouldn’t with good reason. Thanks that’s all I’ll say. Like I said this has been in my Google news for years and I just had to say something after all this time. Thanks, Chris

#14 Servant of the Lord   Crossbones+   -  Reputation: 20384

Like
1Likes
Like

Posted 18 July 2013 - 03:06 PM

Note that not everyone is saying 'Stick with XNA'. A lot of us (about half) are saying, 'Stick with C#'. C# is not XNA, XNA is not C#.

 

If the headlight on your car breaks, you replace the headlight, not the car. C# is supported. C# is not dying.

Even if XNA is dying, there are other APIs for C# to use.

 

It's only when people think, "Use C#? Okay, I'll use XNA.", or "XNA is dying? I should abandon C#.", that good advice accidentally turns into bad advice.


It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.
All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.
Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal

[Fly with me on Twitter] [Google+] [My broken website]

[Need web hosting? I personally like A Small Orange]


#15 Buster2000   Members   -  Reputation: 1740

Like
0Likes
Like

Posted 19 July 2013 - 04:44 AM


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

 

It depends what you call proffesional.  If you mean console games then yes.  However there are many games studios these days using all kinds of wierd and wonderful languages.  Flash, HTML5, Objective C, Java, Python are all used in several large studios that I know of.   Also C# is still the language of choice for writing windows based tools.






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS