News for hackers. Stuff that matters.
Re:First NetHack bot ascension by jedberg on Tuesday February 03, 2015 @12:59PM (#8991910)
At 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?

Re:First NetHack bot ascension by cturner on Tuesday February 03, 2015 @01:15PM (#8992022)
It's incredibly complicated. That's probably less of a big thing now than it was in the 80s or 90s. In the 80s or 90s it was just amazing that a game could be that intricate.

The sigil-based graphics are part of what make the complexity possible. And - the dev team have coded in all manner of combinations of things, many of which get you killed in plausible/amusing/annoying/complicated ways.

There's a culture of players looking at the source code while they play. The source is really antiquated C.

If you decide to have a go, I'd recommend printing out a copy of the manual, avoiding the spoilers for the first couple of dozen games at least. Just try to learn your way around the dungeon just from that manual, and experience the complexity and sense of mystery.

It's not a particularly 'good' game - grindy. A vogue at the moment in roguelikes is for games with as little complexity as possible. For example, I've spent far more time studying the C code to this game than I have playing it: http://trogrd.tumblr.com/post/61949503427/zoo

Re:First NetHack bot ascension by riffraff on Tuesday February 03, 2015 @02:19PM (#8992587)
> The sigil-based graphics are part of what make the complexity possible

I don't think that is relevant, I have played the GUI version for many years, and it's perfectly usable.

Re:First NetHack bot ascension by darkmighty on Tuesday February 03, 2015 @07:46PM (#8994631)
This is the reason those games can be so complex. Want to make a character fly 10m? Just move his character ('@') 10 grid steps. Want to make a camera? A char 'c' will do it. It's awesome that this allows you to easily program whatever you wish but you still get a visual representation of what's happening.
Re:First NetHack bot ascension by WildUtah on Wednesday February 04, 2015 @02:08AM (#8995691)
An Expansive Camera in Nethack is the character '(', not a letter 'c'.

A letter 'c' is a cockatrice or a pyrolisk; those are both quite dangerous so I suggest you learn to recognize them for your own good.

Re:First NetHack bot ascension by mentat on Tuesday February 03, 2015 @03:10PM (#8992975)
The intended point was probably that they enabled the complexity in the interface pre-GUI.
Re:First NetHack bot ascension by aidenn0 on Tuesday February 03, 2015 @01:12PM (#8992008)
There 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.

Re:First NetHack bot ascension by schoen on Wednesday February 04, 2015 @05:16PM (#9000372)
After 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.

Re:First NetHack bot ascension by klibertp on Tuesday February 03, 2015 @01:55PM (#8992387)
I spent quite a lot of time playing ADOM, which is a roguelike like Nethack, and I can attest to enormous complexity and devilish difficulty level of such games. They are so huge - in terms of items, locations, NPC, quests and everything else - that you really can't even imagine it without a couple of weeks of playing with them; it then takes years to complete the game for yourself, and if that's not enough there are challenge games (not using certain items, never eating, finishing game naked, stuff like that).

The essence of roguelikes is that of Diablo and other similar games: you're walking around killing things, picking up items and advancing levels. In most roguelikes, however, your freedom of movement, details of the environment, number of choices to make are on a whole another level. Why have 3 (or 5) PC classes, when you can have 20 or 22, each really unique in strengths and weaknesses, utilizing different tactics and strategies? And PC race matters too, so the number of available combinations is ~(12 times 22) before you even started playing!

One in-game example of how detailed and complex roguelikes tend to be: some levels are flooded and you can't get past water without knowing how to swim... Wait, no. You of course can go into the water, no matter the swimming skill. Without swimming skill - and with swimming not trained very high - you'll lose some HP due to drowning. You can reduce the chance of drowning by leaving your heavy equipment on the ground. On the other hand, going into the water in this shiny metal armor will make it rust. After a while. Note that there are metals that do not rust, these are safe. Also, the scrolls and magic books, if not wrapped in a waterproof blanket, become unusable after some time in the water. You also obviously don't want to try lightning based magic when standing in the water. But hey, you can just build a bridge! If you have a skill for it, a hatchet and some trees nearby. Or, and this is my favourite way, you can just freeze the water with (most of) ice based spells. But don't do this when being chased by a fire using enemy: your ice bridge can easily melt. Also, keep an eye on how much your equipment weights: bridges made of ice are not very solid. You could also get a pickaxe and try to dig your way around the water, but this takes time, so maybe a wand of digging would be better...

And that's the number of options available in only one of hundreds of different and interesting situation the game puts you in. It's an experience as close to classic table-top RPG as possible without a human as a dungeon master. It also makes you forever unimpressed with "interactive environments" and "complicated plots" of modern games.

Re:First NetHack bot ascension by Retra on Tuesday February 03, 2015 @04:36PM (#8993557)
>It also makes you forever unimpressed with "interactive environments" and "complicated plots" of modern games.

Dwarf Fortress ruined modern gaming for me. I keep thinking "Why do they keep making new games when they could just make the old ones bigger and better?"

People love it when their games evolve over time. A new, small feature every week will keep people feeling refreshed and invested in the game.

Re:First NetHack bot ascension by digi_owl on Tuesday February 03, 2015 @04:43PM (#8993605)
Arenanet seems to be trying this with Guild Wars 2. Not sure about how well it is working out though.
Re:First NetHack bot ascension by Twirrim on Tuesday February 03, 2015 @01:15PM (#8992030)
Nethack is fiendish, and you only have a single life. The dungeon is procedurally generated. There are techniques to ascending but it's hard even for people to do, let alone programming a bot.

You get potions, scrolls, weapons etc but have no clue what they are until you use them (some scrolls will help you identify what other things are in advance). Nothing about them will give you any clue (scrolls have names like "AFEWA AWEBRPO", potions are just colours etc.) To survive you need to use them though. You need to drink, but the potion might be one of weakness, poison, blindness, confusion etc. You need to eat regularly, and food is scarce, but it also might poison you. A ring of slow digestion is helpful there, but until you use an identify scroll on a ring you won't know what it is. It could end up being a ring of attract monster, for example.

Re:First NetHack bot ascension by samspot on Tuesday February 03, 2015 @01:19PM (#8992064)
There are lots of advanced techniques for identifying things. If you have a pink potion you can throw it at a monster, and based on the monster's reaction you might now know what pink potions are. Most of this stuff would be hard to learn on your own though.
Re:First NetHack bot ascension by mklim on Tuesday February 03, 2015 @03:06PM (#8992936)
You can also identify rings by dropping them down wells—different rings fall down (or don't fall down) the wells in different ways—and identify wands by writing on the ground with them. Definitely hard to pick up any of that on your own, though.
Re:First NetHack bot ascension by schoen on Tuesday February 03, 2015 @06:55PM (#8994407)
I think you mean "sinks" instead of "wells" (there's at least one behavior in NetHack that's inspired by the name of the sink, and they were reputedly included in the game so that NetHack would contain "everything, including the kitchen sink").
Re:First NetHack bot ascension by mklim on Tuesday February 03, 2015 @07:23PM (#8994535)
Good catch, my mistake. Thanks.
Re:First NetHack bot ascension by Natsu on Tuesday February 03, 2015 @09:53PM (#8995065)
You can also GET rings from sinks... if you know how.
Re:First NetHack bot ascension by rspeer on Tuesday February 03, 2015 @04:45PM (#8993620)
I'd like to echo comments made elsewhere that this is a game-AI result so exciting that it deserves to be published.

Various people have used (a version of) Super Mario Bros. as a demonstration of planning AI recently. As a result, we see that people can write planning algorithms, based on imperfect information about the game state, that can complete a straightforward Mario level with some competence, but not up to the level of competence of, say, a typical '80s child.

Ascending in Nethack is an insanely difficult accomplishment that few people ever achieve. The game is much more complex than a Mario level, though perhaps the non-real-time aspect of it allows for more sophisticated planning.

Re:First NetHack bot ascension by tywkeene on Tuesday February 03, 2015 @01:13PM (#8992014)
Nethack is a very complex game, and takes a very long time to understand enough to ascend (beat the game). Think of it like dungeons and dragons on crack, with endless possibilities and variables.

The fact that someone wrote a bot to think on its feet enough to do this, is astonishing.

You should try it out in your free time, check out alt.org, there's a server where you can play and the irc channel #nethack on freenode (I believe) is very helpful and there's a few wikis available.

But beware, it becomes very addictive. The 'one more turn' rule applies heavily here.

Re:First NetHack bot ascension by schoen on Tuesday February 03, 2015 @02:32PM (#8992702)
Probably D&D with a human dungeon master would allow more possible actions, in the sense that NetHack only allows (a)pply, (C)all, (d)rop, (e)at, (E)ngrave, (f)ire, (P)ut on, (q)uaff, (Q)uiver, (r)ead, (t)hrow, (w)ield, (W)ear, (z)ap, #dip, #invoke, #name, #offer, and #rub actions with specific items in your main inventory (and most of those actions won't be applicable to most items most of the time). A human DM might allow many more verbs, like stacking things on top of one another, repairing items in a nonmagical way, building new devices or modifying the functionality of existing devices in a nonmagical way, pouring a liquid onto a specific object or dungeon feature (including one that can't be picked up), and a lot more.

I agree that the bot ascension is an astonishing achievement, and one I didn't expect to see for many years!

Re:First NetHack bot ascension by digi_owl on Tuesday February 03, 2015 @04:46PM (#8993628)
Then again, human DMs can also be outwitted by careful specification of actions. Like how someone managed to win the original Tomb of Horrors.
Re:First NetHack bot ascension by steveklabnik on Wednesday February 04, 2015 @02:30AM (#8995727)
Do you have a link with some backstory on this? I'd be interested.
Re:First NetHack bot ascension by digi_owl on Thursday February 05, 2015 @11:01AM (#9003873)
Re:First NetHack bot ascension by steveklabnik on Thursday February 05, 2015 @08:02PM (#9007210)
Thanks for the follow-up.
Re:First NetHack bot ascension by alasdair_ on Wednesday February 04, 2015 @12:34AM (#8995487)
Was that module ever won by the first groups to encounter it?
Re:First NetHack bot ascension by digi_owl on Thursday February 05, 2015 @11:01AM (#9003875)
I have no idea.
Re:First NetHack bot ascension by saulrh on Tuesday February 03, 2015 @01:31PM (#8992190)
There are two major things that can make AI difficult: having too many options to choose from, and having difficulty figuring out which options are better. NetHack is nasty in both of these dimensions.

• Many options are available:

- Many different actions available at any given time (move, attack with a weapon, Zap using a wand, Quaff a potion, Wear a different piece of armor or equipment, Wield a different weapon, Read a scroll, Spellcasting, etc)

- Many different options available within each action (place to move, spot to place a fireball or lightning bolt, place to teleport to (!!), which piece of armor or equipment to use)

As a very rough estimate from someone who hasn't played NetHack much, I'd guess that a mid-level character might have 10^4 or so options immediately available to them at any given time, though many of these are combinatorial results of having thirty different spells that can be targeted on any of the hundred or so visible tiles. The branching factor for Chess is about 10^1.5, and Go is around 10^2.

• Options are difficult to evaluate:

- On an immediate mechanical level: If you want to use teleport, what's the best place to teleport to? If you want to cast Fireball, how do you use it as effectively as possible? If you want to shoot into a group of enemies, where do you aim?

- On a tactical level: Would this monster be more effectively dealt with by spending some energy to cast Fireball, using a charge from your Wand of Magic Missiles, or attacking it in melee and risking taking some damage?

- On a strategic level: Would it be more useful to clean out the rest of this level or immediately go down the stairs? What set of armor and weapons would result in the best chances in melee against the enemies I expect to encounter in the near future? Which of my items should I cast Polymorph on to maximize the chance of receiving a random item that would be useful to me?

- On a mathematical level, NetHack suffers significantly from the horizon problem. That is, many immediate tactical or mechanical decisions have strategic consequences that require an AI to simultaneously consider all of the above problems. You can't just have a mechanical planner, a tactical planner, and a strategic planner; you have to have a unified AI that can realize that it'd be a good idea to not kill that one enemy in the corner because it can kill it and eat it two hours later on its way back up to the surface.

This is an even nastier issue. Even humans can't do this effectively for NetHack. For example, if you look on the NetHack subreddit, one of the current top posts is "Help me make it out of this group of enemies alive!", and everybody who comments has a different idea of what the best solution is.

Re:First NetHack bot ascension by Natsu on Tuesday February 03, 2015 @10:20PM (#8995143)
To be fair, there's not (that) much worry over which armor to use, it's more a matter of knowing what is and isn't enchanted and to what degree. There's a pretty much set kit for each class that you want to work towards.

My neutral human wizards always have either Frostbane or Grayswandir (Magicbane as backup/for MR), robes, silver dragon scale mail, boots of speed, enchanted T-shirt, gloves of dex, etc.

Re:First NetHack bot ascension by WildUtah on Wednesday February 04, 2015 @02:18AM (#8995706)
Frosty and Swandy are a waste for a wizard, especially because you have to #offer mountains of sacrifices to get the skills unlocked. Mbane enchanted is enough of a weapon on its own along with attack spells. And you can get dagger skill up to expert easily.

Those swords barely do any more damage than Mbane even in the hands of combat classes.

Re:First NetHack bot ascension by Natsu on Wednesday February 04, 2015 @02:48PM (#8999215)
I never seem to have that much trouble unlocking them if I've gotten that far.
Re:First NetHack bot ascension by chongli on Wednesday February 04, 2015 @12:22AM (#8995446)
Of course, that's all the stuff you have after the hard part is over. Getting there and surviving the early part of the game is where all the complexity and diversity comes in.