Skip to content

This research project investigated Bio-Inspired Neural Network capabilities and State-of-the-Art implementations. As an experiment, it uses ViZDoom; a Doom-based AI Research Platform for Reinforcement Learning from Raw Visual Information. :godmode:

Notifications You must be signed in to change notification settings

Ohara124c41/Intelligent_Architectures-ViZDoom

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intelligent Architectures - Bio-Inspired Neural Networks

The first portion of the README is the report submitted for a course at TU/e. The second portion is to build and replicate the project based on the official source.

image1 image2 image3 image4 image5 image6 image7 image8 image9 image10 image11 image12 image13 image14


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.

ViZDoom is the platform for Visual Doom Competition @ CIG 2018. :goberserk: See Track 1 and Track 2 on crowdAI

vizdoom_deadly_corridor

Features

  • Multi-platform,
  • API for C++, Lua, Java, Python 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.).

References

Michał Kempka, Marek Wydmuch, Grzegorz Runc, Jakub Toczek & Wojciech 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}
}

Installation/Building instructions

Windows build

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

1.1.7 (2018-12-29):

See Installation of Windows binaries

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++
  • Lua (contain learning example implemented in Torch)
  • Java
  • 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

  • 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 (in development).

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.

About

This research project investigated Bio-Inspired Neural Network capabilities and State-of-the-Art implementations. As an experiment, it uses ViZDoom; a Doom-based AI Research Platform for Reinforcement Learning from Raw Visual Information. :godmode:

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 60.3%
  • Jupyter Notebook 23.5%
  • C 13.0%
  • CMake 0.9%
  • Python 0.7%
  • Objective-C++ 0.5%
  • Other 1.1%