Game design, game programming and more

Credit where credit is due

Credit where credit is due I feel fortunate to have been part of Blizzard Entertainment when it started, now over thirty years ago. I got to work with amazing people; make games players loved; and learn a lot about design, programming, and business along the way. Some of those lessons were hard-earned, as my blog […]

HandmadeCon 2015 interview transcript

In 2015 I participated in HandmadeCon, a convention created and run by programming guru Casey Muratori about game development. The event included five speakers: Tommy Refenes, Mike Acton, Jonathan Blow, Ron Gilbert, and myself. The event was hosted at the Seattle Public Library, with Casey interviewing each of us in turn about the technology behind […]

Stay Awhile and Listen

Developing games is a full-time occupation, so it is no surprise that I’ve had less time for blogging as I’ve started creating a new game. After a two-year stint helping other folks publish their games I’m back to coding and game design full-time and having a wonderful time. But for those of you who have […]

Uh-oh: was the company site hacked?

Anyone who runs a web site knows that they’re constantly under attack. You only have to look at your log files to know that hackers running site-scanners are constantly hitting your servers looking for unpatched vulnerabilities to exploit. One of the servers I wrote for Guild Wars 1 — named AcctHttpSrv — was designed to […]

The StarCraft path-finding hack

Game-unit path-finding is something that most players never notice until it doesn’t work quite right, and then that minor issue becomes a rage-inducing, end-of-the-world problem. During the development of StarCraft there were times when path-finding just didn’t work at all. As the development of StarCraft dragged on it seemed like it would never be done: […]

Whose bug is this anyway?!?

At a certain point in every programmer’s career we each find a bug that seems impossible because the code is right, dammit! So it must be the operating system, the tools or the computer that’s causing the problem. Right?!? Today’s story is about some of those bugs I’ve discovered in my career. This bug is […]

The making of Warcraft part 3

The first-ever multiplayer game of Warcraft was a crushing victory, an abject defeat, and a tie, all at once. Wait, how is that possible? Well, therein lies a tale. This tale grew organically during the writing to include game AI, the economics of the game business, fog of war and more. Read on if you […]

StarCraft: Orcs in space go down in flames

In my previous article about StarCraft I talked about why we rebooted the project and changed it from a follow-on to Warcraft — derisively called “Orcs in space” in 1996 — into the award-winning game that we were finally able to deliver after two more years of hardship. But one noteworthy source of inspiration didn’t […]

Avoiding game crashes related to linked lists

In this post I’m going to talk about linked lists, a seemingly trivial subject that many programmers — even good ones — seem to get terribly wrong! Then I’m going to share techniques (with source code) to make your game engine code simpler, faster, more memory efficient and more reliable. Wow! This post is part […]

Tough times on the road to Starcraft

I’ve been writing about the early development of Warcraft, but a recent blog post I read prompted me to start scribbling furiously, and the result is this three-part, twenty-plus page article about the development of StarCraft, along with my thoughts about writing more reliable game code. I’ll be posting the latter parts over the next […]