I have been game programming since start, while learning programming I did lots of small applications like hello world, then small features application for example Small Calculator which could do just addition, subtraction, multiplication and division, then I did a small socket programming application which could transmit file from one machine to the other. But my first ever full application was actually game. I developed that game using DirectX and Visual Basic 6, and this was in 2000. Game was very simple 2D Game with music, animation. Game was about Spaceship which is flying in space and lots of alien spaceships are heading towards spaceship and trying to destroy spaceship. Player have to save spaceship from aliens by using various weapons. Game was very simple but difficult to develop. I am not a person who can do good graphics, so I took help of few friends and few online tutorials get my graphics done. I read a lot about DirectX from MSDN site and developed game. It took me about 3 months to develop a very simple game.
Later on I moved to using VC++ and DirectX and found it to be damn difficult compared to Visual Basic 6, but I did notice lot of performance improvement with VC++ which is obvious. In 2002 when Managed DirectX was announced, I started using Managed DirectX with .NET Framework, and developed small games, and it was pretty easy compared to VB 6.
In 2004 Microsoft Announced XNA and in 2006 they released CTP of XNA. I started using XNA in 2007, and I was really amazed at what XNA could do and how easy it became for gamers to write games on multiple platforms without much code changes. Currently XNA can target Windows, Xbox 360, Windows Phone 7 and Zune.
I am going to write a blog post on game concepts and using XNA to develop game, I will cover 2D and 3D part both.