Skip to content

Latest commit

 

History

History
119 lines (110 loc) · 7.43 KB

action_spaces.md

File metadata and controls

119 lines (110 loc) · 7.43 KB

Action Spaces

Overview

MiniHack has a large, structured and context-sensitive action space. We give practitioners an easy way to restrict the action space in order to promote targeted skill discovery. For example, navigation tasks mostly require movement commands, and occasionally, kicking doors, searching or eating. Skill acquisition tasks, on the other hand, require interactions with objects, e.g. managing the inventory, casting spells, zapping wands, reading scrolls, eating comestibles, quaffing potions, etc. In these tasks 75 actions are used.

The actual game of NetHack uses ASCII inputs, i.e., individual keyboard presses including modifiers like Ctrl and Meta. NLE pre-defines 98 actions, 16 of which are compass directions and 82 of which are command actions.

Specifying the Action Space

The actions used in MiniHack are defined here. The following example shows how to set the action space of the environment to movements towards 8 compass directions with open, kick, and search actions.

from nle import nethack
MOVE_ACTIONS = tuple(nethack.CompassDirection)
NAVIGATE_ACTIONS = MOVE_ACTIONS + (
    nethack.Command.OPEN,
    nethack.Command.KICK,
    nethack.Command.SEARCH,
)
env = gym.make(
    "MiniHack-Corridor-R3-v0",
    actions=NAVIGATE_ACTIONS,
)

Note that using different observation keys can make environments significantly easier or harder.

Possible Actions

Name Value Key Description
EXTCMD 35 # perform an extended command
EXTLIST 191 M-? list all extended commands
ADJUST 225 M-a adjust inventory letters
ANNOTATE 193 M-A name current level
APPLY 97 a apply (use) a tool (pick-axe, key, lamp...)
ATTRIBUTES 24 C-x show your attributes
AUTOPICKUP 64 @ toggle the pickup option on/off
CALL 67 C call (name) something
CAST 90 Z zap (cast) a spell
CHAT 227 M-c talk to someone
CLOSE 99 c close a door
CONDUCT 195 M-C list voluntary challenges you have maintained
DIP 228 M-d dip an object into something
DOWN 62 > go down (e.g., a staircase)
DROP 100 d drop an item
DROPTYPE 68 D drop specific item types
EAT 101 e eat something
ESC 27 C-[ escape from the current query/action
ENGRAVE 69 E engrave writing on the floor
ENHANCE 229 M-e advance or check weapon and spell skills
FIRE 102 f fire ammunition from quiver
FIGHT 70 F Prefix: force fight even if you don't see a monster
FORCE 230 M-f force a lock
GLANCE 59 ; show what type of thing a map symbol corresponds to
HELP 63 ? give a help message
HISTORY 86 V show long version and game history
INVENTORY 105 i show your inventory
INVENTTYPE 73 I inventory specific item types
INVOKE 233 M-i invoke an object's special powers
JUMP 234 M-j jump to another location
KICK 4 C-d kick something
KNOWN 92 \ show what object types have been discovered
KNOWNCLASS 96 ` show discovered types for one class of objects
LOOK 58 : look at what is here
LOOT 236 M-l loot a box on the floor
MONSTER 237 M-m use monster's special ability
MORE 13 C-m read the next message
MOVE 109 m Prefix: move without picking up objects/fighting
MOVEFAR 77 M Prefix: run without picking up objects/fighting
OFFER 239 M-o offer a sacrifice to the gods
OPEN 111 o open a door
OPTIONS 79 O show option settings, possibly change them
OVERVIEW 15 C-o show a summary of the explored dungeon
PAY 112 p pay your shopping bill
PICKUP 44 , pick up things at the current location
PRAY 240 M-p pray to the gods for help
PREVMSG 16 C-p view recent game messages
PUTON 80 P put on an accessory (ring, amulet, etc)
QUAFF 113 q quaff (drink) something
QUIT 241 M-q exit without saving current game
QUIVER 81 Q select ammunition for quiver
READ 114 r read a scroll or spellbook
REDRAW 18 C-r redraw screen
REMOVE 82 R remove an accessory (ring, amulet, etc)
RIDE 210 M-R mount or dismount a saddled steed
RUB 242 M-r rub a lamp or a stone
RUSH 103 g Prefix: rush until something interesting is seen
SAVE 83 S save the game and exit
SEARCH 115 s search for traps and secret doors
SEEALL 42 * show all equipment in use
SEETRAP 94 ^ show the type of adjacent trap
SIT 243 M-s sit down
SWAP 120 x swap wielded and secondary weapons
TAKEOFF 84 T take off one piece of armor
TAKEOFFALL 65 A remove all armor
TELEPORT 20 C-t teleport around the level
THROW 116 t throw something
TIP 212 M-T empty a container
TRAVEL 95 _ travel to a specific location on the map
TURN 244 M-t turn undead away
TWOWEAPON 88 X toggle two-weapon combat
UNTRAP 245 M-u untrap something
UP 60 < go up (e.g., a staircase)
VERSION 246 M-v list compile time options
VERSIONSHORT 118 v show version
WAIT / SELF 46 . rest one move while doing nothing / apply to self
WEAR 87 W wear a piece of armor
WHATDOES 38 & tell what a command does
WHATIS 47 / show what type of thing a symbol corresponds to
WIELD 119 w wield (put in use) a weapon
WIPE 247 M-w wipe off your face
ZAP 112 z zap a wand

The descriptions are mostly taken from the cmd.c file in the NetHack source code. For a detailed description of these actions, as well as other NetHack commands, we refer the reader to the NetHack guide book.