{"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/playing-pokemon-red-via-deep-reinforcement","title":"Playing Pokémon Red via Deep Reinforcement Learning","arxiv_id":"2502.19920","date":"2025-02-27","proceeding":null,"authors":["Marco Pleines","Daniel Addis","David Rubinstein","Frank Zimmer","Mike Preuss","Peter Whidden"],"abstract":"Pok\\'emon Red, a classic Game Boy JRPG, presents significant challenges as a testbed for agents, including multi-tasking, long horizons of tens of thousands of steps, hard exploration, and a vast array of potential policies. We introduce a simplistic environment and a Deep Reinforcement Learning (DRL) training methodology, demonstrating a baseline agent that completes an initial segment of the game up to completing Cerulean City. Our experiments include various ablations that reveal vulnerabilities in reward shaping, where agents exploit specific reward signals. We also discuss limitations and argue that games like Pok\\'emon hold strong potential for future research on Large Language Model agents, hierarchical training algorithms, and advanced exploration methods. Source Code: https://github.com/MarcoMeter/neroRL/tree/poke_red","url_abs":"https://arxiv.org/abs/2502.19920v1","url_pdf":"https://arxiv.org/pdf/2502.19920v1.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":"playing-pokemon-red-via-deep-reinforcement","repo_url":"https://github.com/MarcoMeter/neroRL","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"deep-reinforcement-learning","task_name":"Deep Reinforcement Learning"},{"task_slug":"language-modeling","task_name":"Language Modeling"},{"task_slug":"language-modelling","task_name":"Language Modelling"},{"task_slug":"large-language-model","task_name":"Large Language Model"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2502.19920","atlas_url":"https://app.syntology.ai/?focus=2502.19920","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2502.19920"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/MarcoMeter/neroRL","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4},"by_repo_kind":{"official":{"samples":4,"ran":4,"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":0,"samples":[{"code_sha256_prefix":"66ce8b277ebc8e04","entry":"find_value_in_nested_dict","repo":"MarcoMeter/neroRL","repo_kind":"official","path":"neroRL/optuna.py","file_url":"https://github.com/MarcoMeter/neroRL/blob/HEAD/neroRL/optuna.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"66ce8b277ebc8e04"}},{"code_sha256_prefix":"01e0cc5477a29031","entry":"get_sorted_checkpoints","repo":"MarcoMeter/neroRL","repo_kind":"official","path":"neroRL/eval_checkpoints.py","file_url":"https://github.com/MarcoMeter/neroRL/blob/HEAD/neroRL/eval_checkpoints.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"01e0cc5477a29031"}},{"code_sha256_prefix":"8ede98ee0185e4a8","entry":"init_recurrent_cell","repo":"MarcoMeter/neroRL","repo_kind":"official","path":"neroRL/enjoy.py","file_url":"https://github.com/MarcoMeter/neroRL/blob/HEAD/neroRL/enjoy.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8ede98ee0185e4a8"}},{"code_sha256_prefix":"f62f5cb95f11a0a0","entry":"init_transformer_memory","repo":"MarcoMeter/neroRL","repo_kind":"official","path":"neroRL/enjoy.py","file_url":"https://github.com/MarcoMeter/neroRL/blob/HEAD/neroRL/enjoy.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f62f5cb95f11a0a0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}