Skip to main content

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

Project description

PyPI version Build pre-commit Code style: black

ViZDoom allows developing AI bots that play Doom using only 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 engine to provide the game mechanics.

ViZDoom Demo

Features

  • Multi-platform (Linux, macOS, Windows),
  • API for Python and C++,
  • Gymnasium/OpenAI Gym environment wrappers (thanks to Arjun KG Benjamin Noah Beal, Lawrence Francis, and Mark Towers),
  • Easy-to-create custom scenarios (visual editors, scripting language, and examples available),
  • Async and sync single-player and multiplayer 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 of game objects visible in the frame,
  • Access to the audio buffer (thanks to Shashank Hegde),
  • Access to the list of actors/objects and map geometry,
  • Off-screen rendering,
  • Episodes recording,
  • In-game 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.).

Julia (thanks to Jun Tian), Lua, and Java bindings are available in other branches but are no longer maintained.

Cite as

M Wydmuch, M Kempka & W Jaśkowski, ViZDoom Competitions: Playing Doom from Pixels, IEEE Transactions on Games, vol. 11, no. 3, pp. 248-259, 2019 (arXiv:1809.03470)

@article{Wydmuch2019ViZdoom,
  author  = {Marek Wydmuch and Micha{\l} Kempka and Wojciech Ja\'skowski},
  title   = {{ViZDoom} {C}ompetitions: {P}laying {D}oom from {P}ixels},
  journal = {IEEE Transactions on Games},
  year    = {2019},
  volume  = {11},
  number  = {3},
  pages   = {248--259},
  doi     = {10.1109/TG.2018.2877047},
  note    = {The 2022 IEEE Transactions on Games Outstanding Paper Award}
}

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},
  address   = {Santorini, Greece},
  month     = {Sep},
  pages     = {341--348},
  publisher = {IEEE},
  doi       = {10.1109/CIG.2016.7860433},
  note      = {The Best Paper Award}
}

Python quick start

Linux

To install the latest release of ViZDoom, just run:

pip install vizdoom

Both x86-64 and AArch64 (ARM64) architectures are supported. Wheels are available for Python 3.8+ on Linux.

If Python wheel is not available for your platform (Python version <3.8, distros below manylinux_2_28 standard), pip will try to install (build) ViZDoom from the source. ViZDoom requires a C++11 compiler, CMake 3.12+, Boost 1.54+ SDL2, OpenAL (optional), and Python 3.7+ to install from source. See documentation for more details.

macOS

To install the latest release of ViZDoom, just run (it may take a few minutes as it will build ViZDoom from source on M1/M2 chips):

brew install cmake boost sdl2 openal-soft
pip install vizdoom

Both Intel and Apple Silicon CPUs are supported. We recommend using at least macOS High Sierra 10.13+ with Python 3.7+. On Apple Silicon (M1 and M2), make sure you are using Python/Pip for Apple Silicon.

Windows

To install the latest release of ViZDoom, just run:

pip install vizdoom

At the moment, only x86-64 architecture is supported on Windows. Wheels are available for Python 3.8+ on Windows.

Please note that the Windows version is not as well-tested as Linux and macOS versions. It can be used for development and testing but if you want to conduct serious (time and resource-extensive) experiments on Windows, please consider using Docker or WSL with Linux version.

Gymnasium/Gym wrappers

Gymnasium environments are installed along with ViZDoom. See documentation and examples on the use of Gymnasium API.

OpenAI-Gym wrappers are also available, to install them run:

pip install vizdoom[gym]

See documentation and examples on the use of Gym API. OpenAI-Gym wrappers are deprecated and will be removed in future versions in favour of Gymnasium.

Examples

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

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

See also the tutorial.

Original Doom graphics

Unfortunately, we cannot distribute ViZDoom with original Doom graphics. If you own original Doom or Doom 2 games, you can replace Freedoom graphics by placing doom.wad or doom2.wad into your working directory or vizdoom package directory.

Alternatively, any base game WAD (including other Doom engine-based games and custom/community games) can be used by pointing to it with the set_doom_game_path/setDoomGamePath method.

Documentation

Detailed descriptions of all ViZDoom types and methods can be found in the documentation.

Full documentation of the ZDoom engine and ACS scripting language can be found on ZDoom Wiki.

Useful articles (for advanced users who want to create custom environments/scenarios):

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.
  • Sample Factory - A high-performance reinforcement learning framework for ViZDoom.
  • EnvPool - A high-performance vectorized environment for ViZDoom.
  • Obsidian - Doom random map generator, a continuation of OBLIGE.

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 feature ideas and design suggestions.

We have a roadmap for future development work for ViZDoom available here.

License

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vizdoom-1.2.3.tar.gz (15.9 MB view details)

Uploaded Source

Built Distributions

vizdoom-1.2.3-cp312-cp312-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.12 Windows x86-64

vizdoom-1.2.3-cp312-cp312-manylinux_2_28_x86_64.whl (28.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

vizdoom-1.2.3-cp312-cp312-manylinux_2_28_aarch64.whl (27.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

vizdoom-1.2.3-cp312-cp312-macosx_10_9_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

vizdoom-1.2.3-cp311-cp311-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.11 Windows x86-64

vizdoom-1.2.3-cp311-cp311-manylinux_2_28_x86_64.whl (28.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

vizdoom-1.2.3-cp311-cp311-manylinux_2_28_aarch64.whl (27.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

vizdoom-1.2.3-cp311-cp311-macosx_10_9_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

vizdoom-1.2.3-cp310-cp310-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.10 Windows x86-64

vizdoom-1.2.3-cp310-cp310-manylinux_2_28_x86_64.whl (28.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

vizdoom-1.2.3-cp310-cp310-manylinux_2_28_aarch64.whl (27.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

vizdoom-1.2.3-cp310-cp310-macosx_10_9_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

vizdoom-1.2.3-cp39-cp39-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.9 Windows x86-64

vizdoom-1.2.3-cp39-cp39-manylinux_2_28_x86_64.whl (28.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

vizdoom-1.2.3-cp39-cp39-manylinux_2_28_aarch64.whl (27.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

vizdoom-1.2.3-cp39-cp39-macosx_10_9_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

vizdoom-1.2.3-cp38-cp38-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.8 Windows x86-64

vizdoom-1.2.3-cp38-cp38-manylinux_2_28_x86_64.whl (28.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

vizdoom-1.2.3-cp38-cp38-manylinux_2_28_aarch64.whl (27.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

vizdoom-1.2.3-cp38-cp38-macosx_10_9_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file vizdoom-1.2.3.tar.gz.

File metadata

  • Download URL: vizdoom-1.2.3.tar.gz
  • Upload date:
  • Size: 15.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for vizdoom-1.2.3.tar.gz
Algorithm Hash digest
SHA256 de1ef1ed6e5fe2c18446268624011d15dc8aa0842566c36504eb3be4180b30c5
MD5 b002135f0b8901cba0e504fe67ef667b
BLAKE2b-256 9080208edd5186b0fdbf9cea7815091ad78587f10eb4a62a3724be255a0169c8

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: vizdoom-1.2.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 15.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for vizdoom-1.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f79f4122c9bfb63b2f6eb93b1c8f41a3d4721af99ca808f24625e9027ad49aaf
MD5 7cf9a51224d1d69179ab0661b77e5424
BLAKE2b-256 4f6361b00312ff4d0c0ee976246fca1f3daff32a147813ff35d0e3b19895dc3e

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fefdad90a56283779f0ad051f0ef6068d957126471fd5ff6d34bb64293dc1d85
MD5 04dd716be451c46ae769ff0eae1a2926
BLAKE2b-256 f3e8ea4dce38d4948ebe396a5f7f724658a16d3f2322800ae26923ed4950e806

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6d38e0086b04453be3b812b4770d4c943704d04433e0e85a92d50ad8e92631ce
MD5 92660dcbd885cc39946348df45a595e0
BLAKE2b-256 3600f26b4d0ed9a2ba9004a4acefb581c3705301f620a6f80624acae3aa2b46a

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b7cacfce7929d7367103ea76987ae322c3a61ccf508326bde36fbde2c5b3bdaf
MD5 d2bedfd5160fb51f27b0073c70cafb86
BLAKE2b-256 9f357ed58693d6aa1d1488762a1de46bfa5f679856f56f55f8483e927ec919d7

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: vizdoom-1.2.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 15.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for vizdoom-1.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 84dfb84ecef9cf8e6d246c1241e0e15b241888deda3feaaebb493b460f622f83
MD5 a71cdc16a226c85adb4ffb0798cf6fca
BLAKE2b-256 898c797786b5523deba5c9b21adead674a3f47dd5f15ec65d4379de5ffd81566

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 55989f26bacd80ebaaad8dfc230f4f1a9624def9a064c88d12362015a947ecda
MD5 6a0c7e4f118f2ab173c0492ea4361894
BLAKE2b-256 e2d4348514631f7df880143290dee8af04419fd0fb2ecfe1633e7185823e8180

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c6a219e9601d34c5c5c21240c0c8f09fd27cc37e3f0831a21f8c230dd55ea940
MD5 c9bdf38919bae71f1bb0c5ddf851689a
BLAKE2b-256 45d65eb3ec57fd7dbdd0efb7c2d69a7d1c01e91f6eda929784c6e159ceaf0aa8

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1c6e1dd81e490109422023ef9caa378c9038a9ee23f363638ce6203bcf676676
MD5 97456252c8c6c00159157078d20c5729
BLAKE2b-256 2de3ca76bb294fcfa8af2b6d0a0841509ceb8a0f82118397cacc6cf320400824

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: vizdoom-1.2.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 15.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for vizdoom-1.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1a791a0d2c2866f0ae959514fbd29117fd0d5aa42601714560d28e4577b81a83
MD5 f3569b4f6a3d25e7a7caadb7a1f9bec5
BLAKE2b-256 417035d87d024c5bb20619dab2e78444eb612d272a84303851f665780feb0bf4

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 87c6b51d388a313c42ffe82ef239e2b6ce5f9a7956ae199e674bf5e35f23d7f9
MD5 53bc15cf3b05ff6828e41122d4d7efb8
BLAKE2b-256 f85122d4c7af7a5bae23329f065de3d363df9bf4ecececbd012a8a267eebb2d2

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 18a59fe7820ce621832081bcf850dd6d5da52b64905b4cd72a44a48c52d26950
MD5 268c3dc0dbb4309ecc23d49eaedc2eb3
BLAKE2b-256 99eaab43bd14ef36233a03bf8531ea3443d4438a7595d5a52aca177ac4736b64

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1005bd458b5beada63559eafb532afbb2f1516cd127922bfd2fe5052c5b7a046
MD5 bc45df8d7ddd7a0360add0082878b804
BLAKE2b-256 0f21c1fb6c9bb0d5c2cc93d97f3910ee6dbb81a9523e65215388f93689c941c9

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: vizdoom-1.2.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 15.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for vizdoom-1.2.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 45ed3c03af6941308192d504353f729c343c3390c0be529bef22f1ab7ba8f249
MD5 fb3838a3d2024654e100badc0a141fa1
BLAKE2b-256 a225a7e119b6b1e4824acadb5a24f4b6bebb28d4a3aa052c035e90cfff324d3b

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2bd47653c3b8f804646b6955d82eb2098f4d8a6261b6b7c8e694dc79f67e9d92
MD5 2a21a08409004d1d124de32da4034064
BLAKE2b-256 8539bc0a2962aba5f5451517b0788d49fd63e9a8793bb0accc85b63d9191ad17

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b8f3afb82a6c0214eb7a43da5cfeeb0462c380b139ac6b9a86832681dbc5fa2d
MD5 94c2e882f818fc3b4218dc25bee21dfa
BLAKE2b-256 99023783f34306c1dd327c08bc0f7716d24c2bc3a41a34d75c230aefa99db5f7

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 df1852325ec48a51a978a1581b87801452a6dce797613d4d0196cc8840695156
MD5 2ff1c041fbdafc2eebfba0d588fab814
BLAKE2b-256 1dcdbcf23a1a25ff9f634c44cc9bdbea966f4e787716f5ba0390a9db21f5a670

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: vizdoom-1.2.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 15.5 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for vizdoom-1.2.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 de31ca6835c350d3629a29dcd76527d093389000eb509d7363277ece7b6c3ebe
MD5 107438d6f6bb00f02981001006337d83
BLAKE2b-256 60c4bcb4439d6a255fd5a4eca3ab0f3d3cb05945015db1c89a0843a2281380e1

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e591a6ee0cc883e48d340f2433457cf5471de867ab1742c6893c75301e19b7e8
MD5 3d9690b0e2db42883a75ffbb1dc0c7df
BLAKE2b-256 2f594af56496b14790fc0a6d6b61310d6869b0a33b5e1f9ec27200d9f540b761

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8d5e96f5ddcf0859e7a8d630626d520bafc975e5d86ad1e0d82afecf6428c452
MD5 2d2fe2d24dad07e2255451e06ac13026
BLAKE2b-256 d3d312148c845c1b7d7e65b044ec275ab0deb5531ba9bc6116a5cb08b947ef7e

See more details on using hashes here.

File details

Details for the file vizdoom-1.2.3-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for vizdoom-1.2.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1572921dede41da73fb55ecc8ac9ed640252addda49afb78d6f3dee83a21c3f0
MD5 7b4e1e29edfc70a7c1dcc0d22c2d9c06
BLAKE2b-256 806c4e4dc5f2f77b7ae446f9b7f70c54066040fbb2a38c45a2a21aeded15156f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page