Benchmark Before You Optimize, Dammit!


Donald Knuth said it best:

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

Every programmer knows this in their head, but getting that through to their heart can be surprisingly difficult. When it comes to applying lessons like the one above, it’s easy to find yourself in the middle of a conflict between doing what you know you should do and doing what you want to do. Continue reading

Shooting Game Algorithm Maniacs


It seems I’m not the only one who suggests designing games enemy-first.

Recently, while reading some game dev books, I ran across a bit of advice with sentiments similar to one of my previous blog posts. The text in question is from “Shooting Game Algorithm Maniacs”, a Japanese game dev book focussing on SHMUPS (shoot-em-ups).

For folks who may not be able to read Japanese, here is my translation of the advice from the conclusion of Chapter 2 (called “Stage 2″ in the book.): Continue reading

Spritesheets, Spritesheets Everywhere

Here’s something fun to do if you’re ever feeling REALLY bored. Try searching for something on Google. Then, on the result page, use Chrome (or some other browser if you must) and inspect the images used on the page. You may be surprised to find that most of the images on the Google results page are contained in a single png like the one above.

That’s right! Where game developers may use sprite sheets to optimize their rendering, Google uses sprite sheets to optimize their results page. Sprite sheets on the web? What’s that all about?
Continue reading

Postmortem for Legend of the Rune Lords

Note: This a re-post from my old blog, originally posted June 2010
On June 11, 2010, I released my first indie game, Legend of the Rune Lords, on Xbox Live Indie Games. LotRL is a short role-playing game featuring many of the trappings of full RPGs: stat-driven combat, leveling, multiple characters, and a cutscene-driven story. While hardly a great game, I think that it stands as a good example of what a determined (or at least stubborn) individual can accomplish in their spare time even while crunching at their day job.
Continue reading

Nice Logos, Epic

Almost every detail in a game has a development story behind it.  Even those company logo movies that play before the title screen.  People who’ve played Gears of War 3 may have noticed that Epic Games and Microsoft Game Studios deferred their usual logo movies for custom movies themed to match the game.  Using custom logos is certainly a nice creative touch, but there may be other, more technical, reasons why Gears of War 3’s startup movies ended up looking the way the do.  Now, bear in mind that I don’t any particular first-hand knowledge of Gear of War 3’s development so this is just me theorizing as an outside observer.
Continue reading

What Makes a Good Bug Report?

They might not realize it due to my surly programmer attitude, but I love my testers.  I especially love a good bug report.  If a bug report is good, it can direct me almost exactly to the code I need to fix.  Some of the best reports allow me to diagnose a problem before I even look at the code.  With the right information about when, and under what conditions, a bug occurs, I can figure out solutions without so much as turning on my PC.  Even when I don’t know why a bug is happening, I can, at the very least, direct the bug report to the person most likely to know what’s going on.  Good bug reports can save incredible amounts of development time and, ultimately, lead to a better game.
Continue reading