pyfiction, a universal API for text-based games
Python API for all kinds of text-based games.
Text-based games, more commonly known as interactive fiction (IF), come in various formats and use different interpreters that aren’t often compatible with each other.
The goal of pyfiction is to wrap the functionality of different IF simulators and to provide a universal API for text games for research purposes.
Pyfiction also includes sample agents that can learn to play the supplied text games.
- Python 3.6 (older version might work but they aren’t tested, Python 3.5 tested briefly)
- text-games submodule for games ‘Saving John’ and ‘Machine of Death’
- keras, tensorflow and their dependencies for launching the example agents
- selenium and chromedriver for running the HTML-based games
- h5py for saving and loading models
- pydot for visualising model graphs
To install the latest published version, simply run:
pip install pyfiction
To install the bleeding-edge version from this repository, run:
git clone --recursive https://github.com/MikulasZelinka/pyfiction cd pyfiction pip install -e .
pyfiction provides a simple agent-environment interface for text-game environments.
Simple RL interface . In pyfiction, the agent calls the corresponding functions of the game environment:
- state, actions, rewards = game.read() (left branch),
- game.write(action) (right branch).
To run any example (from the game list below or from this list), simply run:
on these files:
- Interactively play any of the supported games,
- An SSAQN (siamese state-action q-network) agent  learning to play multiple games at once,
- Interactive testing of state-action Q-values of the above agent trained on the supported games,
or on one of the supported games below.
Currently supported games
The following links lead to training experiments of the SSAQN agent on the supported games:
- Saving John
- Machine of Death
- Cat Simulator 2016 [HTML-based]
- Star Court [HTML-based]
- The Red Hair [HTML-based]
- Transit [HTML-based]
Adding new games
 Using reinforcement learning to learn how to play text-based games (Master thesis, available in 09/2017)
Version 0.1.2, Alpha
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size pyfiction-0.1.2-py2.py3-none-any.whl (8.1 MB)||File type Wheel||Python version py2.py3||Upload date||Hashes View|
|Filename, size pyfiction-0.1.2.tar.gz (8.1 MB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for pyfiction-0.1.2-py2.py3-none-any.whl