Ms. Pac Man, Auto Repair, and Client Communications
This came my way last week, and kinda blew my mind. On his eponymous site, Don Hodges has looked into some of the most famous programming bugs in early gaming history – the Donkey Kong kill screen, Pac Man’s level 256 split screen, Dig Dug’s instant-death screen, and others. Although the solutions are very technical (we’re talking assembly code here), the level of detail and understanding of the algorithms is what really impressed me.

I guess I’ve always been fascinated by this sort of early arcade programming. In 1980, these developers were solving problems that had never really existed before. There’s a certain special brilliance that you had to have back then, yet the solutions are fairly understandable.
Think about it like automobile repair. Most weekend mechanics will tell you that it’s actually possible to grasp the solutions to problems in cars made through the 60s; there were fewer parts, and they did small, logical tasks. Same with the code for Ms. Pac Man – given a modicum of knowledge about assembly code, you can understand what each line does. But open up the hood of a 2008 vehicle, and you’ll find that the systems have been abstracted such that one won’t make sense without the others. Likewise for today’s programs – you can stare at the byte-level code for Grand Theft Auto IV for hours, and you’re not gonna make any sense of it. But when you abstract it a little, you can begin to understand.
Perhaps, then, this is a metaphor than can help programmers communicate with the less technically-minded. Sometimes, you need to explain yourself in pseudocode; in the simplest level of abstraction. This is almost always the rule when talking to clients! It’s easy, at a bar or at a meeting, to identify the people who have the knowledge to actually understand the technical details. It’s just as easy to confuse the remainder. Success in the tech space of the internet counts on programming innovation, sure, but also rests strongly on being able to explain what the hell you’re talking about.
0 comments