Game design, game programming and more

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 […]

Detect client disconnects using named pipes in C#

TL;DR: Solved – after several failed attempts I discovered how to detect client disconnects when using named pipes in C# — the article below includes relevant code snippets from my CSNamedPipes GitHub project. In my spare time — of which there’s not much since I have four kids — I’ve been helping someone solve a […]

Choosing a game network library

Since I’ve been developing online games since 1991, many folks have asked me to recommend a 3rd-party network library for their game project. Unfortunately, I can’t! At least I can’t recommend one from personal experience because the projects I’ve worked on — Warcraft, Diablo, Starcraft, battle.net and Guild Wars – were all built on proprietary, […]

Writing Server and Network Code for Your Online Game

I spoke this year at the Game Developers Conference (GDC 2012) on “Writing Server and Network Code for Your Online Game”. Since I tend to talk quickly, to say the least, I thought it only fair to post my presentation slides for those who attended but didn’t manage to take notes fast enough. I find […]

Installing firewall exception rules programmatically

Writing installers for applications requires a substantial effort, even when using tools like InstallShield. My challenge for today was to write as little code as possible (because I’m lazy) to configure Windows Firewall exception rules so that the game I’m working on wouldn’t “pop” a dialog box asking the user to configure firewall settings — […]

Using transaction rate-limiting to improve service reliability

I develop and publish multiplayer games for a living, and have discovered some useful solutions for running reliable online services. The one I’m writing about today is how to implement reasonable usage limits so that services are less likely to be abused by hackers. Y’see, hackers find ways to manipulate games by simulating the behavior […]