I’ve been working in the I.T. field professionally for over a decade, but my desire has always been to work in the graphics part of the industry, mainly games. My first exposure to graphics programming was circa 1998, armed with a few books that attempted to covered the DirectX 6 API. Overtime I begin to dabble all over the place, learning what I could about game programming in general, picking up bits and pieces here and there and absorbing whatever I could find.
Of course, as with most hobby programmers, I had my stints with OpenGL and SDL, but I always seemed to gravitate back to DirectX.
I suppose a few reasons for my love affair with DirectX was mainly due to marketing of course, the occasional big update and for DirectX just having a complete kit for someone wanting to make games i.e. audio, networking, etc, not to mention, there were tons of books at that time which covered the API.
Now after all these years I’ve come to a point where I desire to specialize, the rigours of the hobby gaming scene has brought me to the realization that my passion is truly in graphics programming. Sure, most of us who embark in this arena want to make games, who doesn’t? That in itself was the main reason I started way back when. Truth be told, the games I’ve developed although small in comparison to most has helped me reach my conclusion validating my passion. Programming each piece of the puzzle and getting enough exposure on a small-scale helped solidify what I did not want to code, professionally. Don’t get me wrong, I’m not naïve enough to think I had come near to scratching the surface on what takes place with AAA teams but I know enough to realize programming for audio, networking, A.I., etc were not going to be my first choices.
Over the last few years, I’ve developed the majority of my tech demos and small games using DirectX 9 but had never really thought about truly exploring the depths of the API, digging deep and truly mastering its contents. I’d more or less grab a book, print out a few articles and tutorials in order to glean the necessary information to satisfy whatever project I was working on. It has been only recently that I have begun to understand one should be proficient in at least one area, this may give you a fighting chance at breaking into this industry. Personally, I prefer not to attempt to give it a go as a “generalist,” I think I have that position down cold after a decade.
So now I find myself starting over as it were, as if I climbed into a time machine and dialed up 1998, here we go again, but this time I know what I want … plan in hand.
Venturing forward, I have a few goals in mind such as developing a robust engine/framework. An engine that will allow for me to concentrate on the development of simulations and small game demos. The most immediate goal is of course to become a power user of the DirectX API. Upon achieving this status, I feel that later on I will position myself with the luxury of focusing solely on industry best practices, patterns and algorithms, all while having the solid knowledge of one API under my belt.
Sure, the argument could be made that OpenGL would be the way to go as DirectX is limiting me to one platform. Honestly, I’m not too much worried about my decision at this point, it’s just an API. At this stage it is all about focus and motivation, what I like and what I feels comfortable and familiar.
My initial research will revolve around the June 2010 DirectX SDK, version 9.29.1962 of which was published on 6/7/2010. I plan on going through and reverse engineering each tutorial, researching further whatever points of interest the tutorial covers when applicable. After the completion of each tutorial, I’ll write up a technical document in the form of a postmortem, hopefully the information provided could prove useful to someone else.

Pursuing the DirectX 10 API is only the first rung in a series of several steps towards my journey into specializing in graphics programming.
DirectX Developer Center http://msdn.microsoft.com/en-us/directx/
DirectX SDK June Kit http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812

