Learning XNA for Game Development. Is it worth It?

It seems that most of the popular games in the world are developed using C++. But Microsoft's game platform, XNA Studio is based on programming in C# and I didn't find any popular game which was developed using XNA. Also there are fewer Ebooks you find on XNA and even the google search for a problem won't give you much help.

Does people doesn't use XNA as a gaming platform? Is it worth learning XNA for game development or should I consider some other platform?


Learn how to develop games . The languages and platforms are just that, languages and platforms. If you understand what you need to do to make a game, you can port it to any platform with ease.

Also, if a game is on the Xbox Live Arcade, then it has been developed with XNA. XBLA is a great platform to push out indie games, so for a beginner with (what I assume) is a small team, I'd recommend it.


I have a theory - admittedly I can't back it up with data or experience - that C# and XNA make a great "stepping stone" to C++ and DirectX.

Good C# code is fairly similar in structure to good C++ code. And good XNA graphics code is similar in operation to good Direct3D code.

There are considerably fewer ways to shoot yourself in the foot and write bad code in C#/XNA. If you start with C#, you won't have to spend time learning and then unlearning bad habits that C++ makes possible. And you won't get stuck on as many nasty low-level problems while you're learning.

Once you have learned how to code the "right" way, and how game/graphics programming works, then it should be fairly simple to then wield the raw power that C++ and DirectX provide.


Also, to refute your charge that XNA has little reference material: that is simply untrue. There is a huge XNA community online, there's excellent reference material on MSDN, and plenty of tutorials around. And the first-party samples on App Hub are second-to-none.

There are also plenty of famous XNA games out there. To be sure, they aren't AAA games - but you wouldn't choose "C++ and DirectX" as a platform for making one of those these days anyway. You'd choose the Unreal engine or the Source engine or similar.


Don't learn XNA. Learn C#, using XNA as a stepping stone. It's right now the most promising high level language for game development. It can be used in Unity (all platforms but Linux and WP7), XNA (all Microsoft platforms), Silverlight (Windows 8, web and WP7, possibly Xbox soon), PlayStation Suite (PS3, Vita, Xperia) and there's Mono for all the rest. Few languages offer so many options right now, without requiring the effort of learning C++.

XNA can serve as a good reference for the common issues to be found in game development, taking care of nasty stuff like low level graphics programming or common asset management. It is also easily integrated with scripting languages (IronPython, Lua), which is very common in modern games.

链接地址: http://www.djcxy.com/p/95486.html

上一篇: 有人能给我任何关于学习游戏引擎OGRE的建议吗?

下一篇: 学习XNA游戏开发。 这值得么?