Alexei Pepers on Nethack
Alexei gave a talk in a previous year about making roguelikes more accessible to the blind. This year she talked about things she had found in the Nethack code while reading it and modifying it for her project.
Nethack had a Y2K bug! It had code that only made years in the form 19xx.
strkitten
as a cute name for a function that is like strcat
but only adds one character.
mungspaces
comes from the MIT Model Railroad Club's word for "Mash Until No Good" (or "Mung Until No Good" in its recurisve form.)
Comments that explain not just the code, but also the design thinking:
An i18n-like technique that lists body part names in corresponding arrays. Then whenever you need to describe an action like "a trap closes on your foot", you can do so no matter what the player (or monster) is currently shaped like, just by referring to the correct offset in the array:
Nethack's world is an ASCII grid, so it's useful to use ASCII diagrams to describe how the play should work. Here's an example on boomerang motion (which would be a lot harder to describe in other ways). Another was how the ball-and-chain move.
Code for cases that "can't happen". Improves robustness (what if it does happen) and allows for easy expandability. Example: currently no shield does anything when equipped, but the stub is there for somebody to add one.
Random wisdom interspersed. The below has nothing to do with either game mechanics nor (to our knowledge) design:
Alexei also shared that she's a second-generation Nethack player. Her mom used to play, and pre-Wiki, Alexi could ask her mom for advice instead of the Internet. :)
Arcade
People were encouraged to share their games, or even other people's games, during the party tonight. Here's a Commodore 64 acting as the client for a multiplayer dungeon crawler:
There were a couple terminals logged into a VAX-11 at the Living Computer Museum so that we could play an original version of Rogue. I achieved the second-highest score:
I found playing this surprisingly modern in some ways (online help!), primitive in other ways (no periods at the end of combat messages?), and very frustrating in others. When you are prompted to select an item, you can get an inventory list, by type. But you have to close this list and then enter the letter of the object you want, instead of just hitting that letter while the inventory list is up. I also missed all the Nethack tricks for object identification.
Other notes from today
Britta Gustafson took much better notes than I did on the talks, and she photographed them on Twitter:
https://twitter.com/brittagus/status/1048652633320243201
https://twitter.com/brittagus/status/1048654604257247232
https://twitter.com/brittagus/status/1048726876158480384
https://twitter.com/brittagus/status/1048729424969887744
https://twitter.com/brittagus/status/1048731839131611138