Sign in with
Sign up | Sign in
Your question

YANI - Bots

Last response: in Video Games
Share
Anonymous
April 25, 2005 11:24:02 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

YANI - NetHack Bots

Whether a NetHack robot is possible comes up every so often
on rgrn.

Someone is currently writing one, too.

My idea is to add a programmable "macro" language.

NetHack players are an ingenious persevering lot.
Otherwise we wouldn't play, much less ascend such a complex,
difficult game.

Even minimal, partial implementations of such a language
would get exploited beyond the writer's wildest dreams.
I'm not kidding. Look what's been done with a paste buffer.

<http://groups.google.gg/groups?q=+%22paste+buffer%22+gr...;

To start with, the language should permit:
- stop & save when it doesn't know what to do next.
(Something at least one of us human players should
do more often.)
- The human player should be able to take over at any time.
- The bot should be able to output simple messages to aid
in following its actions.
- this will help debugging
- can be used for entertainment
- Can be used in "teacher-bots" running on NetHack servers
for newbies (or oldbies) to watch. It would beat the hell
out of TV. (or watching a new player Valk in a 5x13 used
armor shop on Dlvl 4)

What features to add next will be plain - people will be asking
(screaming) for them:
- my never-hit-with-a-wielded-weapon bot needs to check
what's in its hand!
- How can I do my pacifist bot without being able to chat
with my pets or use a stethoscope.
- Pudding farming! Pudding farming!
- Note that others will be silently exploiting possibilities
you never thought of.



- teacher-bots should run until a certain point
- finish mines
- finish sokoban
- finish mines & sokoban
- the quest level
- etc.
Then another bot would start a new game. There would
always be a bot running at low-level for the education
of newbies (& the bot writer).
(Bot playing speed should be adjustable.)

The NetHack community will write bits & pieces of the bot
as time goes by and features become available. Definitive
subroutines will come into common use: "ioay's got the
best bustling-Minetown bot", "Did you see aniy's Fort Ludious
bot on NAO last night?"

Bots could become part of the annual devnull tournament.
- One server would do (lag shouldn't be a problem).
- nice the bots down to the desired load level. (Rewards
efficiency.)
- if the bots are fast enough, break the bot tournament
down into a ladder. first week 1 set of bots, 2nd
week another, third week the winners of the first two
weeks, etc.
- Bots could still stop and wait for the human to take over.
"I guess Asiondopho's bot still doesn't know what to do
with an altar."
- Bots could be penalized based on percentage of human
turns.


I would find watching a bot entertaining. It shouldn't
suffer from the usual human YASD's
- must type fast syndrome
- Victoria's Secret 2005 is on TV
- I didn't notice I as Ill, Weak, Food-Poisoned, Stunned,
confused, hallucinating, blind, burdened, stressed,
strained, overtaxed, overwhelmed, satiated, over water,
over ice, over lava, over my head, bored, etc.

Unusual methods of dying would (eventually) win(?) the day.
Just set the font down to half size & set putty in a corner
of my monitor screen.


Bot-deaths would be almost as agonizing as human player
DYWYPIs. "About to enter the throne room at Ludious &
it didn't watch that red dragon after it froze the moat."

Being able to record & replay the game easily would be a must.
"Why the deity did it do that? I fixed that bug! There should
have been a message there as well."


Once initial development is done, the big problem is testing
& then debugging found problems. Just as the NetHack community
does this for the DevTeam, it could do it for the macro
language write and the bot writers. "Hey Mot, the language
hangs when zapping myself with a wand of speed monster while
wearing speed boots." "Does Exidor know his bot actually
*prayed* when wearing an uncursed amulet of strangulation,
instead of just removing it?" Not that any human player
would do that last one, oh no.


People that really want new features can add them themselves.
New programs/subroutines should be addable on-the-fly.

specialist bots would dominate early. "My new <role> has
a ring of levitation. Time to code up that "levitating
over Elbereth in the dust" routine. Need to add that
to the bot choices and enhance the ai to know when to
make use of it."

"Hey, knights can jump, can't they!" Watching a decent
knight-bot take advantage of #jumping in the early game
would be an education to all of us.


People that dislike certain parts of the game would no
longer have to beg for changes/removal. Just use the
specialist bot for Sokoban/the Castle tune/%$@#*& mazes
in Gehennom.

It would make the game more fun. have bot-assisted
ascensions marked as such, or don't count them at all.
Like Explore mode. The player would still enjoy them
because, unlike explore mode, insta-death would still
lurk around every corner.

A lot of subroutines would be encoding the data in the
spoilers. They're a lot like bot programs already.


With bot programs, NetHack could become a "beer & pretzels"
game as well as "the game that doesn't care if you win."
Watch a bot game to kill 15 minutes instead of killing your
ascendable pacifist because you just woke up/should have
gone to bed a half-hour ago/have a cold. No more waiting
until you're in tip-top shape to enjoy some Nethack.


Jove

More about : yani bots

Anonymous
April 25, 2005 11:24:03 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

Jagnj wrote:
> YANI - NetHack Bots
[merciless snippage]

I'm sure it's a good idea, but it's way above my head, although your
mention of a 'teacherbot' got me thinking.

How about some kind of interactive tutorial mode? If the RNG could be
persuaded somehow to reproduce the exact same dungeon and the exact
same monsters, objects, combat results and everything else for a few
levels when playing in tutorial mode, you could use it to guide a
newbie player through the mechanics of the game: There would be a
print-out and follow set of instructions that walks the character
turn-by-turn through this pre-determined dungeon, showing how to read
the map, what all the various commands do, when to use them, and
perhpas even introduce some of the various stategies that players might
use.

"In this tutorial you start the game in a 3x3 room. You'll notice that
there is a door (plus sign) to the north of your starting position and
another one to the south. Let's go through the north door. Press 'j' on
your keyboard until your @ sign is standing next to the door. Now press
'o'..." and so on.

Just a thought.
Anonymous
April 25, 2005 12:30:29 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

I just want a Sokobot like the Puddbot.
Related resources
Anonymous
April 25, 2005 10:29:56 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

> [ Writing bots ... again ]

Well, I'm still firm in the belief that if there _really_ should be official
support for nethack bots then there should be an interface for them. Much like
tty/Qt ports, make a XML port. Or whatever.
This is so that bot developers can focus on the actual bot development and not
on parsing the output.
And game servers could just remove the XML port if they don't want bots to play
on their server.
Parsing the tty port is possible, but tedious.

Of course, I'm just a turn-coffee-into-code-machine :-)
If you read my code, you will notice that I have hardly any clue about software
design.
So, if someone would stand up as Project Leader/Big Poobah/Royal Asskicker I
will offer the infrastructure for that kind of task:
- Subversion repository
- Mailinglists
- Wiki/CMS
So that the effort of doing something of this scale will not be fragmented.

If you are this (wo)man, step forward now or be silent forever :-)


Greetings,
Benjamin
April 26, 2005 3:55:23 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

Jagnj <Jagnj@Jagnj.invalid> wrote in
news:j8op61hsr6nmggcp1fnmv2k3dhieujdjk0@4ax.com:

> YANI - NetHack Bots

I think a patch to nethack itself that would be necessary (or at least
desirable) for debugging pruposes is logging moves/messages.
Anonymous
April 26, 2005 3:44:22 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

I'd like to see something like this done, and I'd be willing to help
out in anyway I can. There is a program somewhere (I lost the link)
called Rogomatic, or something similar. It was a bot which played
rogue, and won. It used a learning feature, and stored information
about its games to be accessed and referenced in future games. Nethack
is, of course, much more complex than rogue, but a group of dedicated
people should be able to make some progress at least.
Anonymous
April 26, 2005 6:01:26 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

The ultimate bot, imho, would be one that was teachable, ala the
old Electronic Arts games worms. Basically, it would stop each
time it encountered a new situation and wait for your input. If it
then needed no further input (because it encountered subsequent
situations before) it would continue to run until the next new
situation popped up.

Ideally, the current state of the bot could be saved off, and perhaps
even edited later via a properties file that was being built as it
recorded each decision.

AliceA

Get paid to Google: http://netbux.org/?r=56515
Anonymous
April 26, 2005 7:51:54 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

Jagnj wrote:
> YANI - NetHack Bots

Okay, every so often this comes up, so let's sit down and talk about
what you'd need to implement a Nethack bot.

First: There are two options to writing a Nethack bot:

1. A client-server sort of thing where a program parses uses the
information coming from the game and creates its own data structures,
duplicating what Nethack has told it.

2. An addition to the source, which could then use Nethack's data
structures, with additions, to keep track of the game world.

The first approach is more honest, the second is easier but requires
the person writing the bot to keep a solid, black line between what the
bot should know and what he doesn't. I suggested before that the
second would probably be an order of magnitude easier, but the more I
think about it, the less certain I am that has to be the case.

Nethack is a very complicated game, with dozens of special cases that
would certainly elude a learning AI even after hundreds of games, so
Rog-O-Matic's monster learning algorithms might not be appropriate
here. Some, like missile-users, Medusa, and pyrolisks, aren't trivial
for such a program to pick up on. I'd suggest just using a database of
known behavior for the monsters.

Another problem is that Nethack's dungeons aren't as simple as Rogue's.
Most players pick up on Rogue's 3x3 grid quite rapidly, but Nethack
has a more chaotic method of room placement, and furthermore has mine
levels, maze levels, special levels that disobey those rules, the
horror that is Sokoban, and perhaps the toughest problem of all, the
Plane of Water, which invalidates several fundamental assumptions about
the game (it has moving items and traps, and also deformable terrain).
Add in pushable and blocked boulders, trap doors, drawbridges, diggable
areas, and so forth, and it should be obvious that this is not a
trivial problem in automated exploration. (Oh, and don't forget the
Rogue level itself.)

There are many special places that the game will have to recognize,
like the Quest (possibly requiring a special algorithm for each
character class), Ludios, Medusa and Juilbex, the Castle (no down
stairs there), the Wizard's Tower (non-linear dungeon exploration, the
bot has to realize he can't get into the center of those three
Genhennom levels), Vlad's Tower, then searching out the Vibrating
Square and getting the Amulet. Each of those things are probably best
handled by special cases in the code.

Item IDing is a unique problem all its own. Many wands can be ID'd by
engraving, there's always price identification too. Gray stones pose
special problems since just picking up a lodestone is a major problem.

There are some situations in Nethack that don't come up often, but when
they do the game needs to be really careful. Like: when there's a dead
cockatrice on the floor nearby, when hallucinating, when punished, when
an enemy is carrying a known wand of death, when fighting Medusa (once
when I was fighting her she escaped downstairs, then fell through a
hole on the next level -- I shudder to think what a bot would do in
that situation, it could very easily turn out deadly for it), and of
course there's fighting Rodney and the riders.

Hmmm... there's a lot of thought to do here, this isn't meant to be
comprehensive. I'm starting to see this project as definitely
possible, even interesting....

- John H.
Anonymous
April 27, 2005 1:48:46 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

dogscoff@eudoramail.com wrote:
> Jagnj wrote:
>
>>YANI - NetHack Bots
>
> [merciless snippage]
>
> I'm sure it's a good idea, but it's way above my head, although your
> mention of a 'teacherbot' got me thinking.
>
> How about some kind of interactive tutorial mode? If the RNG could be
> persuaded somehow to reproduce the exact same dungeon and the exact
> same monsters, objects, combat results and everything else for a few
> levels when playing in tutorial mode, you could use it to guide a
> newbie player through the mechanics of the game: There would be a
> print-out and follow set of instructions that walks the character
> turn-by-turn through this pre-determined dungeon, showing how to read
> the map, what all the various commands do, when to use them, and
> perhpas even introduce some of the various stategies that players might
> use.
>
> "In this tutorial you start the game in a 3x3 room. You'll notice that
> there is a door (plus sign) to the north of your starting position and
> another one to the south. Let's go through the north door. Press 'j' on
> your keyboard until your @ sign is standing next to the door. Now press
> 'o'..." and so on.
>
> Just a thought.
>

Yes, I know of a game that has this kind of tutorial: CalcRogue.

Its tutorial needs a bit of tweaking, though, it told me to wield a
sword that was cursed when it wasn't supposed to be, then continued on
to tell me to wield a bow while having a sword welded to my hand...

--
____ (__)
/ \ (oo) -Shadow
|Moo. > \/
\____/
Anonymous
April 27, 2005 4:06:02 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

I promise, if I ever get some decent bot-development tools working,
with some sort of sample bot, I'll make them public. This certainly
includes some of what's been talked about, such as allowing the user
to watch the bot's actions and take over control at will. Also stuff
like the ability to set up and save situations in wizmode to try out
various strategies. It shouldn't even be especially hard, but I've
been a bit busy lately. Keep that initial "if" in mind.

On Tue, 26 Apr 2005 10:22:35 -0500, Jove <Jove@Jove.invalid> wrote:

>On Mon, 25 Apr 2005 18:29:56 +0200, Benjamin Schieder <blindcoder@scavenger.homeip.net> wrote:
>
>>> [ Writing bots ... again ]
>>
>>Well, I'm still firm in the belief that if there _really_ should be official
>>support for nethack bots then there should be an interface for them. Much like
>>tty/Qt ports, make a XML port. Or whatever.
>>This is so that bot developers can focus on the actual bot development and not
>>on parsing the output.
>
>Looking at it, the BFMI (Brute Force & Massive Ignorance)
>approach might work. Take snapshot of the screen after
>each keypress input. Record each snapshot in a plain
>text file at first for ease of human analysis.
>
I think, by "parsing", Benjamin means interpreting the text rather
than acquiring it. I suppose XML would be useful mostly as a more
convenient language than English for the game's text messages? At the
moment I can't think of a lot of structure in the maps that would be
hard to parse but useful to have. My guess would be that any parsing
could be done externally; while tricky, an external layer probably
wouldn't be any worse than trying to add a second stream of meaningful
XML output at every point where Nethack tries to print something.

>
>>So, if someone would stand up as Project Leader/Big Poobah/Royal Asskicker I
>>will offer the infrastructure for that kind of task:
>
>Nononono, more like Get Some Minimal Functionality Working
>Then Stand Back & Watch What People Do With It.
>
Well, the approaches might be pretty compatible if the project leader
isn't too possessive. The DevTeam basically does both, except for the
"minimal" part.

>
> Some example c code that compiles on WinXP DJGPP that grabs
>a screen shot & cursor location & allows input back to NetHack
>would be just what I need.
>
This page, which drussell on this newsgroup directed me to, has the
guts of what you want. See also drussell's post. NetHack uses
low-level console output.
http://homepages.tesco.net/~J.deBoynePollard/FGA/captur...

This page deals with consoles in C, although not so much with reading
them. Good for sample calls to Windows Console APIs though.
http://www.adrianxw.dk/SoftwareSite/index.html

Chris
Anonymous
April 27, 2005 10:33:58 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

Chris Maloof wrote:

> This page, which drussell on this newsgroup directed me to, has the
> guts of what you want. See also drussell's post. NetHack uses
> low-level console output.
>
http://homepages.tesco.net/~J.deBoynePollard/FGA/captur...

But it can be done a lot more simply than this. Don't forget that
Nethack is playable over telnet. Just write a telnet client that plays
Nethack.

- John H.
Anonymous
April 27, 2005 12:58:40 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

On Wed, 27 Apr 2005 00:06:02 -0400, Chris Maloof <cjmaloof@gmail.com> wrote:

>I promise, if I ever get some decent bot-development tools working,
>with some sort of sample bot, I'll make them public. This certainly
>includes some of what's been talked about, such as allowing the user
>to watch the bot's actions and take over control at will. Also stuff
>like the ability to set up and save situations in wizmode to try out
>various strategies. It shouldn't even be especially hard, but I've
>been a bit busy lately. Keep that initial "if" in mind.

>
>On Tue, 26 Apr 2005 10:22:35 -0500, Jove <Jove@Jove.invalid> wrote:
>
>>On Mon, 25 Apr 2005 18:29:56 +0200, Benjamin Schieder <blindcoder@scavenger.homeip.net> wrote:
>>
>>>> [ Writing bots ... again ]
>>>
>>>Well, I'm still firm in the belief that if there _really_ should be official
>>>support for nethack bots then there should be an interface for them. Much like
>>>tty/Qt ports, make a XML port. Or whatever.
>>>This is so that bot developers can focus on the actual bot development and not
>>>on parsing the output.
>>
>>Looking at it, the BFMI (Brute Force & Massive Ignorance)
>>approach might work. Take snapshot of the screen after
>>each keypress input. Record each snapshot in a plain
>>text file at first for ease of human analysis.
>>
>I think, by "parsing", Benjamin means interpreting the text rather
>than acquiring it. I suppose XML would be useful mostly as a more
>convenient language than English for the game's text messages? At the
>moment I can't think of a lot of structure in the maps that would be
>hard to parse but useful to have. My guess would be that any parsing
>could be done externally; while tricky, an external layer probably
>wouldn't be any worse than trying to add a second stream of meaningful
>XML output at every point where Nethack tries to print something.
>
The nice thing about doing it all external to the game would be
that it could be used for *any* program with a nethack like
interface.

It could be a "magic gloves" or "magic keyboard" application.
You could program/configure it to let you use Nethack/vi direction
keys in any program.

It could enforce the rules of the Nethack paranoid patch without having
to know how to patch or compile.

It could prevent you from attacking something with a pickaxe you
were using for digging.

It could handle the %$@#*& dangling direction prompts in Nethack
that keep ending me up in the water. (by the by, are these a known
bug? Please reply in another thread with "dangling direction prompt"
in the subject. )

These configuration/macros/subroutines should be storable in plain
text & enabled on startup or on-the-fly. One person would write a
paranoid script (intelligent macro? we need a good name for one
of these) for NetHack. Everyone interested uses/tests/improves it.
Someone else uses it for an example to write a "not in MY bag of holding
bigod"

A general interface tweaker with easily on-the-fly programmable
intelligent macros. Someone was asking for and enhancement to
the autoquiver code to prioritize autoquivering based on skills/
launcher/cursed/enchantment/phase-of-the-moon. Magic Keyboard
should be able to do that.

It should be able to do so using a plain text command language
that doesn't require a programmer to use, just the ability to
state what you want. i.e. there would be no DWIM command.

There *would* be something like this:

IF ( SCREEN LIKE "Do you really want to attack" )
THEN
IF ( USER_INPUT LIKE "yes" )
THEN
TELL USER "Okay, you asked for it."
TELL APPLICATION "yes"
ELSE
IF ( USER_INPUT IS "y" )
THEN
TELL USER "Full word \"yes\" required to attack."
IF ( USER_INPUT IS "ye" )
THEN
TELL USER "Full word \"yes\" required to attack."
TELL USER "This for your own good."
ENDIF
TELL APPLICATION "no"
ENDIF
ENDIF

Try this on for size:

IF (hitpoints <= 1 )
THEN
SWITCH
CASE ( BackPack() HAS "potion of full healing" )
TELL USER "Quaff potion of full healing?(y/n)"
IF ( USER_INPUT NOT "y" )
THEN
TELL USER "You fool."
TELL USER "Well I'm quaffing it anyway."
TELL USER "Your death wish isn't going to make ME look bad."
ENDIF
TELL APPLICATION ESC # Clear out whatever mode that fool user was in
TELL APPLICATION "q"
TELL APPLICATION Inventory_Letter("potion of full healing")
ENDCASE
CASE ( BackPack() HAS Fast_Engrave_Means() )
TELL USER "You could try Engraving a quick \"Elbereth\""
IF ( NOT Melee_Range_Ignores_Elbereth() )
THEN
TELL USER "No one in melee range ignores it."
IF ( Possible_Ranged_Attack() )
THEN
TELL USER "You might get hit from a distance."
IF ( Newbie_Mode() )
THEN
TELL USER "(Enemies might throw things at you)"
ENDIF
ELSE
TELL USER "It looks safe."
ENDIF
ELSE
TELL USER "but"
FOR Monsters_in_Melee_Distance()
IF ( Monster(Ignores_Elbereth) )
THEN
TELL USER $Monster " at " $Monster_Direction "ignores Elbereth"
ENDIF
ENDFOR
ENDIF

CASE ( (( $Turns - $Last_Prayed_Turn ) >= $Panic_Prayer )
IF (( $Turns - $Last_Prayed_Turn ) < $Confident_Prayer_Interval )
THEN
TELL USER "Pray to $Deity. It's worth a shot."
ELSE
TELL USER "You can very probably pray safely."
ENDIF
ENDCASE
CASE ( Bag() HAS "potion of full healing" )
TELL USER "There's a potion of full healing in your bag.
IF ( Encumbrance(Burdened_or_Worse()) )
THEN
IF ( Can_Abuse_Speed_System() )
THEN
TELL USER "You can get that potion of full healing"
TELL USER " from you bag and quaff it. Probably."
ENDIF
ENDCASE
CASE DEFAULT
TELL USER "YASFD, you might as well #quit, your score will be higher."
ENDCASE
ENDIF
ENDIF

My big point (from the start) is: give the users a way to encode
*what they already know* into the interface.
They'll stun you.

(What do you want to apply? unicorn horn
You feel more steady.)


Look at the Internet Movie database. All they did was let interested
people put in movie information.

>>
>>>So, if someone would stand up as Project Leader/Big Poobah/Royal Asskicker I
>>>will offer the infrastructure for that kind of task:
>>
>>Nononono, more like Get Some Minimal Functionality Working
>>Then Stand Back & Watch What People Do With It.
>>
>Well, the approaches might be pretty compatible if the project leader
>isn't too possessive. The DevTeam basically does both, except for the
>"minimal" part.

Let users encode their own information and hopefully this won't
matter.

If the project leader doesn't want people to prevent
themselves from putting bags of holding into their bags of
holding, what can s/he do?

(Notice that the travel command won't move onto a known trap.
Should that be disabled? Maybe there should be a 1% chance
of stepping on it anyway. The Super Star Trek transporter
fails 2% of the time with an instadeath ;-)

Same thing about using a pickaxe to dig then suddenly breaking
"you never hit with a wielded weapon" conduct. That can be
fixed in the interface. Not fixing it is like setting a land
mine on someone's doorstep every morning then telling them
about it. When they step on it, and eventually they will,
saying "They knew better" won't be a defense.)


>
>>
>> Some example c code that compiles on WinXP DJGPP that grabs
>>a screen shot & cursor location & allows input back to NetHack
>>would be just what I need.
>>
>This page, which drussell on this newsgroup directed me to, has the
>guts of what you want. See also drussell's post. NetHack uses
>low-level console output.
>http://homepages.tesco.net/~J.deBoynePollard/FGA/captur...
>
>This page deals with consoles in C, although not so much with reading
>them. Good for sample calls to Windows Console APIs though.
>http://www.adrianxw.dk/SoftwareSite/index.html
>
>Chris
Going to look at that right now.

Jove
Anonymous
April 27, 2005 2:25:39 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

"kal.zekdor@gmail.com" <kal.zekdor@gmail.com> writes:

> I'd like to see something like this done, and I'd be willing to help

Something like WHAT?

--
Jukka Lahtinen
Anonymous
April 28, 2005 12:41:47 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

> Same thing about using a pickaxe to dig then suddenly breaking
> "you never hit with a wielded weapon" conduct. That can be
> fixed in the interface. Not fixing it is like setting a land
> mine on someone's doorstep every morning then telling them
> about it. When they step on it, and eventually they will,
> saying "They knew better" won't be a defense.)

Well, that's the challenge with conducts: You actually have to _take care_ not
to break them.
I wouldn't mind such a feature, but I would mind something like the "I quaff the
!oFH regardless of you wanting it or not"-feature.


Greetings,
blindy
Anonymous
April 28, 2005 12:46:18 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

> Looking at it, the BFMI (Brute Force & Massive Ignorance)
> approach might work. Take snapshot of the screen after
> each keypress input. Record each snapshot in a plain
> text file at first for ease of human analysis.

That's basically what I did with the pudding farming bot.
I don't parse escape-sequences yet, though.

> Parsing would probably work best in perl-> portability
> to all except small platforms. interfacing parsing &
> action routines (probably c) would be my sticking point.

FarmBot is a perl app.

> Nononono, more like Get Some Minimal Functionality Working
> Then Stand Back & Watch What People Do With It.

Well, that's already done:
http://scavenger.homeip.net/farmbot/

> Would rather herd rabid mice than programmers.

Heh, my (female) boss used to say: "Children? I already have a kindergarten."
I'm working at a (formerly small) consultant company :) 

> Could expect get the output from a running nethack somehow?
> Could expect then run a parser/action program/routine &
> pass that back to NetHack?

Have a look at FarmBot mentioned above. It already does that.



Greetings,
blindy
Anonymous
April 28, 2005 4:29:48 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

Benjamin Schieder wrote:
>>Same thing about using a pickaxe to dig then suddenly breaking
>>"you never hit with a wielded weapon" conduct. That can be
>>fixed in the interface. Not fixing it is like setting a land
>>mine on someone's doorstep every morning then telling them
>>about it. When they step on it, and eventually they will,
>>saying "They knew better" won't be a defense.)
>
>
> Well, that's the challenge with conducts: You actually have to _take care_ not
> to break them.

Not really. The challenge with conducts is that they make
certain aspects of the game much more difficult. It doesn't take much
care to not break wishless or genoless, for example... there isn't much
challenge to typing "nothing" or "none" at a prompt if you accidentally
get a wish or genocide from a throne or whatnot. But that doesn't mean
that those conducts are not challenging... the challenge comes from not
being able to arbitrarily create whatever gear you may be missing from
an optimal kit, or from having to fight your way past arch-liches and
master mind flayers instead of simply annihilating them all on a whim.

Similarly, weaponless is a challenge because it drastically
reduces your offensive capabilities. Not even a Grand Master martial
artist can touch the damage potential of someone with basic skill
wielding a decent +6 artifact weapon. That difficulty does not go away
if a means of avoiding, "Oops, I bumped into a blue jelly in the dark
while knocking out walls in Gehennom, and there goes the conduct I've
kept for the last 50,000 turns," accidents is put in.

--
John Campbell
jcampbel@lynn.ci-n.com
Anonymous
April 28, 2005 4:24:45 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

David Damerell wrote:

> You are mistaken.
>
> Currently, conducts provide two challenges; one, the actual
difficulty
> increase from things like not being able to use weapons; and two, the
care
> needed to avoid typos that accidentally break conducts without the
player
> gaining a real advantage.

No, I'd say it's you that's mistaken.

Practically all of Nethack's interest, and thus the game itself, comes
from the game itself and not its interface. This is why there's a
clear line between the two in the code. To confuse the two is not a
good idea, especially since there are so many different interfaces for
the game. By your logic, everyone should play Nethack on slower
computers, as a purely strategic choice.

You may be thinking, then, "What about players smacking a floating eye?
If avoiding typos wasn't part of the game, then how come players
aren't given a prompt before hitting one?" The answer, of course, is
that this would be giving the player extra information -- "Wait; the
game is *asking* me if I want to hit this eye. Answer's probably
no...."

- John H.
Anonymous
April 28, 2005 4:59:27 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

Quoting John Campbell <jcampbel@lynn.ci-n.com>:
>Benjamin Schieder wrote:
>>Well, that's the challenge with conducts: You actually have to _take care_
>>not to break them.
> Not really. The challenge with conducts is that they make
>certain aspects of the game much more difficult.

You are mistaken.

Currently, conducts provide two challenges; one, the actual difficulty
increase from things like not being able to use weapons; and two, the care
needed to avoid typos that accidentally break conducts without the player
gaining a real advantage.

You don't like challenge two; that's fair enough, as a point of view; but
you cannot deny that the current design provides and is intended to
provide both challenges.
--
David Damerell <damerell@chiark.greenend.org.uk> Kill the tomato!
Today is Mania, May.
Anonymous
April 29, 2005 12:49:08 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

> Not really. The challenge with conducts is that they make
> certain aspects of the game much more difficult. It doesn't take much
> care to not break wishless or genoless, for example... there isn't much
> challenge to typing "nothing" or "none" at a prompt if you accidentally
> get a wish or genocide from a throne or whatnot. But that doesn't mean

That wasn't possible until 3.4.3. Until 3.4.2 you couldn't "cancel" a wish or a
genocide. So you had to be _really_ careful with zapping unknown wands or
reading unknown scrolls.

Creetings,
blindy
April 29, 2005 12:49:09 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

Benjamin Schieder <blindcoder@scavenger.homeip.net> wrote in
news:42713037$0$10504$9b4e6d93@newsread4.arcor-online.net:

>> Not really. The challenge with conducts is that they make
>> certain aspects of the game much more difficult. It doesn't take
>> much care to not break wishless or genoless, for example... there
>> isn't much challenge to typing "nothing" or "none" at a prompt if
>> you accidentally get a wish or genocide from a throne or whatnot.
>> But that doesn't mean
>
> That wasn't possible until 3.4.3. Until 3.4.2 you couldn't "cancel"
> a wish or a genocide. So you had to be _really_ careful with zapping
> unknown wands or reading unknown scrolls.

Are you sure? I thought the way it worked was:
In Nethack 3.4.0 and beyond wishing for "nothing" enables you to refuse a
wish and keep the wishless conduct. Genociding "none" would retain
genocideless conduct.
In 3.3.1 there is no way to refuse a wish.
In 3.3.0 you could wish for gold and retain the wishless conduct.

I belive that entering an invalid monster name several times that you
would endup not genociding anything. I think (but am not sure) that this
will work in the 3.3.x versions and in the 3.4.x versions.
Anonymous
April 29, 2005 3:56:57 AM

Archived from groups: rec.games.roguelike.nethack (More info?)

Benjamin Schieder wrote:

>> Not really. The challenge with conducts is that they make
>> certain aspects of the game much more difficult. It doesn't take
>> much care to not break wishless or genoless, for example... there
>> isn't much challenge to typing "nothing" or "none" at a prompt if
>> you accidentally get a wish or genocide from a throne or whatnot.
>> But that doesn't mean
>
> That wasn't possible until 3.4.3. Until 3.4.2 you couldn't "cancel"
> a wish or a genocide. So you had to be _really_ careful with zapping
> unknown wands or reading unknown scrolls.
>
I use to always play genocideless from 3.3.3 or so, and the way to
avoid genociding anything at that point from a throne was just not to
enter anything 3 times in a row. Avoiding a wish was a different
story.

Jorge
Anonymous
April 29, 2005 4:40:02 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

Quoting John H. <JohnWH@gmail.com>:
>David Damerell wrote:
>>You are mistaken.
>>Currently, conducts provide two challenges; one, the actual difficulty
>>increase from things like not being able to use weapons; and two, the care
>>needed to avoid typos that accidentally break conducts without the player
>>gaining a real advantage.
>No, I'd say it's you that's mistaken.

Well, you'd be wrong, certainly about what is quoted. Challenge two is
manifestly present; people fail conducts regularly through this type of
carelessness, therefore it is a challenge. Don't attempt to deny it.

I think you would also be wrong about what was not quoted; that it's clear
from the current design that this is intended. But you didn't quote that,
so I guess you didn't intend to comment on it, and we can take it as read.

>You may be thinking, then, "What about players smacking a floating eye?
> If avoiding typos wasn't part of the game, then how come players
>aren't given a prompt before hitting one?" The answer, of course, is
>that this would be giving the player extra information

Of course! And the lack of a prompt before stepping into lava is because
that prompt would give away that lava might be dangerous, which I suppose
you must think players wouldn't know without being told.
--
David Damerell <damerell@chiark.greenend.org.uk> flcl?
Today is Aponoia, May.
Anonymous
April 30, 2005 10:16:39 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

David Damerell wrote:
> Quoting John Campbell <jcampbel@lynn.ci-n.com>:
>
>>Benjamin Schieder wrote:
>>
>>>Well, that's the challenge with conducts: You actually have to _take care_
>>>not to break them.
>>
>> Not really. The challenge with conducts is that they make
>>certain aspects of the game much more difficult.
>
>
> You are mistaken.
>
> Currently, conducts provide two challenges; one, the actual difficulty
> increase from things like not being able to use weapons; and two, the care
> needed to avoid typos that accidentally break conducts without the player
> gaining a real advantage.
>
> You don't like challenge two; that's fair enough, as a point of view; but
> you cannot deny that the current design provides and is intended to
> provide both challenges.

I could fairly trivially deny that, actually. But I won't. I
will deny, however, that the possibility of accidental breakage is, in
*any* case, significant enough to warrant being called "*the* challenge
with conducts" (at least until someone invents the "never hit any key
unintentionally" conduct), while the actual increase in gameplay
difficulty *is* that significant.

In some cases, the second factor barely even exists... I suppose
it might be possible for someone to typo "nothing" as "blessed greased
rustproof +3 helm of brilliance", or "none" as "master mind flayers",
but I don't think it's likely. If you remove the tiny possibility of
typoing, wishless and genoless are practically unreduced in their
challenge level. If you were to somehow remove the gameplay drawbacks of
those conducts, though, the challenge level would drop to basically
zero.

Things like atheism, illiteracy, and dietary conducts are a bit
easier to break by accident. But, again, if you were to remove the
possibility of unintentionally dropping something on an altar, or
accidentally eating the wrong inventory item, or reading something when
you meant to eat something else, those conducts are only trivially
reduced in difficulty. The real drawbacks - the inability to BUC-ID
things on altars, or buy protection, or #pray for succor or holy water
or boosts, or sacrifice for artifacts; or learn spells, or use scrolls
for any of their multitudinous purposes, or write the E-word; or eat
things that break your dietary restrictions for the intrinsics, or the
nutrition, or to stop those damn trolls from getting back up - do not go
away. But if you were to somehow remove those gameplay drawbacks, again,
the challenge level would drop to almost nothing.

And then there's weaponless. The fact that it's fairly easy to
break by accident does not make not breaking it by accident the whole
challenge involved in the conduct. Unlike most other conducts, removing
means of breaking it by accident would make it notably easier to keep.
But it would not remove the difficulties involved in not being able to
do the sheer amount of melee damage that any weapon-using character can
aspire to.

Also, as others have pointed out, recent versions of nethack
have made it easier to avoid accidentally using a wish or genocide. That
safeguards have been added to help avoid involuntary conduct breakage
calls into question your assertion that accidental conduct breakage is
an intentional part of the game, rather than merely a result of
unrelated game design decisions.

--
John Campbell
jcampbel@lynn.ci-n.com
Anonymous
April 30, 2005 10:16:40 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

On Sat, 30 Apr 2005 18:16:39 GMT, John Campbell <jcampbel@lynn.ci-n.com> wrote:

<The following has been ruthlessly trimmed>

>
> And then there's weaponless. The fact that it's fairly easy to
>break by accident does not make not breaking it by accident the whole
>challenge involved in the conduct. Unlike most other conducts, removing
>means of breaking it by accident would make it notably easier to keep.
>But it would not remove the difficulties involved in not being able to
>do the sheer amount of melee damage that any weapon-using character can
>aspire to.
>

Right now half of the weaponless conduct seems to be "I beat
the NetHack interface!"

A simple solution that may satisfy all parties with regard
to both accidentally breaking weaponless conduct as well as accidentally
attacking floating eyes, peacefuls, etc.

Especially when moving northwest, where the 'y' key rapidly
changes meaning from:
1. move northwest to
2. attack northwest to
3. YES

Add an auto-attack option (like autodig). Same going to
the option screen to toggle it. Nethack already has the (F)orce
attack command, which seems tailor-made for when auto-attack is
off.

Would also be useful when hallucinating or confused.

For role-playing especially the player would have a much
closer feeling of playing out their intentions in the game.

As has been pointed out before, a prompt before using a
ranged attack against a peaceful monster (especially when at
melee distance!) would go long way towards making the nethack
attack interface consistent.


Jove
Anonymous
May 3, 2005 3:14:40 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

Quoting John Campbell <jcampbel@lynn.ci-n.com>:
>David Damerell wrote:
>>Quoting John Campbell <jcampbel@lynn.ci-n.com>:
>>>Benjamin Schieder wrote:
>>>>Well, that's the challenge with conducts: You actually have to _take care_
>>>>not to break them.
>>>Not really. The challenge with conducts is that they make
>>>certain aspects of the game much more difficult.
>>Currently, conducts provide two challenges; one, the actual difficulty
>>increase from things like not being able to use weapons; and two, the care
>>needed to avoid typos that accidentally break conducts without the player
>>gaining a real advantage.
>>You don't like challenge two; that's fair enough, as a point of view; but
>>you cannot deny that the current design provides and is intended to
>>provide both challenges.
> I could fairly trivially deny that, actually. But I won't. I
>will deny, however, that the possibility of accidental breakage is, in
>*any* case, significant enough to warrant being called "*the* challenge
>with conducts"

I did not assert that that was the case.

>(at least until someone invents the "never hit any key
>unintentionally" conduct), while the actual increase in gameplay
>difficulty *is* that significant.

It can't be called "the" challenge with conducts because there are two
significant challenges with conducts (some of which apply in greater or
lesser degree to any given conduct).

[Of course, I agree that Benjamin Schieder is wrong to describe no-typos
as "the" challenge.]

>Also, as others have pointed out, recent versions of nethack
>have made it easier to avoid accidentally using a wish or genocide. That
>safeguards have been added to help avoid involuntary conduct breakage
>calls into question your assertion that accidental conduct breakage is
>an intentional part of the game, rather than merely a result of
>unrelated game design decisions.

Um, two observations; the facility to wish for or genocide nothing is not
a pure typo-blocker, it's a gameplay change, because it becomes possible
to use unIDed scrolls and wands of certain types. It's only acting as a
typo blocker in the case where you finger-fumble and use an unIDed scroll
or wand when you didn't mean to.

Secondly, I don't think the fact that deliberate design decisions are
being made around the difficulty of keeping conducts supports the idea
that the current difficulty is largely accidental.

Incidentally, I _personally_ would be perfectly happy to see certain
conducts - atheist, illiterate, weaponless, diet restrictions spring to
mind [1] - implemented as selectable hard locks at the start of the game,
removing the typo problem completely in return for an inability to abandon
the conduct and continue the game.

[1] This list is not necessarily exhaustive. What I want is the list of
conducts that are significantly vulnerable to typos and also have the
characteristic that the player can't make an intentional action with a
probability of breaking the conduct p where 0 < p < 1; eg pacifist cannot
be enforced because the player cannot know in advance if any given attack
will kill the target.
--
David Damerell <damerell@chiark.greenend.org.uk> Distortion Field!
Today is First Tuesday, May.
Anonymous
May 3, 2005 10:07:23 PM

Archived from groups: rec.games.roguelike.nethack (More info?)

>>(at least until someone invents the "never hit any key
>>unintentionally" conduct), while the actual increase in gameplay
>>difficulty *is* that significant.
>
> It can't be called "the" challenge with conducts because there are two
> significant challenges with conducts (some of which apply in greater or
> lesser degree to any given conduct).
>
> [Of course, I agree that Benjamin Schieder is wrong to describe no-typos
> as "the" challenge.]

Okay, bad choice of words on my part.
Still I think that it's quite a part of the challenge at least for the
weaponless conduct. Ran into the infamous pickaxe incident with my monks a few
times myself.


Greetings,
Benjamin
!