PokéRogue: A Pokémon Fangame Meets Roguelite, Playable in Your Browser
Every once in a while, a project shows up on GitHub that makes you stop and say, "Wait, this actually works in the browser?" PokéRogue is that project. It’s a Pokémon fangame that ditches the standard RPG structure and drops a roguelite twist on top. You can play it right now in your browser, no downloads, no emulators, just a link.
If you’ve ever wanted a Pokémon game where every run feels different, where death actually matters, and where you don’t have to grind for hours to see the credits roll, this is it.
What It Does
PokéRogue is a browser-based roguelite built around the core Pokémon battle system. You start each run with a small team of Pokémon, and you progress through procedurally generated "floors" (think dungeons). Each floor has wild Pokémon, trainers, items, and the occasional boss fight.
The twist? When your entire team faints, the run ends. You keep some progression (like unlocking new starters or abilities), but you lose the current team and items. It’s a classic roguelite loop: try, fail, unlock, adapt, try again.
The game uses a custom engine built with JavaScript and HTML5 Canvas, so it runs directly in the browser. No server-side processing for the battles, everything is client-side. The GitHub repo has the full source, and it’s all MIT licensed.
Why It’s Cool
A few things make this stand out from the usual 1000th "Pokémon clone" on GitHub.
Roguelite mechanics in Pokémon actually make sense. The standard Pokémon games don’t have permadeath or randomness in progression. Here, every floor is a gamble. You might find a rare evolution item, or face a boss that counters your team. That uncertainty makes each run tense and memorable.
No backend, no hassle. This is a single-page web app. Open the browser, load the page, start playing. That’s it. The devs designed it to be fully offline-capable once loaded, which is a nice touch for train commutes or slow connections.
Real Pokémon mechanics. This isn’t a simplified "lite" version. It includes abilities, status conditions, type matchups, evolution mechanics, movepools, and even shiny Pokémon. The combat is faithful to the main games, right down to the IVs and EVs.
Community driven. The repo has over 20,000 stars, and contributions are actively accepted. If you want to add a new feature (new biomes, new Pokémon forms, or even new battle mechanics), the codebase is structured for that.
How to Try It
The easiest way: just open the live demo.
Link: https://pokerogue.net
No installation, no account required. Click the link, the game loads in seconds, and you’re in.
If you want to run it locally (for development or hacking), clone the repo and serve the files with any static file server:
git clone https://github.com/pagefaultgames/pokerogue.git
cd pokerogue
python3 -m http.server 8000
Then open http://localhost:8000 in your browser.
The repo also has a src/ folder if you want to dig into the code. It’s written in vanilla JavaScript, so no framework learning curve if you just want to tweak a move or add a new Pokémon.
Final Thoughts
PokéRogue isn’t a polished AAA game. The UI is functional but not fancy, and the art is pixel-based (which fits the retro vibe, but don’t expect HD sprites). That said, it’s a genuinely fun roguelite that scratches an itch no mainline Pokémon game has ever tried.
For developers, this is a great repo to study if you want to see how to build a complex game entirely in the browser, no backend required. The code is clean, modular, and well commented. You’ll learn something about state management, battle logic, and how to handle procedural generation in JavaScript.
Give it a run. You’ll probably die on the second floor. Then you’ll try again.
Found this project interesting? We tweet about cool GitHub repos like this daily. Follow us at @githubprojects.
Repository: https://github.com/pagefaultgames/pokerogue