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.
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.
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 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.
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.