10 ms·
First NetHack bot ascension
- th0br0 12y agoReading through the comments, I realized that people even do speedruns in Nethack... impressive.
- pdpi 12y agoWhy is it surprising? (And I do not at all mean that in a snarky tone. I've been lurking in the nethack community for so long that it seems perfectly natural to me)
- kbenson 12y agoProbably because to the the person familiar enough with NetHack to have played it but never immersed themselves in the community, ascension seems hard. A speedrun is one thing, doing it on a game many can't even win is another thing entirely.
- pmontra 12y agoI add to the point: doing it on a game many can't even make half way through.
- nkuttler 12y agoMy first nethack game? I was locked in a room without door and was killed by a falling rock. I don't even know why I ever played another game :-) And yes, there was a big gap until the next game. As a beginner that's all you ever do, die, die, die.
- klibertp 12y agoSimilar experience with ADOM, it even has a special location which becomes reachable only after the game killed your 100th hero. Got to this point in a few days back then, I wish there was something good for 1000th death, that was when I started to know what I'm doing :)
- chongli 12y agoTo be fair, the second half of the game is so easy it's almost trivial. The hard part of the game is getting half-way.
- pdpi 12y agoAscension _is_ hard. Or at least it still seems to me, seeing as I've personally never ascended :).
- jsheard 12y agoThe speedruns most people are familiar with are the product of someone playing a meticulously planned route over and over again until the execution is almost perfect. With the more popular games it reaches a point where they are barely even playing the game anymore, instead running on auto-pilot and hoping to make the least mistakes and get the most favorable RNG with minor things like enemy AI patterns. Speedrunning a game with roguelike randomness is a completely different beast, requiring actual mastery of the game as it was intended to be played.
- mklim 12y ago> requiring actual mastery of the game as it was intended to be played I agree here, but I just want to emphasize that Any% speedruns (runs where you purposely exploit glitches or flaws with the game engine to trigger the final cutscene as fast as possible) still take incredible amounts of skill. More skill than playing the game as it was intended to be played, in a lot of cases. The current Ocarina of Time route involves exploiting several glitches that require pressing the correct button combination on a specific frame (N64 games run at 20fps), jumping at just the pixel perfect angle to slide through a model's corner/collision tracking, etc. Much more difficult stuff than beating the game straight through. Super Monkey Ball 2 (Gamecube game) speedruns require pulling off maneuvers trickier than anything the levels were explicitly designed for, the difficulty of which is hard to overstate. That game is hard. Speedrunning a game with true RNG everywhere like Nethack is definitely a beast of its own since you can't memorize routes, but even runs with completely static routes are incredibly difficult to pull off.
- jsheard 12y agoAbsolutely, I didn't mean to imply that rote speedrunning doesn't require skill. It's just a different kind of skill, and a lot of patience.
- aidenn0 12y agoPeople do blindfolded runs of Mike Tyson's Punch Out! Which is also impressive.
- jsheard 12y agoBlindfolded Zelda: OOT is a thing too, they did it live at AGDQ this year. https://www.youtube.com/watch?v=JhPA_TpkzkA https://www.youtube.com/watch?v=JhPA_TpkzkA
- bhaak 12y agoPeople do ascend blindfolded characters in NetHack. Such an ascension is aptly named "Zen Ascension". http://nethackwiki.com/wiki/Zen#Notable_Ascensions http://nethackwiki.com/wiki/Zen#Notable_Ascensions
- bkcooper 12y agoGood stuff. There's a bot with several wins in Dungeon Crawl Stone Soup, another roguelike. The combinations it has won are pretty rote, but it's still very impressive, particularly since I don't think it's even capable of knowing that much about the game (it uses Lua handles to pick up information about the state and I believe there's a fair chunk of the game that isn't exposed that way.)
- jedberg 12y agoAt the risk of losing my nerd card, I've never played Nethack. I read the reddit thread, and while it was in English, it made not a lick of sense to me. Now I know how non-engineers feel sometimes. :) BTW, can someone tell me why this is such an amazing accomplishment? I know Nethack is very old, so is this a case of a complex problem space or just no one has tried before?
- aidenn0 12y agoThere are a couple of things. First of all, just synchronizing the I/O is hard (there are good comments in the reddit thread there). Combat in non-enclosed spaces is hard do to ranged attacks line-of-sight, etc. I'm slightly surprised it has taken this long to do with pudding-farming, as that lets you get plenty of really powerful items (as well as other benefits from sacrificing the corpses)[1]. There are a few parts of the game that are super hard for a bot even with the equipment of pudding farming, but I would have thought a few thousand runs would be enough to luck through them with simpler rules. 1: Puddings are creatures which can split in two when you hit them, and each new pudding will count as a corpse (which you can sacrifice to your deity for benefits) as well as having items. I don't recall all the details, but some of the rare drops from black puddings are really powerful. The idea is you take a really crummy weapon, so you don't accidentally kill the pudding and then hit it over and over again to get lots of treasure. In this run it looks like the bot used a skeleton key as a weapon. The main deterrent for a non-bot player doing it is that it is really boring (There's a quote somewhere from the devs that is roughly "we implemented a penalty for pudding farming, it's called 'pudding farming'" Obviously the other deterrent is the prestige of beating the game without pudding farming, and that does apply to bots too.
- schoen 12y agoAfter watching the ttyrec of the bot ascension, I was surprised to see that the bot farmed on a sink, not an altar, and hence used the puddings only for item drops and not for sacrifices. That makes me a lot more optimistic that the bot is close to being able to ascend without farming, especially since I believe its character already had multiple amulets of life saving and a bag of holding even before starting to farm.
- nkuttler 12y agoThat is truly impressive. I remember what a colossal achievement my first ascension felt like. Nethack is such a complex game, but the most important skill is probably patience and planning single moves, something a bot can be perfect or very good at. Now I feel like playing again.
- ansible 12y agoThe bot can also do things that would bore a human player to tears, such as automatically switching between items as the need arises.
- jashkenas 12y agoFolks, do yourself a favor, and check out the bot's source: https://github.com/krajj7/BotHack/blob/master/src/bothack/bots/mainbot.clj https://github.com/krajj7/BotHack/blob/master/src/bothack/bo... It's really, really neat. Even to those of us who know little or nothing about the game, from the nested Englishy descriptors piled up into short conditions for things-the-bot-might-want-to-do, the basic strategies can be discerned...
- pavel_lishin 12y ago... and then there's some things that probably only make sense if you're very familiar with Nethack: (def desired-shirt (ordered-set "T-shirt" "Hawaiian shirt"))
- jballanc 12y agoThis one's actually not that hard to explain. Shirts can be worn under your armor, and these are the only two kinds of shirts. Normally, a shirt adds nothing to your armor class, but it can be enchanted (up to +7 safely), so it's nice to have one if you can find one. The problem with the Hawaiian shirt is that shop keepers will assume you're a tourist, and charge you extra.
- pavel_lishin 12y ago> The problem with the Hawaiian shirt is that shop keepers will assume you're a tourist, and charge you extra. Absolutely cannot tell if you're fucking with me, or if this is an actual game mechanic - and if so, why this shirt would be desirable.
- jubalfh 12y agoIt's usually not a first choice, but the tourist starts the game wearing it.
- TheCraiggers 12y ago> Absolutely cannot tell if you're fucking with me, or if this is an actual game mechanic Welcome to the world of nethack! The amount of special case situations that have been programmed into this game over the last few decades are truly amazing. (Mostly because it somehow still works.) I still remember the first time I ran into a kitchen sink.
- jere 12y agoIf you find this interesting, take note that people were writing bots to beat Rogue over 30 years ago: http://en.wikipedia.org/wiki/Rogue_(video_game)#Automated_play http://en.wikipedia.org/wiki/Rogue_(video_game)#Automated_pl...
- otakucode 12y agoThe roguelike Angband has had a bot built into it for at least 20 years... I don't know that it has ever actually beat the game, though. I used to run it as a screensaver on, I think, Windows 95. Was interesting to watch, but it wasn't a terribly clever bot.
- riffraff 12y ago> the bot has already managed to reach Rodney without farming and can get to the Castle and beyond fairly reliably, maybe 1 in 10 runs or so so, the bot is also a better player than me.
- statico 12y agoYou can watch players (and bots) play NetHack in real time: telnet nethack.alt.org ...then hit "w" to watch games that are in progress. You might need to resize your window, and some players might be using a different character set than your terminal. If you want to start playing, telnet there, create an account, hit "p" to play a game and then "?" to read basic help. http://nethack.alt.org/ http://nethack.alt.org/ will keep logs of your game as well as other stats. This post also mentions previous bot attempts such as the Tactical Amulet Extraction Bot (TAEB), which is also worth looking at: http://taeb.github.io/ http://taeb.github.io/ Warning, SPOILERS: If you're okay with spoiling the game to some extent (e.g., solutions to common puzzles, which corpses are safe to eat, strategies), check out the NetHackWiki: http://nethackwiki.com/wiki/Main_Page http://nethackwiki.com/wiki/Main_Page
- mkramlich 12y agoThe beauty/terror of NetHack is that even if you play with the wiki/spoilers at hand it's still a difficult game to master and win, even survive. YASD and the RNG kill most people, and often.
- deleted 12y ago[deleted]
- mjgoins 12y agoIt's worth pointing out that no one ever finishes (ascends) a game of Nethack without looking at the spoilers, so they're really not spoilers, they're more like the instruction manual. It is definitely more fun to try playing the game for several hours without reading the spoilers, but you're not going to figure out stuff like the Invocation Ritual without reading the spoilers.
- schoen 12y agoThere is at least one self-described unspoiled ascension, in 2010: https://groups.google.com/forum/#!topic/rec.games.roguelike.nethack/wci4E96iKc4 https://groups.google.com/forum/#!topic/rec.games.roguelike.... This did involve use of wizard mode (not for the unspoiled ascension itself, but beforehand for learning stuff). People often ask how someone would learn how to perform the Invocation without spoilers. One intended answer by the DevTeam is to pay the Oracle for a series of major consultations, one of which (somewhat elliptically) explains the Invocation. The Oracle consultations aren't considered spoilers if you pay for them in-game.
- guelo 12y agoOne of the difficulties for a human playing Nethack is remembering all the potions and amulets and wands and scrolls and rings and monsters and their effects and many, many, many combinations. In a way a bot should have an easier time since it has basically unlimited memory.
- samspot 12y agoTrue, also most player deaths are due to obvious mistakes - YASD (Yet Another Stupid Death), mistakes that the bot will only ever make once and then be programmed to avoid.
- schoen 12y agoYeah, I guess a major advantage for a bot is being totally disciplined and never impatient. "No, I won't read that yet; yes, I will #untrap three times; no, I won't go down these stairs with the cockatrice corpse; no, I won't eat this giant while satiated" and so on. It can be hard for human players to have absolute discipline about not doing actions that they know could theoretically cause instant death. Also, the bot can safely walk along the edge of lava without falling in due to a typo. :-)
- chongli 12y agoYes and bots are capable of using techniques that are far too onerous for humans to pull off such as retracing your own steps perfectly whenever the need to backtrack arises. Humans invariably make mistakes while doing this and wander into traps and die.
- mkramlich 12y agoI'm the creator of a Rogue-like game (Dead By Zombie) and love NetHack, consider it one of the masterpieces of game design I've tried to study and learn from. Lessons baked into it both in terms of game design and software. Has a lot of bang per buck, in terms of fun/value per LOC, and per square inch of screen real estate. If anybody gets introduced to Rogue-like UI for the first time because of this article, and likes it, I also recommend checking out Dwarf Fortress. Similar but very very different in ways that people tend to either love or hate.
- rpowers 12y agoI'm one of those people who are just now taking a look at this genre. Can't believe how cool this is.
- samfoo 12y agoReally amazing achievement, kudos to duke-nh! For those of you who are looking to get into nethack, or play it all the time... (shameless plug) I've been working on a project for some years that helps ease some of the monotony of playing. https://github.com/samfoo/noobhack https://github.com/samfoo/noobhack For example, it keeps track of where you see shops, so you can come back, maps out levels and what you've seen on them, and auto-price identifies things you pick up. There's a rudimentary plugin system so you can write your own extensions (more coming soon).
- fjarlq 12y agoVideo of the winning game: https://www.youtube.com/watch?v=unCQHAbGsAA https://www.youtube.com/watch?v=unCQHAbGsAA The author's list of milestones illustrates the key components of this achievement, as well as some limitations: https://github.com/krajj7/BotHack#milestones-reached https://github.com/krajj7/BotHack#milestones-reached Awesome work, Jan Krajicek!