Almost a year ago I started building a website called DirectTutorial.com to teach myself DirectX once and for all. I had started to learn it about three or four times before, but it was just too damn hard to learn (I was in high school at the time and was very new to C++ and programming).
The first time was way back in the days of DirectX 5.0. I can’t really say much about it, because I really don’t know much about it. I got as far as creating a black screen, gave up and went back to Visual Basic for a year or so.
Some time later, after I had practiced a little more C++, I decided to jump into DirectX again. This time was a little more successful, and I managed to produce a small 2D space-shooter called Gates of Orion. It never was completed to full playability, but the basic graphics engine was there.
Part of the problem was that while I knew enough C++ to understand my own code an hour after writing it, I still wasn’t good enough to implement any serious object-orientation, and so the program flopped under its own weight and horrible architecture. (I laugh when I look at the source code now, it was basically one .cpp file packed with about fifty huge functions and a bunch of global variables at the top).
I gave up again for the time (I was using DirectX 7.0) and when I came back to make a third attempt DirectX 9.0c had come out (I don’t really understand why they didn’t just call it DirectX 9.3).
Anyhow, this third attempt was a little bit more successful. I happened to stumble upon a decent tutorial called DrunkenHyena that got me over enough bumps to draw a simple triangle in 3D, but I still had trouble getting things to work (it literally took me weeks to finally figure out that my camera was pointing backwards!)
I decided that the best way to really learn DirectX would be to build my own documentation of it. This worked for me as long as there were Drunken Hyena articles to go by, but once they ran out, I was kinda stuck. So I decided to make a tutorial of my own and see if it just flowed into the rest of DirectX (I had actually worded it like that in my mind).
Suprisingly though, it worked, and worked well. I discovered that if it was taught correctly, DirectX wasn’t actually difficult at all. All the information was there, but it was never just in one spot and in the correct order so that someone like me could come along and learn it. I constantly had to shift between the documentation and about five other tutorials, each of which had little bits of information which, when put together, worked fine. The problem was going and finding it all.
Eventually (almost a year ago) I took the tutorials I had written, and with a little bit of editing, posted them online at DirectTutorial.com. I added some new ones as I learned more and more, but eventually stopped again.
No, it wasn’t because it was too hard. I’m over that now. There were other, less relevant reasons for stopping.
Or shall I say, pausing.
Because I’ve started up again now. I made a resolution at the end of last year to pick up DirectTutorial again. I decided some time ago that I would change the name to DirectXTutorial.com, upgrade it to ASP.NET, add a few more gadgets and clean up the code.
It’s quite a New Years resolution, considering that it’s possibly the only New Years resolution I’ve ever followed through with. 
Just recently though, I’ve decided (on a whim, actually), that I will try my hand at blogging. I don’t know if I have what it takes to continue posting until the end of time, but for the next few months I’ll post articles on various things having to do with game programming.
I’m calling the blog Codename Ramblog. “Ramblog” is a combination of ramble and blog. I invented the word, and then I Googled it and found it had already been invented by 529 other people. Rats. Anyway, it is “Codename” because I can’t think of anything else to call it right now, and calling the blog Codename Ramblog has more of a ring to it than “Name: Ramblog”.
But keep checking back, or get the RSS. I’m not sure how often I’ll be posting, so I won’t promise any specific interval just now.
See you soon.