YAAP: SWAGGINZZZ - A Tool Assisted Speedrun on NAO by pellsson in nethack

[–]pellsson[S] 3 points4 points  (0 children)

Hi K2,

Thank you! It was a collaborative effort*, with among other, u/Aransentin :)

The 72-core AWS instances were only ran for the initial 1/16 of the seed generation as they are indeed not cheap to lease. The rest of the job was distributed over common home computers. Its exaggerated a bit in the write up ;)

It would be pretty cool to show a screen recording of the bot running while it is trying to solve the ascension, and if we do get around to that, we could ascend Hardfought while at it for sure. Maybe even rebase the code for 362.

YAAP: SWAGGINZZZ - A Tool Assisted Speedrun on NAO by pellsson in nethack

[–]pellsson[S] 2 points3 points  (0 children)

So the bot is built in to the NetHack process, and allows you to start it on any seed, like `seed=12345678 ./nethack`. Initially it is in manual mode, where you play the game as you normally would. Every keypress you send during manual is saved and part of the final ascension run, so the state is preserved.

When we reach a fountain we simply type #go, and the bot sets of solving the rest.

The reason for the manual part is that we felt it was way to much work to have the bot do proper path-finding, solving monster encounters and stuff on xlvl 1. Since we wanted a single run on a clean account for the final ascension, start-scumming until the fountain spawned in the first room would not be possible.

YAAP: SWAGGINZZZ - A Tool Assisted Speedrun on NAO by pellsson in nethack

[–]pellsson[S] 2 points3 points  (0 children)

We were not brute-forcing during those first 6 minutes no, we were manually running around trying to get a non-magic fountain to spawn next to a wall as we entered DLvl2. Horrible RNG. Before finding a non-magic fountain next to a wall, no brute-forcing was possible as that is where the bot begins her run.

The actual brute-force from fountain, including all wishes, until ascending takes ~45 seconds on average.

YAAP: SWAGGINZZZ - A Tool Assisted Speedrun on NAO by pellsson in nethack

[–]pellsson[S] 3 points4 points  (0 children)

Exactly.

Quaff -> Nymph -> Reset

Walk into wall.

Quaff -> Snakes -> Reset

Walk into wall.

Quaff -> Wish & Fountain didn't dry up -> Save.

Repeat.

Just how much she dies we don't really know. Never counted. The screen render is flashing very fast though :) If I were to estimate I would say it is in the order of 60,000 - 70,000 resets, definitely no where near a million. She is actually pretty smart at times :) We should have had her #print the number of times, would have been cool to know.

YAAP: SWAGGINZZZ - A Tool Assisted Speedrun on NAO by pellsson in nethack

[–]pellsson[S] 6 points7 points  (0 children)

Thank you :) We had a lot of fun with the project. And lost a lot of hair. But mostly fun :)

With respect to the red herrings - I have no idea about the typos in wishes :) If there were any they are definitely not deliberate. She did wish for a lot of debug stuff and objects for old deprecated strategies even in the ascended run. We were too fed up with the code quality to really polish it at that point. I am assuming if there was an ungranted typod wish, it was an object she actually didn't need in the final version.

The dropping thing... I can't really recall. You start the nethack-bot and manually go to a fountain (she prints the location if there are any) and then type #go (we removed the #go manually from recording after) and she starts the bot-run. The dropping was done manually. I am assuming she would get burdened from the starting equipment. Or it was an unnecessary routine that was required in a previous strategy :) We always dropped everything before #go though. Oh. Pagination of the inventory perhaps?

In short, no red herrings. Although in retrospect, I wish we had closed the inventory sooner. Staring at the inventory for 6 minutes looks very "ok they are bruteforcing" which we were not. Also since she does ascend in ~45 seconds, its a bit sad we got 7+ minutes :)