Is XNA still worth learning?

Started by
13 comments, last by RichGelles 10 years, 5 months ago

I'm mostly a Java developer, but recently I've wanted to try my hand at developing an indie game for Xbox live. To do that, I'd need to learn C#/XNA. I could probably learn them at the same time easily enough by picking up an XNA book and going through that/online examples. My question is, with XNA being unsupported and Xbox One going to be released soon(Support for Indie devs still unannounced), would it be worth it to invest the time into learning XNA?

Advertisement

It depends if you are looking to learn XNA for a long time or just for learning purposes. Honestly If you can't wait to make a indie game on xbox live then wait until they announce the language for xbox one. If you can't wait then make your indie game and hope for the best. XNA is very useful as you can use it for flash games and other software tasks.

Me and a game programmer talked this subject over once and both agreed, it pretty much isn't worth the time.

I don't know what system most people will be using for XBox One games, but I'm guessing Unity will end up big on them. (Note: I'm not 100% sure of this though.)

But if you have your heart set on XNA, don't let this stop you.
XNA is no longer being developed because it is a set of wrappers and utility classes for tools that are no longer being developed.

XNA targets DirectX9, which is not changing. It uses a version of the .NET framework that is not changing. It is targeting platforms like the older X360 which is not changing.

With everything else not changing, there is no point in changing the wrappers. That doesn't mean the interfaces are invalid or not useful, since the underlying technologies will still be running for years to come.


Old technology doesn't suddenly vanish the day people stop updating it. Some things remain in use for many, many years.



If your game is going to target machines and tools from six years ago, then XNA is still viable. If you are just learning how things work, the basics of 3D using Direct3D, or want to program your own hobby game engine, XNA can be a great thing to learn.


To do that, I'd need to learn C#/XNA.

I taught myself C# using RB Whitaker's book C# Player's guide. Then over the summer I started taking the programming classes taught at my local college where they teach Java. Going from C# to Java was a breeze. Most of the syntax is the same. The only real differences is the naming standards. Like a method in java starts with lower case where a method in C# starts with uppercase. Learning XNA will also be quite easy. Me personally, I am going to continue to use XNA to develop for Windows and the XBox 360. Then switch over to Mono once they have their own content pipeline, which is just an open source version of XNA.

Cpl Alt, Travis A

USMC

Hi,

Most people will still be using the device which has DirectX 9c compatibility, even after the new hardware is released soon and updated version comes within the next year. It will take a couple years for the two station versions to be about at par in numbers, but even then many people will still play Xbox 360 for years into the future.

Long term, you really should consider your options there, too. As for computers being a target hardware platform, once a program is installed into the Program Files registry, the Windows Operating System update utility will detect the version of the graphics API (Direct3D/DirectX) which the software needs to fully execute and then provide the end-user with the necessary version of the .NET Framework which contains DirectX 9c support (if not there already, then it should be provided automatically). Of course, any later versions of .NET Framework are backward compatible with DirectX 9c developed programs and software, so later OS are no problem. I write all this for future reference because the numbers of people who own PCs still continues to climb despite the trends of laptops, tablets, play stations, and smart phones. (Laptops are of course PCs and are mobility devices though not technically in the mobile device category as most people think of that.) For this reason, learning Mono at this time might be a better option in preparation for the new utilities which are coming, because by the time you are ready to provide serious art assets and include them in development, then Mono will be fully ready for the next generation of PCs and devices. You may develop now for this generation, but Mono will only get better for years down the road. tongue.png Remember that Mono is also, like XNA, targeting a graphics API which is mature, which means for you that the game source code will never be "broken" for years to come and Mono tool chain itself will only improve with very compatible changes. Mono after all is fundamentally an implementation of XNA type technology.

XNA on the other hand, as already stated, has reached maturity (stopped growing and expanding) with the advantage of stability and reliability. You need to think carefully about the abilities and goals to make a decision on XNA or not. I agree with previous writers that as beginning developer, you really can't lose in any case by using XNA. The stability and maturity of XNA is a tremendous advantage to new developers who need all the help that they can get for the first 1-2 years. If you actually like debugging, then you might want to consider another option. laugh.png

Xbox in a similar way has no problem in playing DirectX 9c programs for years to come, the way someone pointed to it earlier. wink.png

Since the previous posts here hit the nail on the head, I only wanted to confirm and explain the reasons why.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

Microsoft has hinted at a replacement for xna. Probably sometime after the XBOX one is released they will announce some kind of Indie software dev kit including a replacement to xna. So give it a couple months and see what happens before spending a lot of time on a no longer supported api.

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

If you mean you want to learn a tool for long term programming and development; Microsoft already announced that it has no plans of releasing any more versions of XNA in the future (google <XNA dead> or something like that). Learning XNA now would be the same as studying any abandoned SDKs.

Still, it would still be worth it if you simply want to learn the basics on game development, as the "tools" you learn will make little difference on the long run. The most important thing is what you learn. You should really understand object orientation, software architecture, this kind of higher-level stuff. Then, you should pick your language, as C++, C#, and get experience with it, practical experience (not read some books experience). Here, XNA can be a learning tool.

But, If you want to target Xbox One, the only thing I think as guaranteed is DirectX (note that I thinking it's guaranteed means sheet).

You can go with Unity, as they have already announced support for it (possible support), but it has a steep cost for an individual indie developer.

What I'd do? I'd wait. Wait and see Xbox One tools and Dev Kits, officially announced. Specially when you'll probably have a cross-platform technology to choose and target PS4 and PC as well.


What I'd do? I'd wait.

(Note: I'm not singling you out, but just using the quoted snippet as a jumping off point to respond to the general idea, which a few different people have proposed.)

Waiting to see what's announced for XBox One isn't a terrible idea, but I wouldn't suggest just sitting and twiddling your thumbs doing nothing for however long it takes for that to happen -- especially given an option that's viable for a hobbyist or very low budget indie developer may not be forthcoming for quite some time if ever.

Why not learn XNA in the meantime and then dump it for a newer library/tool-kit if or when one actually appears. The benefits of doing so are:

  • You'll get to do something until the XBox one tools are announced and made available. Doing something is better than doing nothing.
  • You'll get to practice your C# programming skills, which will still be applicable if using C# in future.
  • You'll learn some of the general basics of game development that will still be relevant with a different framework.
  • Your XNA knowledge will transfer almost seamlessly to using MonoGame, which is still under active development and will continue to be supported.
  • With enough time you may even complete a working game that you can still release/show-off/put in your portfolio.

By all means drop it for newer tools if and when they're announced, but if waiting for those newer tools is your decision there's no real reason you shouldn't use that time waiting to learn XNA, or try out some other option such as Unity, LOVE, LibGDX, or any of the many other frameworks that are now readily available.

- Jason Astle-Adams

I wouldn't suggest just sitting and twiddling your thumbs doing nothing for however long it takes for that to happen

Just to clarify, since I see I've clearly been misinterpreted, when I say wait, I don't mean sit on the couch and watch brainless reality shows eating over salted french fries.

I mean study in general, and, once Xbox One support list and development tools is announced, then you worry about Xbox One support. That's what I meant, wait to make this choice specifically.

Sorry if I confused anyone.

This topic is closed to new replies.

Advertisement