r/roguelikedev 13h ago

17 part C++/SDL3 tutorial for building a traditional roguelike

32 Upvotes

Hi all. I've written game programming tutorials for a while now, and I've recently finished a fairly chunky bunch on building a traditional roguelike from scratch in C++ with SDL3. I have been lurking on this forum for some time now (and very occasionally posting and chatting with a few of you about your games). This is the community the tutorials were written for, so I wanted to share.

It's a proper traditional roguelike: turn-based, ASCII, procedurally generated, permadeath, etc. Every part ends with something you can build, run, and play:

- All the code is on GitHub separated into playable sections to match the 17 parts: https://github.com/EliteIntegrity/Roguelike-tutorial-series

- Dungeon generation: BSP rooms, then cellular-automata caves

- Recursive-shadowcasting field of view, fog of war, and a remembered map

- Monster AI on a Dijkstra map: one flood over the floor that everything pathfinds from it

- Turn-based melee, then ranged magic (lightning, fireball), equipment, and status effects

- Data-driven character classes, multiple floors, a plain-text save system, a HUD and message log, and synthesized sound with no asset files

- A win condition

- A clean architecture you can refactor or add features when you want to.

I tried to explain the why as much as the what: why a Dijkstra map beats a pile of A* searches here, why the architecture gets refactored exactly when it does and not before.

There's also a full companion C++ primer (Learning C++ by Building Games) that starts from zero and builds a simpler roguelike first, in case you want the C++ tutorials before getting started.

It's free to read on my site. (I did turn the series into a book for people who prefer, but the tutorial is free and always will be.)

Hope this is genuinely useful and hope you have some questions.

(I have a roguelike in development as well but too soon to share)

Here are the tutorials: https://gamecodeschool.com/roguelikes/


r/roguelikedev 1d ago

Recommend roguelike tutorial. Interested in learning GODOT 4

14 Upvotes

Hello! I recently discovered this community. I was paging through the tutorials created in 2025 - I saw that there were quite a few.

Does anyone have recommendations? I have been struggling to pick between them, there are few, and I'm finding dated information from previous tutorial jams.

specifically bazor or selina seem promising

I've been interested in GODOT 4, and the tilelayermap feature within godot seems promising. Thank you!


r/roguelikedev 1d ago

Making an ASCII Rogue-like in Godot

20 Upvotes

I am completely new to game development and coding and I'm asking if anyone knows some good resources to help me learn how to make an ASCII rouge-like in Godot, or any Godot resources in general. Thanks


r/roguelikedev 3d ago

[bakerrrr] 0.4.22 — my crime sandbox roguelike is finally becoming a simulated, breathing world

Post image
160 Upvotes

hi :) i’ve been building a game called BAKERRRR for a while, and it has finally reached the point where describing it as a list of planned systems feels less accurate than describing the cool simulated world that already exists.

It is a pygame-first systemic crime sandbox roguelike, written in Python and descended from a terminal game. Visually, I want it to feel familiar to someone who loved old C64 and console-descended roguelikes, while still taking advantage of the fact that pygame can draw actual tiny people, clothing, objects, buildings, fire, drones, plants, and Wire networks. Everything is drawn procedurally in code rather than assembled from a conventional sprite sheet. For reference, some of my favorites were legacy of the ancients, gateway to apshai, questron I and II, and ultima 4 and 5 in the c64 days. Nethack is my favorite RL.

The rich simulation is what it is all about, to me.

NPCs have names, appearances, clothing, uneven skills, jobs, schedules, relationships, organizational ties, property connections, knowledge, memories, needs, and their own ideas about what they should be doing. They can work, commute, shop, seek shelter, investigate trouble, spread rumors, protect people and places, use services, commit crimes, get arrested, and sometimes interfere with one another in ways I did not explicitly script.

Crime is increasingly about what the world actually knows. Witnesses can know that a crime happened without knowing who committed it. Descriptions become less precise with distance and poor light. Justice can investigate a real crime and still suspect the wrong person if their clothing, build, location, and timing match very closely—which also means disguises, framing somebody else, and simply being unlucky can matter without the game inventing fictional crimes to justify an arrest.

There are businesses to own and operate, storefront economies, street vendors, vehicles, transit, gambling, employment, buildings with real interiors, wilderness, and an increasingly connected underground. Fires spread spatially and continue existing when inconvenient. Sleep and altered states matter. NPCs can care about businesses based on experience and rumor, and that reputation can change where people actually choose to go.

Two of the larger toys are drones and the Wire.

Drones are physical machines assembled from chassis, power systems, modules, weapons, sensors, cargo, paint, and programmable procedure modules. The player can build and operate them, while some NPCs and factions also deploy drones according to their circumstances and equipment.

The Wire is a local-network hacking space with interfaces, software, ICE, trace, buffer pressure, data extraction, other users, and consequences back in the physical world. You can pull records and other contextual data, sell it to appropriate buyers, manipulate bounded physical systems, or interfere with connected drones. Organizations now have durable production cultures and directional supply agreements, so the corporation that manufactured a gang’s drone can remain distinct from the gang operating it. The same organizational identity can reach the paint, geometry, software, interface theme, and even the dialect used in Wire messages.

The world has also begun remembering things between characters. Flora and fauna have installation-local genetics with inheritable colors, physical traits, effects, abilities, recessive traits, natural breeding, and assisted breeding. New lines can become permanent inhabitants of the installation rather than disappearing at the end of one run. Hunting and cultivation licenses exist, along with culling declarations that can push a species through increasing scarcity, endangered and protected status, and eventually extinction. Rarity raises the value of the animal while also raising the legal consequences around exploiting it.

Poisonous deer are fine. Deer with exoskeletons....also fine!

The current version is 0.4.22. It is a real playable prototype, but absolutely not a balanced or conventionally polished release. There are systems whose first meaningful playtest is going to teach me more than another month of staring at their code. Some interactions are still too obscure, some economies are exploitable, some NPC behavior is awkward, and some parts of the city are much richer than others. There is not yet a formal progression structure worthy of sitting on top of all this (its planned, and there is structure - but it is changing fluidly at this point)

That is roughly where the project is now: enough of the machinery works that I want playtesting to expose balance problems, dead spaces, accidental cruelty, funny exploits, and places where the simulation fails to produce a believable answer.

I am especially interested in players who poke systems sideways. You know who you are. I want to hear the story about the witness who accused the wrong person, the business whose reputation poisoned a block, the drone routine that did something clever or disastrous, or the supposedly valuable species somebody managed to drive extinct.

Ultimately, I want this to be a game where you can steal a car, run a shop, hack a records office, breed an extremely questionable animal, and still care which little dude wearing a snazzy blue jacket heard the gunshot.

Anyway, this is BAKERRRR now. It has become very cool in the weirdest way, very large, and much closer to the game I have been waiting my whole life to play than it used to be. :) There is way too much to outline in this format, but i will try to answer questions you might have here, checking back in as time allows.

binaries and source code:

github link https://www.github.com/k0rd/bakerrrr

game downloads https://github.com/k0rd/bakerrrr/releases


r/roguelikedev 2d ago

Is pygbag worth it?

10 Upvotes

I've been making a roguelike with pygame for about a week. I have a super basic prototype. I would like it to be playable online so I can get feedback. I hacked together a pygbag deployment last night with github pages and it seems like it's having some issues with audio playback. I'm not just trying to figure out if I can fix this specific issue. There are others with the UI scaling, and text is blurry. I'm trying to decide if its worth bothering with or if I would be better off focusing on the desktop version. Does this path lead to too much compromise?

https://synaption.github.io/Tales_of_Derision/


r/roguelikedev 2d ago

Handling RichText

7 Upvotes

Hello everyone,

I've started experimenting and developing a roguelike a few months ago and I was wondering :

Should I store up to X small built richtext elements, or store plain text and build one bigger Richtext element on demand?

I'm using Monogame and I've got a really simple system that cuts strings depending on available width and I use a marker to identify colors in the text.

It does works pretty well for single texts in the GUI, but it does complexify a little bit my log and chat view.

Cureently, both are simple storages that creates richtext elements when a string is added to them. So I've got a big list of individual items that are not very practical to use.

What do you recommand?

Thanks for reading, have a nice day


r/roguelikedev 3d ago

Formal introduction to my spy-heist roguelike: Flemenco

Thumbnail
gallery
208 Upvotes

At the end of last month I made a major update (v0.1.5) to the game, and I am very happy to say that Flemenco is no longer a prototype and now boasts a halfway decent loop!

In Flemenco, you play as one of twelve spy-thieves, each with their own skills and abilities, with the end goal of taking down the nefarious (and ubiquitous) Flemenco Corporation. From your safehouse, varied contracts are selected, ranging from breaking out a captured fellow spy-thief to wiping out corporate records. Planning and preparing for these contracts (acquiring blueprints, selecting equipment, signing up for a gym membership, etc.) is crucial to success (and will be even more-so in future updates).

The next update (which I plan to release at the end of this month) will be my attempt at a procedural-contract-system. This will hopefully keep the flow of contracts feeling fluid, rather than hitting the same objectives repeatedly. I’m imagining something like this: the slip of paper with the access code to the dossier of anti-Flemenco criminals is memorized and then eaten by a cornered executive who thinks you’re about to ice him. But of course, he only did that because you disabled the security room backdoor in his office. Now the objective becomes kidnapping said executive. Et cetera!

The next major update will handle the broader story, an introductory sequence, ending, and more. Minor updates will come along the way!

The game is still in very early development and I have much more plans for the game, but I wanted to formally introduce it to the roguelike dev community. It has been wonderful and inspiring to be here for the past several months. I would also welcome any comments or concerns from the community about the gameplay itself, future ideas, and more!

https://kqylem.itch.io/flemenco

P.S. I compiled aseprite several days ago and have been having good-fun while making pixel art. If anybody has any tips regarding tilesets (or has made them before) I would gladly appreciate them.


r/roguelikedev 4d ago

Rooms vs organic environment

18 Upvotes

Original Rogue and many following RLs favor an environment made by rooms closed by doors and connected through corridors. This is a simple but very effective layout: exploring room after room immediately feels satisfying and promotes exploration.

I am experimenting with proc-gen and I obtained a cave-like environment. On paper it should be pretty good: there are some larger areas and narrow corridors, loops, chasms that cannot be crossed and tall vegetation that can be crossed but blocks visual. Yet, my feeling is that exploring this environment is not as satisfying as the good, old rooms and corridors layout.

Do you have any wisdom regarding what makes an environment satisfying to explore, and what games to look at for reference?

Of course, Brogue's levels are best in class: they seamlessly mix organic environments with rooms and corridors and they are a joy to explore. Yet, I suspect that the rooms layout is the essential part. Brogue with just rooms would still work fine (while not being as pretty and varied); with just organic environment, it would not work. Why is that?


r/roguelikedev 4d ago

Trying to procedurally generate small uniform tile dungeons in Unreal Engine.

14 Upvotes
Manually Simulated Dungeon Spawn

I have never attempted procedural generation before but I am trying to make a kind of dungeon crawler in Unreal Engine, where I need the maps to generate in a specific way.

The method in question
- take a 9x9 grid of tiles.
- add a point on a random perimeter tile of the 9x9 grid.
- add another point on a random tile along a 4 block perimeter from the last point spawned but not on the corner.
- repeat the last step 2 more times spawning 4 points total, no points can spawn within a 3 tile radius of another.
- now spawn a 3x3 room on each point.
- connect each room to its closest two other rooms using shortest paths possible while also leaving at least 1 tile of space from any unrelated rooms. (if there are multiple viable pathing options of equal length it's decided randomly).
- Boarder all walkable tiles with wall tiles.

All the generation I see isn't uniform like this they just have actors spawning actors in a sprawl.
The problems I see are;
- I need the spawning algorithm to kind of understand it is on a grid so that it can space the spawn points correctly. (I can think of ways to "cheese" this for lack of a better word but I'm wondering if anyone has a good way to do this instead)
- The more pressing matter for me is after it has spawned the rooms how to find the most optimal connection paths between them. Because even in my example manual simulation, when creating the connecting paths the bottom 3 rooms are equal distance from each other. In theory it would want to connect them to each other, but there is a 4th room so it needs to understand to ditch the path connecting to the room that has the shortest path to the 4th room. I could have only 3 rooms to eliminate this problem but then you can end up in worst case scenarios where they spawn 3 in a row straight down and the connection path from the first to the third is just a 7 tile long corridor of despair (this can actually still happen with 4 but it's very unlucky and because there are more tiles overall it makes it less of a problem). This is all beside the fact I don't know how to make it path find and spawn the optimal route between the two points using a grid to begin with.

I don't want to ask anyone to do my homework for me, but I am at a bit of a loss rn so I would appreciate any ideas or applicable references, ty.


r/roguelikedev 5d ago

Sharing Saturday #632

25 Upvotes

As usual, post what you've done for the week! Anything goes... concepts, mechanics, changelogs, articles, videos, and of course gifs and screenshots if you have them! It's fun to read about what everyone is up to, and sharing here is a great way to review your own progress, possibly get some feedback, or just engage in some tangential chatting :D

Previous Sharing Saturdays


r/roguelikedev 11d ago

exploration + level generation

Enable HLS to view with audio, or disable this notification

106 Upvotes

making progress on my roguelike rpg game, name dark elixir


r/roguelikedev 11d ago

How does inter-depth simulator works?

12 Upvotes

Hey folks! I'm working on a roguelike and trying to wrap my head around inter-depth simulation. Say a player goes down to -7, gets spotted, goes back up to -6, and after a few turns some enemies follow up there, how do you handle turn counting across depths? Another example: in Stoneshard, when you lure an enemy to the entrance, step outside, pass a few turns with the wait feature, and come back to find it wandered back toward its start, how can I accomplish something like that? I'd love to know how you approached it so I can roll my own version. Appreciate any tips


r/roguelikedev 12d ago

Sharing Saturday #631

31 Upvotes

As usual, post what you've done for the week! Anything goes... concepts, mechanics, changelogs, articles, videos, and of course gifs and screenshots if you have them! It's fun to read about what everyone is up to, and sharing here is a great way to review your own progress, possibly get some feedback, or just engage in some tangential chatting :D

Previous Sharing Saturdays


r/roguelikedev 14d ago

I'm developing a roguelike plant cultivation and survival simulator: Calcination

Post image
241 Upvotes

In Calcination you play as VAHAN, an environmental restoration robot awakened by the signal of a lone plant growing in your shadow. Your objective is to revive the wasteland, find out what exactly happened to the world, and Continue The Work.

Development is still in it's early stages, but I've got enough done that I feel comfortable putting it in front of people and asking for feedback. The version up on itch.io now should have the tutorial and major story content finished already. Systems in active development flux include world generation, overworld travel, "creature" encounters, and equipment. Major inspiration was taken from Cataclysm: Dark Days Ahead, CogMind, and Cave of Qud. The focus of development so far has been on the alchemy/theosophy inspired crafting system and plant genetics, so I'd welcome any advice or gameplay ideas from the community.

https://potofstew23.itch.io/calcination


r/roguelikedev 15d ago

Been building a ToME-inspired space roguelike solo - Finally have the loop I wanted. Progress + gifs

Enable HLS to view with audio, or disable this notification

135 Upvotes

I've been building Beyond the Black solo - a sci-fi roguelike that lives entirely in the terminal. No sprites, no art budget, just CP437 characters doing a lot of heavy lifting. Think Tales of Maj'Eyal, but set on the dead edge of the galaxy instead of a fantasy world.

added permanent progression that carries between runs (Simulation/Contractor mode Only) kill enough enemies across all your characters and you get a permanent damage
buff, that kind of thing. dying still counts toward it so a bad run
isn't totally wasted. that's been the main "ok just one more" hook.

honestly the thing that's eaten the most time isn't the mechanics, it's
making the numbers actually *readable* i kept building stuff where the
math was in my head and the player just had to guess. spent way too long
this month just putting real percentages on the character sheet lol.

the no-art thing was a constraint at first but i kind of love it now.
you can get a surprising amount of feel out of a terminal — textured
walls, weird symbols for the robots, little blood/spark bursts when
things die, tiny screen shake on crits.

anyway it's still rough in spots but it's playable start to finish now.
happy to talk about any of it - the code, the design, whatever. mostly
just wanted to show it exists

I have a future Roadmap and the game is very long can take about 10 to 20 hours to complete a first run!!


r/roguelikedev 19d ago

Sharing Saturday #630

30 Upvotes

As usual, post what you've done for the week! Anything goes... concepts, mechanics, changelogs, articles, videos, and of course gifs and screenshots if you have them! It's fun to read about what everyone is up to, and sharing here is a great way to review your own progress, possibly get some feedback, or just engage in some tangential chatting :D

Previous Sharing Saturdays


r/roguelikedev 19d ago

Stamina?

8 Upvotes

Hey guys.
I’m thinking about adding Stamina to my roguelike but starting to reconsider/evaluate.
The plan is/was to make it quite simple: stamina fatigue would only affect melee dmg (100-60% stamina = no effect, 59-30% - 1 dmg and 29-0% - 2 dmg).
And then say stamina starts/maxes out at 100 and a melee-attack costs 10%, magic spell casting 20%, fire ranged weapon 15%. Walking and waiting would increase for 8-10%.

The aim is to force the player to not just auto-melee but perhaps have to dance away a few turns and so on.

Thoughts? Ideas?


r/roguelikedev 26d ago

Sharing Saturday #629

27 Upvotes

As usual, post what you've done for the week! Anything goes... concepts, mechanics, changelogs, articles, videos, and of course gifs and screenshots if you have them! It's fun to read about what everyone is up to, and sharing here is a great way to review your own progress, possibly get some feedback, or just engage in some tangential chatting :D

Previous Sharing Saturdays


r/roguelikedev 29d ago

Budoka: A roguelike game dedicated to martial arts

34 Upvotes

Hello everyone, this is my second roguelike (first was with static monsters and generally weird).

There are 6 martial art classes (each acts as attack/defense/HP/always hit/multiple attacks modifier):

  • Aikido
  • Judo
  • Karate
  • Ninjutsu
  • Sumo
  • Taido

In order to promote to the next rank you need to gain experience by defeating enemies and also pick up a corresponding belt

Belts also work like keys to ascend to the previous levels, sometimes it might be useful to gain experience by fighting weaker players on those levels

When you reach 1 dan + black belt you'll get a "sensitivity" skill, meaning you'll be seeing all the enemies on the map. There's also a hidden aggravation mechanism - once you hit your opponent all enemies start chasing you, once you get hit only those enemies located nearby would chase you

Skipping turns or wandering in the dungeon would sometimes generate new enemies

It's written in python using curses for rendering.

Any feedback is much appreciated! Thanks in advance!

https://github.com/maksimKorzh/budoka


r/roguelikedev Jun 19 '26

Sharing Saturday #628

22 Upvotes

As usual, post what you've done for the week! Anything goes... concepts, mechanics, changelogs, articles, videos, and of course gifs and screenshots if you have them! It's fun to read about what everyone is up to, and sharing here is a great way to review your own progress, possibly get some feedback, or just engage in some tangential chatting :D

Previous Sharing Saturdays


r/roguelikedev Jun 15 '26

I’m solo developing a traditional roguelike called Lateral Crawl

Thumbnail
gallery
154 Upvotes

What is Lateral Crawl? 

Lateral Crawl is a traditional roguelike crossed with a post-apocalyptic endless road trip survival game. 

You play as The Cousin, travelling right through a one-screen-tall hostile lateral world, scavenging food, weapons, clothing, tools, and temporary solutions while trying to survive hunger, thirst, injury, enemies, and the increasingly strange structure of the road ahead. 

It is turn-based, tile-based, grid-based, and permadeath. There is no levelling, no XP treadmill, and no RPG stat sheet. You survive by learning how its systems work. 

The main influences are Alphaman, NetHack, and The Long Drive: classic roguelike survival and systemic weirdness, but stretched sideways into an endless road trip rather than stacked into dungeon floors. 

Current Implemented features 

  • Chunk-based world generation with semi-randomised biome-specific and ambient POIs, including buildings, world events, and puzzles. 
  • Survival pressure through hunger, thirst, injury, disease, and status effects. 
  • Large item library covering weapons, armour, devices, ampoules, lore items, food, and tools, governed by a rarity system. 
  • Paper doll equipment system with visible clothing, armour, hats, and held items rendered directly on the player.
  • Run-bound skill and ability system for character configurations, with active abilities bound to an action bar. 
  • Layered 16x16 visual tile system for land, objects, stains, items, enemies, effects, and player presentation. 
  • Multiple enemy AI states and mechanics for animal, human, and mechanical behaviours. 
  • Explosions, smoke, atmosphere, weather effects, and visual overlays. 
  • Mouse and keyboard hybrid control system for traditional roguelike input and modern click interaction. 
  • Context-based dynamic action menus for items, tiles, objects, and situations. 
  • Object destruction system for breaking, damaging, and transforming world objects. 
  • Full SFX implementation for world interactions, combat, environmental effects, and enemy emotes. 

There are also stranger roadside systems already taking shape, including scratch cards, corporate structures, roadside religion. 

I am currently working towards a Steam page, and I’m hoping to start contributing to Sharing Saturday as a regular devlog. The core systems are now in place and the project is entering a content addition phase, with a plan to move towards alpha testing in around six months.

Thanks for taking the time to look. 

 


r/roguelikedev Jun 12 '26

Sharing Saturday #627

29 Upvotes

As usual, post what you've done for the week! Anything goes... concepts, mechanics, changelogs, articles, videos, and of course gifs and screenshots if you have them! It's fun to read about what everyone is up to, and sharing here is a great way to review your own progress, possibly get some feedback, or just engage in some tangential chatting :D

Previous Sharing Saturdays


r/roguelikedev Jun 12 '26

To terminal or not to terminal

14 Upvotes

I recently saw a post around someone asking for a terminal version of a roguelike posted (might of been a different channel). And it got me thinking of something I've been building, but currently does not support a terminal.

There are a few things I think I might need to do, but I don't think there is anything that 100% makes it impossible, and the more I think about it the more I like it. I mean, I kinda DO want to play it through a terminal!

So SSH (hardfought style), or just a binary to run in the terminal? Anyone done this before from a graphical tiles client, and what pitfalls etc. What the server hosting like and costs if telnet?


r/roguelikedev Jun 11 '26

Rogue Source Code Examined

Thumbnail maizure.org
61 Upvotes

Ran across this article. Felt like it would be great to add to the sidebar!


r/roguelikedev Jun 10 '26

Extended ASCII Previewer is back at https://ascii.larkenx.me

Thumbnail
gallery
93 Upvotes

Hey folks, it's been a while but I've just re-hosted the extended ascii previewer application https://github.com/Larkenx/extended-ascii-previewer for exploring different color themes and downloading IBM Code Page 437 tilesets, primarily sourced from https://dwarffortresswiki.org/Tileset_repository.

You can find the new hosted app at https://ascii.larkenx.me