Live data from Hacker News

NetHack beaten in 7 minutes 15 seconds real time

pellsson.github.io

81–90 of 92 posts

Re: NetHack beaten in 7 minutes 15 seconds real time

#81

I’ve been trying to reach the amulet for 30 years.

Well, now you know what to do:

    Find non-magic fountain next to a wall (manually)
    90 wishes. Eyes to phase-jump through walls. 60 c!oGL. ~+100 MB
    Genocide LcPUn (due to lazy bot code ;))
    Tele Vlad, phase-jump tower, get candelabrum.
    h-strats to provoke Rodney (who is not allowed to return by RNG)
    Wait for quest
    Level-tele to jumping distance from quest leader (save realtime over landing next to).
    Go to end
    Land jumping distance from square
    Phase-jump to priest
    c!oGL to top (Mysterious force not allowed. Lovely.)
    Hallu for RNG manip without walls (just press space)
    Force portals relatively close on Earth, Air, Fire.
    Ascend.

Re: NetHack beaten in 7 minutes 15 seconds real time

#82
post #74
post #34

Earlier quoted context omitted.

That's why my submission https://news.ycombinator.com/item?id=18843584 called it a "Tool Assisted Speedrun on NetHack with RNG Exploitation". :-) I'm not sure about the exact terminology. Is an ascension by a bot (like https://www.youtube.com/watch?v=unCQHAbGsAA ) also as a TAS? Although you are right that the group that tried to do a TAS for NetHack (not sure what's their status) chose the MS-DOS port of 3.4.3 for e…

To be fair, most TASes have RNG exploitation, just of a different sort (they do things that cause the RNG to be polled so that they can get rid of "bad results" and force a desired result).

That's exactly what this bot does once the gamestate is known; it starts by repeatedly walking the character into a wall to consume bad RNG values so the good ones can be used for fountain wishes. The additional wrinkles are that (i) there are 2^32 possible initial gamestates given their start-of-game choices, and the server is remote, so they needed to figure out a way to determine the initial gamestate to enable RNG exploitation, and (ii) they had to express the bot logic in a more generic way that could handle (almost?) any initial state, rather than hardcoding for a specific initial state.

Re: NetHack beaten in 7 minutes 15 seconds real time

#83
post #13
post #4

Had to look up this abbreviation: c!oGL = cursed potion of gain level https://nethackwiki.com/wiki/Abbreviations

For non-NetHack players, this is a joke that results in a useful strategy. The potion of gain level normally causes you to get an experience level. But if the potion is cursed, the universe instead misinterprets the magical effect and you gain a dungeon level instead of an experience level—that is, "You rise up, through the ceiling". This is generally very disappointing because an opportunity for your character to be…

Thanks for the write up, that makes parts of the article make more sense.

Re: NetHack beaten in 7 minutes 15 seconds real time

#85
post #50

I’ve been trying to reach the amulet for 30 years.

Keep going, bro. It took me 12 years. I try to explain my friends how fiendishly hard NetHack is but they always say stuff like 'Well I've won in Dark Souls so I know about hard games'. It's not even in the same league imho.

Here's how I describe it:

It's like dark souls if there were way more monsters and items with interactions that can one shot you if you aren't knowledgeable and careful, but you don't know what they do right away, and when you die you have to start from the beginning with a totally different level layout, starting loadout and pickup RNG, AND you forget what all the items do.

Re: NetHack beaten in 7 minutes 15 seconds real time

#86

Earlier quoted context omitted.

The problem with the other classes is that their starting equipment is less random, so it's more difficult to figure out which seed you are on. You would have to include more of the generated map in the database to figure out which seed you are on. And of course this would all be shot to hell if Nethack went to a 64 bit seed.

yeah, i wonder how much of the game information you would have to include to make it unique. that being said, wouldn't map information be sufficient for the remainder of the classes? so using starting equipment is really just an optimization available for this class?

The problem with using the map is that you can't see most of it when you first load the game. So you have to play more (and build up more state) before you get to a completely unique solution. Being able to use the starting equipment makes it much simpler.

Re: NetHack beaten in 7 minutes 15 seconds real time

#87
> Turns out, every function in NetHack seems to find a way to call random(), causing the RNG state to drift.

I recently stumbled across the concept of splittable RNGs, which works around this very problem.

Once seeded, you can either "hand in" the generator to get a random number, or you can split it into two (or more) new generators that themselves can be handed in or split.

From a single seed generator, you would split off multiple generators for things like map generation and monster behavior, which then split their generators in turn to generate the level or move monsters.

As a consequence, if you change some monster behavior that uses the RNG, that does not cause the level generation to change, because that was split off earlier and is thus on an independent chain of random numbers.

Re: NetHack beaten in 7 minutes 15 seconds real time

#88

> Turns out, every function in NetHack seems to find a way to call random(), causing the RNG state to drift. I recently stumbled across the concept of splittable RNGs , which works around this very problem. Once seeded, you can either "hand in" the generator to get a random number, or you can split it into two (or more) new generators that themselves can be handed in or split. From a single seed generator, you would…

Splitting the PRNG would provide resistance to tampering by walking into walls and the like, but it would also reduce the avalanche effect of code changes, hiding inaccurate probability distributions (e.g. if a polymorph potion turns you into a yeti the next spawned monster is likely to have low hit points) that would cease to change drastically as PRNG calls are added or removed anywhere.

Re: NetHack beaten in 7 minutes 15 seconds real time

#89

I’ve been trying to reach the amulet for 30 years.

I know folks who consider NetHack to be a Unix tutorial. It teaches hjkl to acclimatize one to vi. And people who win the game are those who have read the source (or, these days, the wiki) enough to grok the game. And once you grok the source enough to win, you might even find a bug. And since you've alienated your meatbag "friends" and replaced them with the NetHack fandom, you'll be encouraged to report & patch the bugs.

But yeah... I've seen some fake amulets, but I've never gotten the real one...

Post reply on HN