I've worked with the Microsoft Foundation Classes(MFC) and now I want to enter the world of game development.But should I start with directX or XNA? I'm hesitant towards DirectX because I feel it would be quite a laborious thing to work with. I'd really appreciate some expert advice on this, Thankyou.
closed as not constructive by Byte56♦, John McDonald, Anko, Jimmy, Tetrad♦ Apr 19 '13 at 21:48
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.
Do you want to learn high level or lower level? Do you want to make games or do you want to learn new tech? PS: XNA is dead but it lives in updates through MonoGame; check them out. It's well worth your time.
XNA and MonoGame are a framework. They allow you to devleop your game with structured utilities and pre-defined classes. This allows you to begin just writing game logic and forget about all the laborour stuff like handling your window, setting up a game loop, timing, effective sprite batch rendering, rendering basic models, setting up an effect framework and the like. Many other quick and easy modular libraries are available as well. You can't say the same for DirectX. If you have to choose between two, and you just want to make a GAME; pick this option if you are comfortable with C# or willing to learn. You'll develop faster without having to worry about everything "under the hood". MonoGame also gives cross compatibility fairly easily which is a bonus.
DirectX is an API to interface with GPUs and Windows. We use it to make games but it's a lot lower level than that; it provides no easy rendering pipeline, resource manager, or matrix transformation utilities. No game loop. If you want to learn it all from the ground up ... this or OpenGL is pretty much where it's at. You can't get much lower than this without stepping into some pretty insane territory. If you're already adept at C++ this might be an option - but if that is the case C# shouldn't be hard to pick up. DirectX is for those who want to roll their own stuff.
The other case where one might want to use DirectX is if they need extremely, highly optimized rendering techniques they need to implement themselves or they need to write a VERY intensive game that C# and XNA fail to complete. If you have to ask this question, though it's probably not the case.