In 1980, a couple of programmers created a game in which the hero was an @, monsters were letters, treasure was punctuation, and the dungeon was rebuilt every time you played. More than four decades later, I’m building it again in C#, and I’m dragging you along with me.
The game is the excuse. The subject is software development: requirements, design, testing, state, saving and loading, refactoring, and what to do when the thing you designed three weeks ago turns out to be wrong. Rogue has to store data, enforce rules, validate input and survive a save file that lies to it. Squint and it’s a line-of-business application with a body count, which beats building another customer maintenance screen, something I have done repeatedly, and for money.
Every article uses an AI assistant, with a prompt you can run yourself and a way to check what comes back. One rule covers all of it: don’t put AI-generated code into the project unless you can explain what it does.
How to read the map
@- you, the hero, carrying a great deal of misplaced confidence
K- a kestrel that follows you around with real determination
!- a potion of unknown intent, which is every potion until you drink one
^- the trap you found the hard way
,- the Amulet of Yendor, the reason you went down there
>- the way down, which is where the trouble is
The chapters
Thirty-eight articles in two Sections so far, with a third on the way. The linked titles are out on Medium. The rest are written and waiting their turn, one a week.
Section 1: Entering the DungeonArticles 1 to 17, none out yet
A map, a hero, rooms joined by corridors, a kestrel that follows you around with real determination, and the tests to prove all of it works.
- 1Why Build a 1980 Game in 2026?
- 2Before We Code: What Are We Actually Building?
- 3Our First
@ - 4Making
@Move - 5Our First Dungeon Room
- 6Don’t Walk Through Walls
- 7A Dungeon Bigger Than the Screen
- 8Let the Computer Build the Dungeon
- 9Rooms Need Doors and Corridors
- 10Random Doesn’t Mean Unrepeatable
- 11The First Monster
- 12The Monster Moves
- 13Whose Turn Is It Anyway?
- 14Our Movement Code Is Becoming a Mess
- 15What Can the Player Actually See?
- 16Separate the Game From the Screen
- 17Can We Prove It Works?
Section 2: In Search of the AmuletArticles 18 to 38, none out yet
Combat, potions you shouldn’t trust, traps, hunger, twenty floors, death, victory, and a save file that refuses to be fooled.
- 18Now Let’s Actually Build Rogue
- 19Combat:
@MeetsK - 20Not All Monsters Are Created Equal
- 21Making Monsters Behave Differently
- 22There’s Something on the Floor
- 23The Inventory Problem
- 24Weapons and Armor
- 25Potions: What Did I Just Drink?
- 26A Red Potion Isn’t Necessarily Healing
- 27Scrolls and Other Temporary Effects
- 28The Dungeon Wants You Dead
- 29You Have to Eat Eventually
- 30Getting Stronger
- 31Going Down
- 32Making the Dungeon Harder
- 33Gold, Treasure and Scoring
- 34Death Means Death
- 35Saving a Dungeon
- 36Loading Yesterday’s Game Tomorrow
- 37Testing an Entire Adventure
- 38Have We Actually Built Rogue?
Section 3: Rogue Is Going MobileComing
The same engine on a phone, to find out whether all that separation actually paid off. Being written now.
The real Rogue
This series rebuilds Rogue; it doesn’t replace it. If you want the original, its history or the people who made it, start here.
- Rogue (video game)Wikipedia’s history of the game: where it came from, how it spread, and why everybody copied it.
- The Rogue 5.4.4 manualThe version this series follows, and the one it argues with.
- RoguelikeThe genre Rogue started. Every game where death is permanent owes it a royalty it never paid.
- RogueBasin on RogueWhere the people who still play it keep their notes.
- Michael ToyCo-author, with Glenn Wichman, of the first Rogue around 1980.
- Glenn WichmanThe other half of that first version.
- Ken ArnoldThe third co-author, and the man behind curses, the screen library Rogue draws itself with.
Get the whole dungeon
Medium gets one article a week. Sponsors get the private GitHub repository: every chapter, including the ones that aren’t out yet, and the complete code at every step, tagged so you can check out exactly where any article ends and build it yourself. The Section volumes are in there too.
GitHub sends the invitation when you sponsor, and access lasts as long as the sponsorship does. Read it, build it, learn from it; just don’t republish it.
Sponsorship opens soon.