Roguelike Celebration: Nethack Source, Fun and Games

in #roguelikecel6 years ago (edited)

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.

20181006_151625.jpg

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:

20181006_152539.jpg

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:

20181006_152909.jpg

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.

20181006_153158.jpg

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:

20181006_153525_HDR.jpg

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:

20181006_163127.jpg

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:

20181006_211516.jpg

20181006_215925.jpg

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

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.029
BTC 61830.18
ETH 2457.48
USDT 1.00
SBD 2.54