Tuesday was the anniversary of my first real post on this blog. For the most part, I’ve tried to keep
my content here on the technical side of things, but, what the hell, this is a good time to
reflect on a year of blogging – what went well, what went poorly, and where I’m going
What I Meant to Accomplish (And What I actually Accomplished…)
I restarted this blog about a year ago to document my attempt at learning DirectX 11, using
Frank Luna’s Introduction to 3D
Game Programming with Direct3D 11.0. In my day job, I mostly code ASP.NET and Winforms
applications using C#, so I decided to convert the C++ examples from Mr.Luna’s book into
C#, using SlimDX as my managed DirectX
wrapper. SlimDX appeared to me to be slightly more mature than its main competitor,
SharpDX, as its documentation was a little more
complete, and it had been out in the wild a little bit longer, so there was a bit more
third-party information (StackOverflow, other blogs, GameDev.net forum postings, etc.) on
it. I suppose I could have also gone with XNA, although Microsoft appears to have abandoned
any new development on it (Last release
9/16/2010…), and I felt like SlimDX’s simple wrapper around the DirectX library
would be easier to translate than shoehorning into the XNA model, not to mention wrassling with
the XNA Content Pipeline.
My initial goal was to work through the book, converting each of the examples presented and
then blogging about the process. Except for the chapters on Compute Shaders and Quaternions
(which I have yet to tackle, mostly because the examples are not terribly interesting), I
completed that goal by the middle of November of last year. From there, I started
incorporating elements from Carl Granberg’s Programming an RTS Game with Direct3D into the terrain
rendering code that Luna’s book presented, as well as dabbling in integrating Direct2D and
SpriteTextRenderer to handle 2D
After that, my intention was to start working my way through Ian Millington’s book,
Game Physics Engine Development. This
is about where I ran out of steam. Between the hassle of trying to reconcile the code
examples from this book, which were based on OpenGL and somewhat less self-contained than what I
had been working on previously, various issues in my personal and work life, and the general
malaise of an especially cold, dark winter here in New England, my impetus to work on my side
projects faded away spectacularly. If any of you followed this regularly, I’m sure
you’ve noticed that it’s been almost four months since I’ve posted anything
new, and before that there was another dry spell of more than a month.
With the arrival of summer and a move that reduces both the strain on my finances and the
number of hours per day I spend driving back and forth to work considerably, I’ve found
that my mood has improved by leaps and bounds, and I have the extra energy to expend on coding
outside of work again, finally. Right now, I’ve got a number of new things I’m
working through, and a number of ideas in the pipeline that should be making their way up here in
the near future.
In addition to learning things myself, another of my goals was to share what I learned with
anyone else out there interested in graphics and game programming. Putting this content up
here was the first step, but the internet is littered with interesting information buried and
inaccessible because the GoogleBots either can’t find it or deem it unimportant. I
don’t pretend to know anything about SEO, and I’m not sure its something I really
want to get involved in – everything I’ve read seems to indicate that you either need
to get lucky and go viral, or else spend a bunch of time or money doing vaguely unethical things,
like spamming links or hiring a shady outfit in the Ukraine or China to do it for you.
So, my limited efforts at promotion concentrated on GameDev.net, Facebook, Twitter, and
- GameDev.net was probably the most effective. The main source of views came from
cross-posting each post I made here on my developer journal there (http://www.gamedev.net/blog/1703-richards-software-ramblings/).
A couple of these posts got picked up by the admins and made the front page, under the Featured
Developer Journals section, which resulted in a pretty big boost in views. I also added
links to here on my forum signature, which I don’t believe amounted to much. To
some extent, I also trolled the Beginner and DirectX forums, suggesting that anybody that was having a problem I had
covered check out the relevant post. I hope that this was somewhat helpful, and not just
- Facebook was probably not worth bothering with… Generally my friends on
Facebook are split between people I knew in high school, family members, my fraternity brothers
from college, and other Dartmouth people who trend towards being law students, med students,
teachers, or I-bankers. It’s not exactly a fertile demographic for tutorials on 3D
graphics programming. Now, if I was writing Top-X lists of Marvel characters, I might do
better there, but that’s the nature of Facebook…
- Twitter is also kind of a non-starter. Given that I have a grand total of 11
followers, and I don’t really believe in the whole idea of Twitter, that’s probably
- HackerNews was very hit or miss. Most of the time I would post a link, and it would
languish on the back pages forever. Once in a while, however, something would get some
bizarre traction with one of the Hacker News aggregators (usually Feedly), and I’d see a
big spike in views for a post. I have no idea what the rhyme or reason for this is; my
best guess is that I happened to post at a particularly dead time, and my link stayed near the
top of the newest links page for longer than normal.
However, the vast majority of people who made it to my site came from Google searches.
I’m not sure how, but my site has come to rank pretty highly for certain Google
searches. Some examples, as of today:
Oddly enough, the biggest growth in traffic came after I ran out of steam and stopped
posting. I wonder if this was a missed opportunity to continue growing.
Kind of an interesting split in the most popular pages on the site. Mostly, this is my
more interesting and more advanced content, although the two most basic examples on the site are
also represented. Also, my tutorial index page is doing pretty well.
Making money isn’t really my goal with this site, which is a good thing, since it
certainly has not been a mint. Fortunately, maintaining the site really doesn’t cost
me anything: I use Blogger for hosting, which is free, and my GoDaddy registration only costs $10
for the year.
Hopefully, the banner ads I’ve got on the site are not that obnoxious. Probably
most of you who would see this use AdBlock anyway. They have more than doubled my monetary
investment in the site over the past year – as of today, I’ve earned just over $25
from AdSense. At this rate, I’ll hit the minimum payout threshold in another three
If I were to take a wild guess at the number of hours I’ve spent coding and writing up
these posts over the last year, and then calculating an hourly rate based on my AdSense revenue,
I’m probably earning about a nickel an hour… Even mowing grass or stacking firewood
would be orders of magnitude more lucrative, but whatever – I’ve arguably learned
more about programming and computer science in a year of porting C++ to C# and fighting with
shaders than I did during my courses for my Comp Sci minor. Even better, kicking around the
dusty corners of the .NET library to match up with C++ constructs has broadened my knowledge of
what is available, and spending so much time in Visual Studio coding and debugging has taught me
all sorts of tricks that I can use in the day job too.
In a perfect world, I’d continue to churn out high-quality, interesting content on a
regular basis, and this site would become a go-to resource for SlimDX and general C# game
programming, similar to the LazyFoo or RasterTek tutorial series. I’ll
settle for just getting back to a more consistent posting schedule, though. There are so
many interesting topics to consider, and both coding and then explaining what I’ve done is
the best way I have found so far to cement my understanding of algorithms.
As I mentioned, I have a bunch of stuff in the pipeline that I’m hoping to finish and
write up in the near future, so hopefully there will be some new content here shortly.
I’ve been toying with the idea of writing a book, since SlimDX does not appear to be
very well covered in print (At present, Amazon only lists one title).
Anyway, thanks for reading over the past year, and I hope that this site has been
useful. Here’s to an even better second year of http://www.richardssoftware.net/!