Since XNA isn't being improved, what do I use?

Started by
9 comments, last by Jason Z 10 years, 7 months ago

HI, I read that XNA is going away or at least not being improved. What do I use then? I don't want to learn XNA now. I don't want to do any mono...x... platform.

Thanks.

Advertisement

Language/framework, during the learning stage, is mostly irrelevant for game programming. The principles, concepts, and math behind why you do this or that is what's really important to get a good understanding of. It doesn't matter what language/framework you learn those principles in, they translate to any language and are the practically the same in any language/framework.

Xna is a really great framework to learn those principles because the framework does a lot of the heavy lifting (of the non-game stuff) for you behind the scenes so you are free to concentrate on learning the principles of the `what and why` of game programming.

So I would encourage you not to simply throw Xna away just for that. It is (and will remain for a long time) a great learning tool and a tremendously efficient prototyping tool. You would be hard pressed to find another framework where you can go from zero to demo as quickly as Xna.

It is important to note: XNA is not a language. It is a framework. And it is not going away... it is just not being enhanced. It is still perfectly viable to use XNA to develop your games in.

However if you do not understand C# (the language that you use to make XNA go) then you wouldn't understand XNA anyway.

You don't mention any goals or anything really.

I moved from XNA to Unity because Unity gives me an engine that I don't have to monkey with as I am not interested in programming engines, and I can also use C# to develop with, which is my primary language.

For more on my wargaming title check out my dev blog at http://baelsoubliette.wordpress.com/

For performance intensive games, Microsoft is pushing Visual Studio 3D Starter Kit [http://channel9.msdn.com/posts/Visual-Studio-3D-StarterKit] and DirectX Tool Kit [http://directxtk.codeplex.com/], along with XInput for gamepads, XACT3 for audio and Direct2D or WPF for GUI. Altogether nearly all the functionality of XNA is replicated (and more in some areas).

For less performance intensive games they're recommending C#/WPF or JavaScript/Canvas.

If you wanna stick with C# you could take a shot at SharpDX. Its Toolkit library looks similar to the XNA framework.

For performance intensive games, Microsoft is pushing Visual Studio 3D Starter Kit [http://channel9.msdn.com/posts/Visual-Studio-3D-StarterKit] and DirectX Tool Kit [http://directxtk.codeplex.com/], along with XInput for gamepads, XACT3 for audio and Direct2D or WPF for GUI. Altogether nearly all the functionality of XNA is replicated (and more in some areas).

For less performance intensive games they're recommending C#/WPF or JavaScript/Canvas.

WPF is still alive? I did not know that. Also, I thought most Canvas HTML5 stuff wasn't there yet. Again, I am wrong. Thanks for all the information.

I would just stay with XNA as long as it fills your needs and lets you achieve your goals.
You can always switch then, if the situation would occur

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

Consider another point of view: When XNA was being updated, if you wanted to upgrade your app to use the latest version, you would typically have to spend a while porting your existing code, possibly recreating your project with a newer version of visual studio (VS2008 for XNA 3, VS2010 for XNA 4), etc.

Now that XNA isn't being updated, you can use it without having to make the (sometimes painful) choice of whether to upgrade to the next version and re-learn the tweaked parts of the API.

This is even more important for the people who write and use 3rd party libraries which are based off of a specific version of XNA. It used to be that you had to either wait for the library authors to update their libraries to the latest version of XNA or do it yourself (if you were that brave or desperate). Now that XNA is not receiving any updates, the changes to each library can be more focused on feature improvements instead of wasting a week or two updating the XNA compatibility of the library.
That's a positive approach :)

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

Yes, I second/third/etc the advice to just use XNA. The fact that it's not being improved doesn't mean that it suddenly stops working, or that you can't use it for any reason. It's still a great platform to learn on, on the skills you pick up there will be easily transferrable should you ever decide to move on from it.

Remember that an API is just an API; the core concepts underlying them all are very much the same, and you'll still be loading textures, filling vertex buffers, issuing draw calls, doing matrix operations, etc irrespective of whether you use XNA, D3D, OpenGL or whatever. It's just the way you do them that's different, but once you've learned one those differences are quite straightforward to pick up - you'll already have the hard part over and done with.

So with that in mind it makes sense to start with one that's designed around making it easy to learn with, and XNA is great for that.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

This topic is closed to new replies.

Advertisement