Skip to content

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

Notifications You must be signed in to change notification settings

njustesen/ViZDoom

 
 

Repository files navigation

#ViZDoom Build Status http://vizdoom.cs.put.edu.pl

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.

Features

  • Multi-platform,
  • API for C++, Lua, Java and Python,
  • Easy-to-create custom scenarios (examples available),
  • Single-player (sync and async) and multi-player (async) modes,
  • Fast (up to 7000 fps in sync mode, single threaded),
  • 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,
  • Lightweight (few MBs).

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

Cite as

Michał Kempka, Marek Wydmuch, Grzegorz Runc, Jakub Toczek & Wojciech Jaśkowski, ViZDoom: A Doom-based AI Research Platform for Visual Reinforcement Learning, 2016 (arXiv:1605.02097)

Bibtex:

@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     = {20--23},
  Publisher = {IEEE},
  Note      = {The best paper award}
}

##Examples

Before running the provided examples, make sure that freedoom2.wad is placed it in the scenarios subdirectory (on Linux it should be done automatically by the building process):

Python examples are currently the richest, so we recommend to look at them, even if you plan to use other language.

See also the tutorial.

Building

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

  • 1.1.0 soon
  • 1.1.0pre (see 1.0 branch for compatible examples)
  • 1.0.4 (see 1.0 branch for compatible examples)

Documentation

Detailed description of all types and methods:

Changelog for 1.1.0 version.

License

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

About

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

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 77.9%
  • C 18.6%
  • CMake 0.9%
  • Objective-C++ 0.7%
  • Assembly 0.6%
  • Python 0.3%
  • Other 1.0%