FaceBook开源强化学习新环境NetHack

The NetHack Learning Environment (NLE)

NetHack游戏简介

这款游戏非常容易让你上瘾。你可能需要花费一生的时间来掌握它。许多人玩了几十年也没有通关

NetHack的前身是Rogue游戏,主要流行于上世纪80年代,主要在大学生中流行,但是当时游戏源码并未公布,因此由一群不同国家的开发者通过网络交流开发了NetHack这款游戏。

1987年7月28日,Mike Stephenson发行了原始NetHack。直到1989年,同样在7月发行的3.0版本,开始凝聚了一班人组成开发团队。NetHack是开源软件,今时今日,成为了其中一款最古老而仍在活跃开发的游戏,由于是开源软件,所以很多调试和新内容开发工作都会有同样身为玩家的志愿者参与。

FaceBook开源环境

The NetHack Learning Environment (NLE) 采用的ASCII字符组成图形界面,代表不同的角色、物品。旨在提供一个强化学习接口,促进深度强化学习算法研究。与Atari游戏相比,其动作空间巨大,与环境的交互也更加复杂,更偏向一种策略游戏

NetHack Gym Environment

NetHack游戏玩法

玩家需要选择自己所扮演的角色并指定性别、种族、职业和阵营,或者选择让系统随机产生一个角色。游戏者可以扮演经典奇幻角色,比如骑士、野蛮人、巫师、游侠、女武神、僧侣和武士,也可以选择一些比较少见的角色,诸如考古学家、游客和洞穴人。玩家的角色和阵营决定了其在游戏中需要侍奉的神灵。

玩家的目标就是在地下城的最底层获取Yendor的项链并将其供奉给自己的神灵。作为回报,角色会成为不朽的半神。此外,一系列的支线任务也必须完成,其中包括各职业所特有的任务。

游戏开始的时候,玩家通常会有一只宠物伴随,一般是小猫或者小狗,但骑士会有一匹马以及一副马鞍。

游戏中的大部分怪物都可以用魔法或喂食等方式转化为宠物。

NetHack的地下城大约总共有50层,其中大多数都是玩家进入时随机生成的。所有层基本上都有一个向上或向下的通道(包括楼梯、梯子、陷阱或者其他形式)、一些用走廊连接起来的房间,房间里面可能有祭坛、商店、喷泉、陷阱甚至水槽。一些比较特别的层有固定的形式。游戏有几个分支路线,包括一个推箱子游戏和弗拉德之塔。

初步使用

NLE依赖Python版本3.7及以上,还依赖libzmq和flatbuffers这两个包,使用conda命令安装起来也是非常方便:

$ conda create -n nle python=3.7
$ conda activate nle
$ conda install zeromq flatbuffers
$ pip install nle

其它终端的更详细的安装介绍参考其官方介绍:https://github.com/facebookresearch/nle/

与Gym类似,python调用如下:

>>> import gym
>>> import nle
>>> env = gym.make("NetHackScore-v0")
>>> env.reset()  # each reset generates a new dungeon
>>> env.step(1)  # move agent '@' north
>>> env.render()

更多学习资料

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。