All Projects → mwydmuch → Vizdoom

mwydmuch / Vizdoom

Doom-based AI Research Platform for Reinforcement Learning from Raw Visual Information.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Vizdoom

Rl4j
Deep Reinforcement Learning for the JVM (Deep-Q, A3C)
Stars: ✭ 330 (-71.99%)
Mutual labels:  doom, reinforcement-learning
Learningx
Deep & Classical Reinforcement Learning + Machine Learning Examples in Python
Stars: ✭ 241 (-79.54%)
Mutual labels:  examples, reinforcement-learning
Arnold
Arnold - DOOM Agent
Stars: ✭ 457 (-61.21%)
Mutual labels:  doom, reinforcement-learning
Doom Net Pytorch
Reinforcement learning models in ViZDoom environment
Stars: ✭ 113 (-90.41%)
Mutual labels:  doom, reinforcement-learning
Amazon Sagemaker Examples
Example 📓 Jupyter notebooks that demonstrate how to build, train, and deploy machine learning models using 🧠 Amazon SageMaker.
Stars: ✭ 6,346 (+438.71%)
Mutual labels:  reinforcement-learning, examples
Js By Examples
Learn JavaScript by examples
Stars: ✭ 1,138 (-3.4%)
Mutual labels:  examples
Awesome Decision Making Reinforcement Learning
A selection of state-of-the-art research materials on decision making and motion planning.
Stars: ✭ 68 (-94.23%)
Mutual labels:  reinforcement-learning
Torch Models
Stars: ✭ 65 (-94.48%)
Mutual labels:  examples
Ohloh api
Ohloh API examples
Stars: ✭ 64 (-94.57%)
Mutual labels:  examples
Trading Gym
A Trading environment base on Gym
Stars: ✭ 71 (-93.97%)
Mutual labels:  reinforcement-learning
Markovjs
Reinforcement Learning in JavaScript
Stars: ✭ 69 (-94.14%)
Mutual labels:  reinforcement-learning
Mabalgs
👤 Multi-Armed Bandit Algorithms Library (MAB) 👮
Stars: ✭ 67 (-94.31%)
Mutual labels:  reinforcement-learning
Personae
📈 Personae is a repo of implements and environment of Deep Reinforcement Learning & Supervised Learning for Quantitative Trading.
Stars: ✭ 1,140 (-3.23%)
Mutual labels:  reinforcement-learning
Javamoney Examples
JavaMoney - Examples
Stars: ✭ 68 (-94.23%)
Mutual labels:  examples
Outlace.github.io
Machine learning and data science blog.
Stars: ✭ 65 (-94.48%)
Mutual labels:  reinforcement-learning
Torch Ac
Recurrent and multi-process PyTorch implementation of deep reinforcement Actor-Critic algorithms A2C and PPO
Stars: ✭ 70 (-94.06%)
Mutual labels:  reinforcement-learning
Drl papernotes
Notes and comments about Deep Reinforcement Learning papers
Stars: ✭ 65 (-94.48%)
Mutual labels:  reinforcement-learning
Docker Examples
There are many like it, but this one is mine.
Stars: ✭ 66 (-94.4%)
Mutual labels:  examples
Pypownet
A power network simulator with a Reinforcement Learning-focused usage.
Stars: ✭ 69 (-94.14%)
Mutual labels:  reinforcement-learning
Context Mapper Examples
ContextMapper DSL: Examples
Stars: ✭ 66 (-94.4%)
Mutual labels:  examples

ViZDoom PyPI version Build

ViZDoom allows developing AI bots that play Doom using only the visual information (the screen buffer). It is primarily intended for research in machine visual learning, and deep reinforcement learning, in particular.

ViZDoom is based on ZDoom to provide the game mechanics.

vizdoom_deadly_corridor

Features

  • Multi-platform (Linux, macOS, Windows),
  • API for Python, C++, Lua, Java and Julia (thanks to Jun Tian),
  • Easy-to-create custom scenarios (visual editors, scripting language and examples available),
  • Async and sync single-player and multi-player modes,
  • Fast (up to 7000 fps in sync mode, single threaded),
  • Lightweight (few MBs),
  • Customizable resolution and rendering parameters,
  • Access to the depth buffer (3D vision),
  • Automatic labeling game objects visible in the frame,
  • Off-screen rendering,
  • Episodes recording,
  • Time scaling in async mode.

ViZDoom API is reinforcement learning friendly (suitable also for learning from demonstration, apprenticeship learning or apprenticeship via inverse reinforcement learning, etc.).

Cite as

M Wydmuch, M Kempka & W Jaśkowski, ViZDoom Competitions: Playing Doom from Pixels, IEEE Transactions on Games, in print, arXiv:1809.03470

@article{wydmuch2018vizdoom,
  title={ViZDoom Competitions: Playing Doom from Pixels},
  author={Wydmuch, Marek and Kempka, Micha{\l} and Ja{\'s}kowski, Wojciech},
  journal={IEEE Transactions on Games},
  year={2018},
  publisher={IEEE}
}

or

M. Kempka, M. Wydmuch, G. Runc, J. Toczek & W. Jaśkowski, ViZDoom: A Doom-based AI Research Platform for Visual Reinforcement Learning, IEEE Conference on Computational Intelligence and Games, pp. 341-348, Santorini, Greece, 2016 (arXiv:1605.02097)

@inproceedings{Kempka2016ViZDoom,
  author    = {Micha{\l} Kempka and Marek Wydmuch and Grzegorz Runc and Jakub Toczek and Wojciech Ja\'skowski},
  title     = {{ViZDoom}: A {D}oom-based {AI} Research Platform for Visual Reinforcement Learning},
  booktitle = {IEEE Conference on Computational Intelligence and Games},  
  year      = {2016},
  url       = {http://arxiv.org/abs/1605.02097},
  address   = {Santorini, Greece},
  Month     = {Sep},
  Pages     = {341--348},
  Publisher = {IEEE},
  Note      = {The best paper award}
}

Python quick start

Ubuntu

sudo apt install cmake libboost-all-dev libsdl2-dev libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libjpeg-dev libbz2-dev libfluidsynth-dev libgme-dev libopenal-dev zlib1g-dev timidity tar nasm
pip install vizdoom

(we recommend using at least Ubuntu 18.04+ with Python 3.7+)

macOS

brew install cmake boost sdl2
pip install vizdoom

(we recommend using at least macOS High Sierra 10.13+ with Python 3.7+)

Windows build

For Windows we are providing compiled runtime binaries and development libraries:

1.1.8pre (2019-08-28):

See Installation of Windows binaries

Building instructions

Examples

Before running the provided examples, make sure that freedoom2.wad is placed in the same directory as the ViZDoom executable (on Linux and macOS it should be done automatically by the building process):

  • Python (contain learning examples implemented in PyTorch, TensorFlow and Theano)
  • C++
  • Julia

Python examples are currently the richest, so we recommend to look at them, even if you plan to use other language. API is almost identical for all languages.

See also the tutorial.

Documentation

Detailed description of all types and methods:

Additional documents:

Also full documentation of engine and ACS scripting language can be found on ZDoom Wiki.

Useful parts:

Awesome Doom tools/projects

  • SLADE3 - great Doom map (scenario) editor for Linux, MacOS and Windows.
  • Doom Builder 2 - another great Doom map editor for Windows.
  • OBLIGE - Doom random map generator and PyOblige is a simple Python wrapper for it.
  • Omgifol - nice Python library for manipulating Doom maps.
  • NavDoom - Maze navigation generator for ViZDoom (similar to DeepMind Lab).
  • MazeExplorer - More sophisticated maze navigation generator for ViZDoom.
  • ViZDoomGym - OpenAI Gym Wrapper for ViZDoom.
  • Sample Factory - A high performance reinforcement learning framework for ViZDoom.

Contributions

This project is maintained and developed in our free time. All bug fixes, new examples, scenarios and other contributions are welcome! We are also open to features ideas and design suggestions.

License

Code original to ViZDoom is under MIT license. ZDoom uses code from several sources with varying licensing schemes.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].