{"repo":"error311/vimmonsters-academy","free":true,"listed":false,"github":"https://github.com/error311/vimmonsters-academy","clone":"git clone https://github.com/error311/vimmonsters-academy.git","description":"A retro browser game that teaches Vim motions through drills, exploration, and creature battles.","language":"JavaScript","stars":20,"topics":["browser-game","canvas","educational-game","gamedev","javascript","modding","pixel-art","retro-game","rpg","vim"],"license":"MIT","category":"game-templates","readme_excerpt":"VimMonsters Academy VimMonsters Academy is a browser game that teaches Vim motions through a retro creature-catching RPG. It is also structured as a learning codebase: people should be able to read it, fork it, mod it, and extend it without first untangling one giant file. The project is released under the MIT License in LICENSE. VimMonsters Academy is an independent learning project and is not affiliated with or endorsed by Vim. Preview Overworld and progression screenshot: Drill system screenshot: Battle and mini-drill screenshot: Goals - Teach Vim motions through play, drills, and battle interactions - Stay readable enough to use as a programming learning project - Be easy to fork for new lessons, new creatures, new art, and new maps Requirements - Node.js 22 or newer - npm - Docker, if you want to run the container build The repo includes .nvmrc and the GitHub Actions workflows use Node 22. Run Locally Then open http://localhost:8002 . If 8002 is busy: Leaderboard data is written to leaderboard.json in the project root unless you override it: If you want the public competition API to persist its used-run state too: Run With Docker Build the image: Run it: Then open http://localhost:8002 . Notes: - leaderboard data is written to /data/leaderboard.json inside the container - the bind mount keeps leaderboard data between container runs - if you do not care about persistence, you can drop the -v \"$(pwd)/data:/data\" mount - if 8002 is busy on your machine, change the published","default_branch":null,"files":null,"tree":[],"storefront":"/r/error311","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/error311/vimmonsters-academy/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}