{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/vizdoom-a-doom-based-ai-research-platform-for","title":"ViZDoom: A Doom-based AI Research Platform for Visual Reinforcement Learning","arxiv_id":"1605.02097","date":"2016-05-06","proceeding":null,"authors":["Michał Kempka","Marek Wydmuch","Grzegorz Runc","Jakub Toczek","Wojciech Jaśkowski"],"abstract":"The recent advances in deep neural networks have led to effective\nvision-based reinforcement learning methods that have been employed to obtain\nhuman-level controllers in Atari 2600 games from pixel data. Atari 2600 games,\nhowever, do not resemble real-world tasks since they involve non-realistic 2D\nenvironments and the third-person perspective. Here, we propose a novel\ntest-bed platform for reinforcement learning research from raw visual\ninformation which employs the first-person perspective in a semi-realistic 3D\nworld. The software, called ViZDoom, is based on the classical first-person\nshooter video game, Doom. It allows developing bots that play the game using\nthe screen buffer. ViZDoom is lightweight, fast, and highly customizable via a\nconvenient mechanism of user scenarios. In the experimental part, we test the\nenvironment by trying to learn bots for two scenarios: a basic move-and-shoot\ntask and a more complex maze-navigation problem. Using convolutional deep\nneural networks with Q-learning and experience replay, for both scenarios, we\nwere able to train competent bots, which exhibit human-like behaviors. The\nresults confirm the utility of ViZDoom as an AI research platform and imply\nthat visual reinforcement learning in 3D realistic first-person perspective\nenvironments is feasible.","url_abs":"http://arxiv.org/abs/1605.02097v2","url_pdf":"http://arxiv.org/pdf/1605.02097v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"vizdoom-a-doom-based-ai-research-platform-for","repo_url":"https://github.com/mwydmuch/ViZDoom","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"vizdoom-a-doom-based-ai-research-platform-for","repo_url":"https://github.com/apollopower/DOOM-AI","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"vizdoom-a-doom-based-ai-research-platform-for","repo_url":"https://github.com/chengyu2/vizdoom_rl_community_canberra","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"gone","observed_at":"2026-09-18","how":"tree_404+repo_404"}},{"paper_slug":"vizdoom-a-doom-based-ai-research-platform-for","repo_url":"https://github.com/farama-foundation/vizdoom","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"vizdoom-a-doom-based-ai-research-platform-for","repo_url":"https://github.com/hegde95/ViZDoom_with_Sound","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"vizdoom-a-doom-based-ai-research-platform-for","repo_url":"https://github.com/icmlanon58443043/vizdoom","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"vizdoom-a-doom-based-ai-research-platform-for","repo_url":"https://github.com/icmlanon58443043/vizdoomicmlanon","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"vizdoom-a-doom-based-ai-research-platform-for","repo_url":"https://github.com/nolanwinsman/Team-Doom","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"vizdoom-a-doom-based-ai-research-platform-for","repo_url":"https://github.com/sagpant/ViZDoom","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"vizdoom-a-doom-based-ai-research-platform-for","repo_url":"https://github.com/NervanaSystems/coach","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"tf","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"atari-games","task_name":"Atari Games"},{"task_slug":"fps-games","task_name":"FPS Games"},{"task_slug":"game-of-doom","task_name":"Game of Doom"},{"task_slug":"q-learning","task_name":"Q-Learning"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[{"method_slug":"q-learning","method_name":"Q-Learning"}],"datasets_introduced":[{"slug":"vizdoom","name":"VizDoom","full_name":"VizDoom"}],"methods_introduced":[],"results":[{"leaderboard":"/sota/game-of-doom-on-vizdoom-basic-scenario","task":"Game of Doom","dataset":"ViZDoom Basic Scenario","model":"DQN","rank_in_archive_order":1,"of":1,"metrics":{"Average Score":"82.2"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1605.02097","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1605.02097"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hegde95/ViZDoom_with_Sound","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/icmlanon58443043/vizdoom","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mwydmuch/ViZDoom","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/apollopower/DOOM-AI","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/icmlanon58443043/vizdoomicmlanon","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chengyu2/vizdoom_rl_community_canberra","reach":{"status":"gone","observed_at":"2026-09-18","how":"tree_404+repo_404"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/nolanwinsman/Team-Doom","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sagpant/ViZDoom","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/farama-foundation/vizdoom","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/NervanaSystems/coach","reach":{"status":"unanswered"}}],"summary":{"ran_violates":1,"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"listed":{"samples":3,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":5,"samples":[{"code_sha256_prefix":"e75a37e421c09a08","entry":"get_action_array","repo":"apollopower/DOOM-AI","repo_kind":"listed","path":"examples/python/basic.py","file_url":"https://github.com/apollopower/DOOM-AI/blob/HEAD/examples/python/basic.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e75a37e421c09a08"}},{"code_sha256_prefix":"17a5e9d43c6df406","entry":"get_action_name","repo":"apollopower/DOOM-AI","repo_kind":"listed","path":"examples/python/basic.py","file_url":"https://github.com/apollopower/DOOM-AI/blob/HEAD/examples/python/basic.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"17a5e9d43c6df406"}},{"code_sha256_prefix":"4fbb5fe842347329","entry":"get_best_action","repo":"apollopower/DOOM-AI","repo_kind":"listed","path":"examples/python/learning_pytorch_test.py","file_url":"https://github.com/apollopower/DOOM-AI/blob/HEAD/examples/python/learning_pytorch_test.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4fbb5fe842347329"}},{"code_sha256_prefix":"a2c26261ca60dbd2","entry":"get_q_values","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"a2c26261ca60dbd2"}},{"code_sha256_prefix":"c49e869676fa9a5f","entry":"learn","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"c49e869676fa9a5f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}