Hacker News new | ask | show | jobs
by da-holland 667 days ago
semi-related, but also helps me to believe that this is the case (and not only because the different regional servers were called "shards" in Ultima Online):

in the "Game Coding Complete, Fourth Edition" book by two programmers who worked on Ultima and Sims (and other Origin/EA games of the time) back in the day, they share some war stories of programming, and if memory serves there is a portion where they talk about the original design, and the realization that lead to the sharding and how the login and shard system worked in the game.

Also, unrelated, a really neat war story about a guy who put in debug code to generate certain audio cues while a game was running to catch a bug.

The book all in all was a fun read if only for all these stories, and generally remember good coding guidelines as well but it is using older C++ that may not stand up to modern critique.

[0]: https://www.amazon.com/dp/1133776574

3 comments

Ha re: audio cues for debugging… your pc speaker is truly an underused tool when debugging something infrequent… for example our system processes a lot of xml data and usually it’s fine but for our test suite hearing beeps and knowing there are server side issues immediately is a great thing
Absolutely!

I ended up digging the book out and finding the passage; hopefully it's ok to share because it's an amazing story and helps illustrate what makes that book so great to me:

"The best caveman debugging solution I ever saw was one that used the PC speaker. Herman was a programmer who worked on Ultima V through Ultima IX, and one of his talents was perfect pitch. He could tell you the difference between a B and a B flat and get it right every time. He used this to his advantage when he was searching for the nastiest crasher bugs of them all - they didn't even allow the debugger window to pop up. He wrote a special checker program that output specific tones through the PC speaker and peppered the code with these checks. If you walked into his office while his spiced-up version of the game was running, it sounded a little like raw modem noise, until the game crashed. Because the PC speaker wasn't dependent on the CPU, it would remain emitting the tone of his last check. "Hmm...that's a D," he would say, and zero in on the line of code that caused the crash."

- Game Coding Complete, Fourth Edition

Cubicles aren't enough. Developers need their own sound-proof offices.
heh, like the Malloc Geiger Counter - https://news.ycombinator.com/item?id=24303832

Gamedev people came up with creative devices, like using pedal to debug-break into the game.

Real programmers just hold an AM radio next to the motherboard.

At guru level, of course, you no longer need the radio.

Of course, true gurus can smell use after free.
Of course, there's an emacs command to do that.
I bought a copy of Game Coding Complete a long time ago, but couldn't remember which edition and your comment made me curious. Turns out I have the first edition from 2003.

Old gamedev books really have some wild stuff.