Sign in to follow this  
Thomas Wiborg

xna dead?

Recommended Posts

Hello.
I am currently programming in XNA but lately im worried that XNA will die. Ive heard that MS no longer will continue making new versions of it.
I am therefor wondering if i should start to develope in DX. Is that a better framework for the future, or do you guys have other tips? My goal is to make games like mario, diablo 2 type rpg and games like plant vs zombies, temple run and angrybirds for phones in the future.
Ill start with 2d progress to isometric and maybe later 3d.
What are your guys advice in terms of framework?

Best regards

Thomas

Share this post


Link to post
Share on other sites

I broadly agree with Cornstalks' comment, but I feel it's worth noting that XNA is built on DirectX 9, and things in the 'native' world have moved on a bit since then, to DirectX 11. It used to be that case that after learning the XNA graphics API you'd look at DirectX 9 graphics API and think "oh yeah, this must be what's happening under the hood when I use XNA," and it all seems quite familiar. That's not so much the case with DirectX 11.

 

That's not to say XNA won't teach you anything transferable - all the vector maths, mesh structures, texture sampling etc. is common theory regardless of the API you're facing, and of course there's much more to making a game than graphics programming. All I'm saying is that it's somewhat less transferable than it used to be in that specific area.

Share this post


Link to post
Share on other sites
But I realy dont want to start to use alot of time working on XNA if I know I could start learn dx11 and have alot more use of it in the future. What do you think about that? Is dx11 easy to use when im want to make 2d games and isometric like diablo 2 and plant vs zombies?

Is it alot harder to learn C++ dx11 than xna and c#?

Share this post


Link to post
Share on other sites
Actually XNA 4.0 changed all of that and it's model is far closer to DX11 then it is to DX9 even though in the back end you are still running a DX9 application. The renderstates are now non-mutable instances, setting of vertex buffers on the device has changed to look more like the DX11 way. The draw calls on the device are modelled after the DX11 draw calls, setting up of index and vertex buffers is also similar to DX11 although not modeled on generic buffers sadly.

If you learn XNA4.0 switching to DX11 afterwards is easier although not the same you are going to have to learn how things are different mostly to do with the context and device split in DX11 which XNA doesn't do.

Using C++ and DX11 isn't harder then using C# and XNA once you know the technologies involved, it is less productive to use DX11 and C++ as you will have to write a lot more boilerplate code than you have to in XNA. If you need to learn C++ as well I'd say stick to C# and use slimDX(or similar wrapper) instead which allows you to use DX11 in C#. Edited by NightCreature83

Share this post


Link to post
Share on other sites

Hello.
I am currently programming in XNA but lately im worried that XNA will die. Ive heard that MS no longer will continue making new versions of it.
I am therefor wondering if i should start to develope in DX. Is that a better framework for the future, or do you guys have other tips? My goal is to make games like mario, diablo 2 type rpg and games like plant vs zombies, temple run and angrybirds for phones in the future.
Ill start with 2d progress to isometric and maybe later 3d.
What are your guys advice in terms of framework?

Best regards

Thomas

 

Well, if you do wish to contenue using XNA, you might consider Mono Game.  Mono Game is an open source implementation of XNA 4.  It's been pretty easy to migrate XNA projects to MG too.

Share this post


Link to post
Share on other sites
Hmmm aint easy to know what to do :-) Hows the future for slim and sharp dx. Mono game?
And will XNA for sure die or is it not known yet?
I consider to learn C++ DX cause it looks like its the one that will stay alive in the future.

Share this post


Link to post
Share on other sites

games like plant vs zombies, temple run and angrybirds for phones in the future.


If you aim to develop for phones, then unfortunately C++ and DirectX is not an ideal choice since you will only ever be able to target the windows phone and you can only use native languages on it if you have a pretty expensive license agreement (and probably a dev kit).

With an Objective-C or Java shim, it is very easy to program in OpenGL and C++ on iOS and Android (but not Windows Phone) if you want to go the native route.

Otherwise I think the only solution (other than things like Unity) is MonoTouch and MonoGame which I think can work on iOS, Android and Windows Phone.


... But not Blackberry ;) Edited by Karsten_

Share this post


Link to post
Share on other sites
MonoTouch is an implementation of Mono that runs on Android and iOS. It is closed source and commercial (But will most likely become open-source in the future).

If you didnt already know, Mono is an implementation of Microsoft .NET (allowing you to use C#).

MonoGame is simply an implementation of Microsoft XNA (Comes as a .DLL). So provides the Game class, the Effect class etc...

So if you want to develop XNA on a mobile, you will need both MonoTouch and MonoGame. They have similar names but they are both very different bits of software.

Note: MonoGame doesn't use DirectX underneath unlike the Microsoft version, instead it uses OpenGL. To do this it uses OpenTK as a binding layer. If you would prefer to use OpenTK directly, this will also work on Android, iOS but unfortunately not the Windows Phone (Where you would need to use Microsoft's implementation of XNA rather than MonoGame anyway).

Share this post


Link to post
Share on other sites

I see so many of these XNA Dead threads, and really, I feel that even if there is no support for XNA anymore, there is still such a huge advantage to making a project with XNA if only for the fact, that you are learning so much in the way of game programming, that the experience is well worth it.

 

I started using XNA a few years ago, and that led me to learn C# (since I was only C++ before that) and since learning C#, I now have a Java class, and I feel really comfortable with the managed sort of langauges.  Also, my XNA classes and functions I have ported to C++/OpenGL, so though I dont use XNA anymore, there is nothing that I have lost in using it, but only gained.

 

So in conclusion, it really doesnt matter if XNA is dead or not, just program, and learn, and have fun. 

Share this post


Link to post
Share on other sites

Time spent with XNA now and even for some years into the future isn't wasted. You'll learn a good deal about programming in general, how to organize larger and larger projects, and all the math you need to make a game. All of that stuff transfers 95% to any other 'curly brace' language -- C++, C, Obj-C, Java, etc.

 

If you're really concerned about long-term platform support, then I'd be more wary of XNA. If you look at what Microsoft is pushing now, its all native code, not C# or XNA. WinPhone8 supports native apps, WinRT (Surface on ARM) supports native apps, Win8 (of course) supports native apps. They'll run managed (and even XNA) apps too, but Microsoft's focus right now is on native code.

 

C++ is still a difficult language to cut your teeth on, but C++11 makes it a lot nicer than it used to be. That said, compiler support from Microsoft is only partial now, and it'll probably be another year before the support level is good, and furthermore, it'll probably be another year before most of the "must-have" C++ textbooks have been updated to reflect C++11.

 

I'd say that your best bet now, if you're already comfortable and productive with C# and XNA (use 4.0), is to continue with those for another 9-12 months, and wait for the next version of Visual C++, and for the books to catch up to the standard. I believe you'll find that to be the best use of your learning time. You shouldn't worry about trying to learn the latest, greatest thing so much, because those things (whether they're APIs, languages, or general practices) tend to come and go. The things that last will come up no matter what tools you're using -- sure, the exact details of those things change over time, but the general "shape" of them stays the same.

Share this post


Link to post
Share on other sites

XNA is not dead, I still currently use it and it'll be in development for more years, they still use it for indie games on 360, and most arcade games. It won't die any time soon.

Share this post


Link to post
Share on other sites

XNA is not dead, I still currently use it and it'll be in development for more years [...]

Just to clarify, development on XNA itself has stopped, but development with XNA is still active. It still has a good community built up around it and many people are actively developing games using XNA. This community will continue to exist for at least a few more years. Edited by Cornstalks

Share this post


Link to post
Share on other sites

I had something similar happen to me. I spent more than half a year learning Directx9 with the fixed function pipeline, blissfully unaware of how deprecated it actually was, and I wasted my time trying to memorize the graphic syntax. However, it wasn't entirely wasted. I learned a lot about how a graphics pipeline works and how games are made :3 I had a much easier time learning directx11 then I did the first time.

Edited by Solid_Spy

Share this post


Link to post
Share on other sites

The only thing not worth doing is asking if it's worth using still.

 

It's not dead yet, doesn't seem like it will be in the near future and would be plenty useful for a long time even if it did stop getting updates.

 

If you want to learn it, go learn it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this