Microsoft laid a milestone in the field of gaming and its development. It is now easy for beginners and indie developers to develop games for Windows, Xbox, and Windows Phone 7. All this is possible due to XNA Game Studio. It was a good market hit and many people admired it. It is like a graphic engine and it has much of the built-in support that a game requires.
Stepping into Indie development is now very easy and it was never so enjoyable and efficient before. Anyone having some experience in programming can program a game on this platform. You do not need to get into too many details of game theory to make a game worth playing. If you have experience of C++ then just give some time to C# and you can program in XNA Game Studio. Someone familiar with Java can directly step into the development of games in C# XNA. C# is the same as Java with some more features. Anyone can learn such features quite easily by just looking at the syntax.
C# and DirectX is the base of XNA. DirectX is like an abstraction over many core concepts. Few features of DirectX include Direct 3D, Direct Input, Direct Sound, Direct MIDI, and Direct Play. Direct 3D is the counterpart of OpenGL i.e. a graphics engine to display graphics in 3D on the raster. Raster is any display like monitor, LCD, or plasma. Direct Input deals with taking input from different devices like keyboard, mouse, joystick, wheels, and gamepads. Direct Sound deals with sound manipulation. Direct MIDI takes care of everything related to music. Direct Play maps network features for us. DirectX is truly a software development kit. This kit has libraries and classes, which have built-in ready-to-use functions.
XNA is even more abstract over DirectX because it provides even more classes and built-in functions. Apart from that, XNA has a Math engine and supports many math operations which are the heart of 3D game programming. XNA also has collision detection without which every game is incomplete. XNA has made the life of a programmer a lot easier.
An important feature is content processors. Content is everything that we use in a game like bitmap images, 3D models, audio, video, music, fonts, and textures. Without XNA if you sit and try to import these things in a game and use them, you have to do a lot of work. That work is tiring and makes life difficult. The default content processors of XNA are powerful and supportive. We can just add an asset (Content) to the game library and XNA do the rest of the task of processing that thing. XNA also supports many file formats..Net framework is necessary for working in XNA. Currently, the latest relapse of XNA is XNA Game Studio 4.0 and it only works in Microsoft Visual Studio 2010. There are many books and helping material available to start with Indie game development on this platform. Plenty of online tutorials and sample codes of different games are available. On XNA creators club's official website, much more information is available. Joining XNA Creators club will grant access to subscribe for Xbox publishing. Then you can sell and display you games for Xbox in market. It is the case for Windows Phone 7 as well. Therefore, it is easy to step in, just need passion and struggle to produce something valuable and best of luck for you gaming adventures.