|Standard||Doom, Boom, Heretic, Hexen, Strife, UDMF|
|Developer(s)||Michał Kempka, Grzegorz Runc, Jakub Toczek, Marek Wydmuch, et al.|
|Initial release||1.0.0rc (2016-03-25, 3 years ago)|
|Latest release||1.1.6 (2018-07-16, 18 months ago)|
|Target Platform||Windows, Linux, Mac OS X|
|Available in||English (US), French, Italian|
ViZDoom is a source port derived from ZDoom. It is intended to be used for the development of AI players which have to rely on raw visual information instead of accessing the engine's internal data, by opposition to the AIs developed in various bots and ports such as AutoDoom.
To make things easier, there are however a few hooks available to AI developers, which can be accessed through C++, Java, or Python. The renderer is tweaked to allow to generate and access a depth buffer, and several statistics concerning the player (health, ammo, etc.) as well as up to 32 global ACS variables can be accessed. To permit machine learning, the first global variable is used to store a "reward" value, scripts can therefore be used to increase it or decrease it depending on player actions.
ViZDoom, originally called Vizia, was developed as the bachelor thesis project of four students at the Poznan University of Technology in Poland. The project attracted mainstream attention when students at Carnegie Mellon Institute used it to teach an AI how to play Doom, which was interpreted by sensationalist journalists as teaching an AI how to murder humans.
- Michał Kempka, Grzegorz Runc, Jakub Toczek, Marek Wydmuch (17 February 2016). "Vizia: 3D Video Game-Based Environment for Research on Learning Agents from Raw Visual Information." Retrieved 3 October 2016.
- Guillaume Lample, Devendra Singh Chaplot (18 September 2016). "Playing FPS Games with Deep Reinforcement Learning." Retrieved 3 October 2016.
- Scott Eric Kaufman (22 September 2016). "Meet your “Doom”: Carnegie Mellon researchers deliberately violate Asimov’s First Law of robotics, teach robots to kill." Retrieved 3 October 2016.
|Source code genealogy|
|Based on||Name||Base for|