Quote:Original post by Shashwat
XNA is based on DirectX.
So, what is advantage of DirectX over OpenGL? Even it is not productive like XNA.
Look, threads regarding "DX vs OpenGL" arguments can be found everywhere on the internet. They're mostly a waste of time. If you got lot of time to waste feel free to google and loose yourself into it for days.
They both are interfaces to talk to a video card, the same video card.. so they basically do the same things.
So it doesn't really matter what they do and how they do it, the difference is what YOU are going to do with those. They're tools to do a job.
Whatever tool you will learn, it'll make it easier for you to learn another one after that.
XNA is based on DX9. The reasons DX9 is still in use are:
- Most game companies have lots of existing libraries in C++. Going XNA would mean to give up all this backbone infrastructure. This is, usually a no no
- DX9 is the base for XBOX 360 development. XNA can be used to develop on the XBOX but performances are pretty bad at the moment, and, anyway, the same reason as above would apply
IMO, the "problem" with DX9 and OpenGL is that they have too much "past" and offer too many ways to do the same things... most of the time you'll find easy OpenGL tutorials using immediate mode but then you'll realise that's not what you need to make things go fast.
Same goes with DX9 that offers both a FFP and a shader-based pipeline.
XNA (and DX10/11) are modern takes on the problem and they offer ONE GOOD shader based approach to rendering that will give you good result and point you in the right direction regarding modern real time 3D application developing.
Anyhow, the worst thing you can do is to waste your time thinking "what is best?"... there is no best, just pick one and do stuff.