{"id":17723447,"url":"https://github.com/vivek3141/super-mario-neat","last_synced_at":"2026-03-06T18:02:58.137Z","repository":{"id":54489437,"uuid":"143584864","full_name":"vivek3141/super-mario-neat","owner":"vivek3141","description":"This program evolves an AI using the NEAT algorithm to play Super Mario Bros.","archived":false,"fork":false,"pushed_at":"2022-08-01T22:44:35.000Z","size":17396,"stargazers_count":79,"open_issues_count":1,"forks_count":17,"subscribers_count":7,"default_branch":"master","last_synced_at":"2023-03-02T04:25:50.851Z","etag":null,"topics":["genetic-algorithm","gym","gym-super-mario-bros","machine-learning","mario","neat","neat-python","neural-network","neuroevolution","super-mario","super-mario-bros"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vivek3141.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-05T05:04:49.000Z","updated_at":"2023-02-26T03:51:14.000Z","dependencies_parsed_at":"2022-08-13T17:31:13.344Z","dependency_job_id":null,"html_url":"https://github.com/vivek3141/super-mario-neat","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivek3141%2Fsuper-mario-neat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivek3141%2Fsuper-mario-neat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivek3141%2Fsuper-mario-neat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivek3141%2Fsuper-mario-neat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vivek3141","download_url":"https://codeload.github.com/vivek3141/super-mario-neat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251666679,"owners_count":21624351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["genetic-algorithm","gym","gym-super-mario-bros","machine-learning","mario","neat","neat-python","neural-network","neuroevolution","super-mario","super-mario-bros"],"created_at":"2024-10-25T15:42:58.677Z","updated_at":"2026-03-06T18:02:57.041Z","avatar_url":"https://github.com/vivek3141.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Super Mario NEAT\nThis program uses the NEAT algorithm to evolve a \nNeural Network to play the original Super Mario Bros.\n\u003cbr\u003e\n\n\n## Requirements\nYou can install the requirements by running \u003cbr \u003e\n```bash \nsudo apt install fceux\npython3 -m pip install -r requirements.txt\n```\n\nOr if on windows, run\n```bash\npython3 -m pip install -r requirements.txt\n```\n* Make sure you have FCEUX downloaded and added to PATH\n\n## Training\nThe finisher.pkl file contains the best genome on generation 2284.\nIn ./Files, you can find the backup for generation 2284, and the backup for generation 2492,\nwhich is where I stopped training. \u003cbr /\u003e\n\u003cbr\u003e\nYou can continue training by running \u003cbr\u003e\n```bash\npython3 main.py cont_train --gen \u003cnum_generations\u003e --file \u003cfile\u003e\n```\n\u003cbr\u003e\n\n## Running\nTo run the finisher.pkl file, run\n\u003cbr\u003e\n```bash\npython3 main.py run\n```\n\nor run \u003cbr\u003e\n```bash\npython3 run.py\n```\nIf you want to run a different file, run\u003cbr\u003e\n```bash\npython3 main.py run --file \u003cfile_name\u003e\n```\n\u003cbr\u003e\n\n## Config\nFor debugging values, you can change any of the values in the config file. Note that you have to train from the 1st generation for some to take effect.\n\u003cbr\u003e\nTo use a different config file when training, specify `--config \u003cconfig file\u003e` when running `main.py`.\n\u003cbr\u003e\n## Multiprocessing\nThis program uses the build in python module multiprocessing, which is used for parallel computing. You can adjust the amount of genomes\nto run at once by specifying `--parallel \u003cnum_of_genomes\u003e` when running `main.py`.\n\u003cbr\u003e\n## Levels\nThe default level is World 1, Level 1. This can be changed by specifying `--level \u003clevel\u003e` when running `main.py`. For example, \u003cbr\u003e\n`python3 main.py train --gen 100 --level \"1-1\"` will use 1-1.\n\u003cbr\u003e\n## Result\nThe `finisher.pkl` file is trained to complete 1-1. It can complete it around 50% of the time. The `run.py` file keeps running the\nsimulation until it completes the level. `Ctrl + C` will stop it.\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cimg src=\"https://github.com/vivek3141/super-mario-neat/raw/master/img/world1-1.gif\"\u003e\n\u003cbr\u003e\n\n## Additional Information\nThe [Wiki](https://github.com/vivek3141/super-mario-neat/wiki) contains more information regarding the specifics of implementing certain parts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivek3141%2Fsuper-mario-neat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvivek3141%2Fsuper-mario-neat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivek3141%2Fsuper-mario-neat/lists"}