graphical-rogue
A graphical port of Rogue 5.4.5, the original 1980s dungeon crawl, to Python and pygame with 8-bit style graphics.
This is a port, not a tribute. The dungeon generator, the monster tables, the combat formulas, the item probabilities and the daemon/fuse scheduler are all carried across value-for-value from the authentic Rogue 5.4.5 C source released by the Roguelike Restoration Project, the final UNIX version by Michael Toy, Ken Arnold and Glenn Wichman. Originally ported to test the porting capabilities of Claude Code and then expanded to keep it a fun game for a modern platform.
What is new is the presentation. curses is replaced by a pygame tile grid, and the artwork is 61 hand-drawn 8×12 sprites: 26 animated monsters, a hero who wears what he is actually carrying, and every weapon and armour drawn as itself.
Everything about the rules is faithful: monster stats, to-hit and damage maths, the 3×3 room grid and its corridors, maze rooms, trap odds, hunger and regeneration timings, the experience curve (which caps at level 21, as in the original), and every potion, scroll, ring and wand effect.
But there are some deliberate departures, all of them about playing on a modern screen:
- Sleeping monsters hold still; awake ones move. This is the only change that affects information the player has. In real Rogue you cannot tell a sleeping monster from an alert one until it acts.
- Weapons and armour are drawn as themselves on the floor. The original shows every weapon as
). A weapon's type is not secret — the game names it as soon as you pick it up — so nothing is given away. Potions, scrolls, rings and wands keep one generic sprite each, because their identity is randomized per game and discovering it is the point. - No
--More--. The original had one 80-column line for messages at the top of a 24-line terminal, so a second message had nowhere to go and the game stopped and waited. Here there are three lines and messages roll off the top.^Pshows the log. - Hold a direction to walk. It stops on damage, on a monster coming into view or getting close, on entering a new room, on standing on something, or on being blocked — and needs the key released before it will go again.
The full source for a desktop playable version can be found at https://github.com/dalecook/graphical-rogue
You'll only need Python 3.13 and pygame to play. Windows tested only but should work everywhere due to pygame being the only requirement
Credits
- Rogue: Exploring the Dungeons of Doom — Copyright © 1980–1983, 1985, 1999 Michael Toy, Ken Arnold and Glenn Wichman. BSD 3-clause license. Original source preserved by the Roguelike Restoration Project.
- Desktop version and source: github.com/dalecook/graphical-rogue
- Font: Cascadia Mono © Microsoft Corporation, SIL Open Font License 1.1.
- Runs in the browser with pygbag.
| Published | 7 days ago |
| Status | Released |
| Platforms | HTML5 |
| Author | dalecook |
| Genre | Adventure |
| Tags | 8-Bit, Cult Classic, Dungeon Crawler, Perma Death, Pixel Art, Retro, Roguelike, Singleplayer, Turn-based |
| AI Disclosure | AI Assisted, Code, Graphics |

Leave a comment
Log in with itch.io to leave a comment.