pyfiction,一个用于基于文本的游戏的通用api
pyfiction的Python项目详细描述
用于各种基于文本的游戏的python api。
简介
基于文本的游戏,通常被称为互动小说(if),有多种格式,使用不同的解释器,这些解释器通常不兼容。
pyfiction的目标是包装不同if模拟器的功能,并为文本游戏提供一个通用的api,用于研究目的。
pyfiction还包括示例代理,可以学习玩提供的文本游戏。
要求
- Python3.6(旧版本可能可以工作,但它们没有经过测试,Python3.5经过了短暂的测试)
- text-games拯救约翰和死亡机器游戏的子模块
- keras,tensorflow及其用于启动示例代理的依赖项
- selenium和chromedriver用于运行基于html的游戏
- 用于保存和加载型号的h5py
- 用于可视化模型图的圆点
安装
要安装最新发布的版本,只需运行:
pip install pyfiction
若要从此存储库安装出血边缘版本,请运行:
git clone --recursive https://github.com/MikulasZelinka/pyfiction cd pyfiction pip install -e .
接口
pyfiction为文本游戏环境提供了一个简单的代理环境接口。
简单的rl接口[4]。在pyfiction中,代理调用游戏环境的相应函数:
- state, actions, rewards = game.read()(左分支),
- game.write(action)(右分支)。
示例
要运行任何示例(从下面的游戏列表或此列表),只需运行:
python file.py
关于这些文件:
- Interactively play any of the supported games,
- An SSAQN (siamese state-action q-network) agent [3] learning to play multiple games at once,
- Interactive testing以上受支持游戏训练的代理的状态操作q值,
或者在下面支持的游戏中。
当前支持的游戏
以下链接指向SSAQN代理在支持的游戏上的训练实验:
- Saving John
- Machine of Death
- Cat Simulator 2016[基于HTML]
- Star Court[基于html]
- The Red Hair[基于html]
- Transit[基于html]
另外,计划是将单个游戏集成到OpenAI Gym,请参见 详细信息请参见pull request和text_games branch。
添加新游戏
托多。
参考文献
[1]Language Understanding for Text-based Games Using Deep Reinforcement Learning
[2]Deep Reinforcement Learning with a Natural Language Action Space
[3]Using reinforcement learning to learn how to play text-based games(硕士论文,2017年9月提供)
状态
0.1.2版,alpha