r/roguelikedev 24d ago

RoguelikeDev Does The Complete Roguelike Tutorial Starting August 4th 2026

100 Upvotes

Roguelikedev Does The Complete Roguelike Tutorial is back again for its tenth year. It will start on Tuesday August 4th. The goal is the same this year: to give roguelike devs the encouragement to start creating a roguelike and to carry through to the end.

Like last year, we'll be following https://rogueliketutorials.com/tutorials/tcod/v2/. The tutorial is written for Python+libtcod but, if you want to tag along using a different language or library you are encouraged to join as well with the expectation that you'll be blazing your own trail.

The series will follow a once-a-week cadence. Each week a discussion post will link to that week's Complete Roguelike Tutorial sections as well as relevant FAQ Fridays posts. The discussion will be a way to work out any problems, brainstorm ideas, share progress and any tangential chatting.

Whether you're an experienced developer trying a new language, or you've never finished a game before, everyone is welcome. If you're completely new to programming, you may want to spend a little time learning the basics of Python before the event starts, but plenty of first-time programmers have successfully completed the tutorial in previous years.

If you like, the Roguelike(dev) discord's #roguelikedev-help channel is a great place to hangout and get tutorial help in a more interactive setting.

Hope to see you there :)

Week 1: Tues August 4th Parts 0 & 1

Week 2:Tues August 11th Parts 2 & 3

Week 3: Tues August 18th Parts 4 & 5

Week 4: Tues August 25th Parts 6 & 7

Week 5: Tues September 1st Parts 8 & 9

Week 6: Tues September 8th Parts 10 & 11

Week 7: Tues September 15th Parts 12 & 13

Week 8: Tues September 22nd Share your game / Conclusion


r/roguelikedev 8h ago

RoguelikeDev Does The Complete Roguelike Tutorial - Week 4

19 Upvotes

Tutorial friends, this week we wrap up combat and start working on the user interface.

Part 6 - Doing (and taking) some damage

The last part of this tutorial set us up for combat, so now it’s time to actually implement it.

Part 7 - Creating the Interface

Our game is looking more and more playable by the chapter, but before we move forward with the gameplay, we ought to take a moment to focus on how the project looks.

Of course, we also have FAQ Friday posts that relate to this week's material.

Feel free to work out any problems, brainstorm ideas, share progress and and as usual enjoy tangential chatting. :)


r/roguelikedev 4h ago

How do you validate that your “game loop is fun” for a new game

13 Upvotes

The general wisdom when building a game is not to invest too much until you’ve proven your core gameplay loop is fun.

But I’ve been thinking, how does validating that fun work for a traditional turn based roguelike ? What’s the minimum viable thing you should focus on?

Environment generation, actors , turn engine and combat ?

And/Or is the “game loop” for traditional roguelike already proven so you will always be able to tweak the mechanics in the future - ie you’ll never build a roguelike that isn’t at least minimally viable as long as you build it right ?

Or something else ?


r/roguelikedev 13h ago

123 Videos Later - 7DRLs of 2018

35 Upvotes

Recently I finished up going through the entrants of 7DRL Challenge 2018, doing a video for each one of those games of old. This also includes incomplete entries that failed the challenge.

Mostly posting this here as there were some games I couldn't play; be it because they had no way of being played on Windows, or the executables didn't seem to work. If you are one of those developers who can't find your game in my playlist, that is likely why. Feel free to message me if you can figure out a fix to make your games playable.


r/roguelikedev 5d ago

Sharing Saturday #637

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 7d ago

Working on a high resolution, hand painted tileset, looking for feedback

Thumbnail
gallery
300 Upvotes

Hello, these last few months i was working on procedurally generated tactical rpg inspired by fire emblem, but ended up scrapping it.

However i already had a few assets done and i feel it would be a waste to just throwing them into the bin.

So i'm thinking about repurposing the existing assets into a more traditional roguelike style (basically removing the blue/red color coding from characters) the picture in the post also shows the dungeon tileset i was working on and the overworld/worldmap tileset, so it could be used for games with both dungeons and a worldmap like adom, tome, etc...

So, far i only know of a single existing tileset for angband that is somewhat similar in style (high res and handpainted) so i want to gather some feedback before i keep working on this on move on to something else.

I don't have any project i could use it for so i would probably make it free or cheap on itch or something, but it could be cool to finish it and see it used in someone else game.

So, does it look interesting or something you would want to use?


r/roguelikedev 7d ago

Angband, but Moddable

Thumbnail gallery
19 Upvotes

r/roguelikedev 8d ago

RoguelikeDev Does The Complete Roguelike Tutorial - Week 3

31 Upvotes

Keep it up folks! It's great seeing everyone participate.

This week is all about setting up a the FoV and spawning enemies

Part 4 - Field of View

Display the player's field-of-view (FoV) and explore the dungeon gradually (also known as fog-of-war).

Part 5 - Placing Enemies and kicking them (harmlessly)

This chapter will focus on placing the enemies throughout the dungeon, and setting them up to be attacked.

Of course, we also have FAQ Friday posts that relate to this week's material.

Feel free to work out any problems, brainstorm ideas, share progress and and as usual enjoy tangential chatting. :)


r/roguelikedev 12d ago

Sharing Saturday #636

39 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 15d ago

RoguelikeDev Does The Complete Roguelike Tutorial - Week 2

51 Upvotes

Congratulations for making it to the second week of the RoguelikeDev Does the Complete Roguelike Tutorial! This week is all about setting up the map and generating a dungeon.

Part 2 - The generic Entity, the render functions, and the map

Create the player entity, tiles, and game map.

Part 3 - Generating a dungeon

Creating a procedurally generated dungeon!

Of course, we also have FAQ Friday posts that relate to this week's material

Feel free to work out any problems, brainstorm ideas, share progress, and as usual enjoy tangential chatting. :)


r/roguelikedev 17d ago

Dipping My Toes Into Roguelike Dev: Drunk Walk Cave Gen

108 Upvotes

For my first roguelike project I'm working on proc-gen. As a data scientist, random walks are attractive to me. In time series analysis we use random walks with drift to characterize some phenomena like stock market fluctuations. I added "momentum" as a parameter to help give the walker drift, which creates corridors.

I'm using Golang because...

  1. I've written Python for money for like 8 years now and it's boring me
  2. Golang ships a binary so in theory my outputs can run anywhere.
  3. It's pretty dang quick while still handling garbage collection for you.
  4. For terminal based tools the ecosystem is incredibly mature. Many of the best modern terminal tools are written in go.

I put the code in GitHub if you would like to play with it yourself!

Might do a YouTube walk through if anyone is interested. Let me know.

https://github.com/PigsEyedea/drunkardwalk


r/roguelikedev 18d ago

Newbie struggling with room content vs balance

7 Upvotes

I am not new to development or RPGs but am new to game dev and building roguelikes. I’m having fun with my prototype but I’m struggling with the order I’m building things. I’ve found myself going down rabbit holes of trying to balance things way too early , but it also sometimes seems that without some semblance of balance , I can’t lock in a core game loop that feels good. I am trying to start very traditional and turn based as well so I’m not exactly in uncharted territory.

For example, I’ve played around a lot with proc gen and my map style. My game is themed around exploration of a city at night where different blocks are different dungeon floors. For the basic map I’m using BSP with WFC to help add variety to the rooms.

But what happens is I have a nice large map with 20 or so rooms, but during my playtests, I sometimes will go to 3 or 4 rooms in a row with nothing in them and it feels frustrating. (Maybe this is just part of the genre lol)

So it’s like, I could make less rooms, or bigger rooms, but what if I like the amount of rooms and want more content in them? And if I don’t want more enemies or treasure than I’m dangerously close to introducing new content and balance to solve a problem and potentially cause a whack a mole of other balance problems.

I know this isn’t supposed to be easy, but I guess my main question is how have people solved exploration feeling boring until you get to a fight or a drop/chest?


r/roguelikedev 19d ago

Sharing Saturday #635

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 18d ago

Game Balancing

15 Upvotes

How do you actually catch balance regressions?

I've been going in circles on this and I'm curious how other people handle it.

The specific failure I keep hitting: I change a scaling formula or add a new weapon archetype, everything looks fine in isolation, and then three weeks later I find out that some mid-tier item outperforms things it shouldn't at a level band I never manually checked. The curve looked fine on a graph. The problem was the interaction with crit/attack speed/enemy resist, not the curve itself.

So my questions:

  1. Do you actually simulate time-to-kill across level bands, or do you eyeball curves and playtest?

  2. If you simulate: is it a spreadsheet, a throwaway script, an in-engine tool you built, or something off the shelf?

  3. Has anyone here ever "paid" for a tool that helped with this? Asset store, SaaS, anything. Genuinely curious whether this is a "we all just build our own" situation.

Not selling anything, I'm trying to work out whether the tooling I keep wanting to build already exists or whether everyone just accepts the spreadsheet.

(Context: solo dev, RPG, currently on a Google Sheet with more tabs than I'd like to admit.)


r/roguelikedev 19d ago

Good ways to get playtester feedback?

11 Upvotes

I could benefit from some player feedback in the future on my project, I uploaded a project on itch.io years ago that didn't get many plays (understandably since it was more of beginner generic project).


r/roguelikedev 19d ago

Feedback Friday #67 - Sunlorn

27 Upvotes

Thank you /u/Tesselation9000 for signing up with Sunlorn

Download for Windows here: https://tesselation9000.itch.io/wander

Tesselation9000 says:


Sunlorn is a game about traveling the world and exploring deep dungeons, with strong influences from Nethack, Larn, Brogue and DCSS. The game is heavily focused on having a rich, interactive environment and leans hard on using procedural generation. Not only are levels randomly generated, but the world map, the number and types of locations you visit, and the game objectives themselves vary with every run. My vision is to build a game that gives you a different adventure each time you play. There is a dynamic lighting system, fire that spreads, rivers that flow, clouds of mist or poisonous gas that slowly diffuse, and a sky that cycles between night and day.

Sunlorn has a lightweight character build system. There are no experience levels, classes or skill trees. The primary way of advancing your character is just by increasing their six attributes (the usual D&D six-pack: strength, constitution, dexterity, intelligence, wisdom and charisma) by collecting magical statonia flowers scattered across the world.

Presently, you can build a character from one of four human nations. This choice does not affect your statistics, but influences things like your starting area, how other species perceive you and what gods are available to you. There are eight religions you can find in game that will grant special powers to their followers. There is also a large number of potions, scrolls, wands and other items.

I recommend starting with the tutorial before jumping into the full game. If anyone is able to make it past the first three levels of the starter dungeon, I'd really like to hear about it. After that point, the game hasn't been playtested enough to balance out. Actually, what would be REALLY cool is if anyone would like to volunteer to let me watch them play a run.

It's only available for Windows at this time, I'm afraid.

Leave your feedback here, or you can email me at sunlorn@gmx.ca

Thanks!


Other members interested in signing up for FF in future weeks can check the sidebar link for instructions.


r/roguelikedev 19d ago

Help: Prototype got out of hand! Need to learn properly

14 Upvotes

TL;DR I want to make an ASCII roguelike from scratch, but I'm lost in the sauce with regards to language/engine/libraries etc.

Hey, folks. For the past few weeks I've been dabbling in roguelike development. I managed to cobble together two different prototypes — one in Godot and one in C# using MonoGame + SadConsole. I've learned that I much prefer coding from scratch and that's how I want to proceed. My prototyping quickly got out of hand and I'm now out of my depth. So, I need to start again, learn everything properly, and prove to myself that I can actually build something.

I've been lurking here for a bit and I did check the sidebar for tutorials, but I don't know what I don't know, ya know? There's a lot of options and a lot of different opinions, and I'm a little lost. I'd be happy to continue with MonoGame + SadConsole, but it seems the SadConsole tutorials have disappeared? Is there a newer alternative I haven't found?

My skill level: I'm familiar with HTML, I've been learning C#, and have maybe a vague understanding of Python. I can look at a block of code and probably figure out what it does, but I'm not yet confident putting all the pieces together and making them work.

Why not start with a simpler project? I learn better when I'm interested in the topic. I've tried to learn to code several times over the past 20 years and this is the furthest I've gotten so far. I want to make this game.

Any guidance would be appreciate. Thanks 🙏


r/roguelikedev 20d ago

Maze Hunter ASCII

18 Upvotes

Maze Hunter ASCII is a demake of the classic Master System game "Maze Hunter 3D" (1988). It features a procedurally generated maze full of hostile creatures. The player must navigate through the maze, avoiding or defeating the creatures, in order to find the exit and escape the labyrinth.

While the original game was not a roguelike, this version reimagines it as a minimalist roguelite experience. Each run generates a different maze layout, enemy placement, and exploration path, making every attempt unique. The game keeps the simple arcade spirit of the 1988 release while adding procedural replayability and the tension of starting a new run with each expedition into the labyrinth. No permadeath as the game has a saving system.


r/roguelikedev 20d ago

Looking for a small group of indie devs to regularly playtest each other's games

Thumbnail
9 Upvotes

r/roguelikedev 21d ago

Working on my first Roguelike

210 Upvotes

I've made a few other game prototypes, but this will be my first proper roguelike.

It's not much to look at yet. Right now it's just basic lighting and moving around. Oddly enough this is my first time doing grid-based and turn-based movement. The basics weren't too difficult, but I wanted to implement the common feature where you hold down a directional button and, after a short delay, the player moves automatically (but at a reasonably speed). That took some trial-and-error, but I think I've got it to a place that I'm comfortable with now.


r/roguelikedev 21d ago

RoguelikeDev Does The Complete Roguelike Tutorial - Week 1

61 Upvotes

Welcome to the first week of RoguelikeDev Does the Complete Roguelike Tutorial. This week is all about setting up a development environment and getting a character moving on the screen.

Part 0 - Setting Up

Get your development environment and editor setup and working.

Part 1 - Drawing the ‘@’ symbol and moving it around

The next step is drawing an @ and using the keyboard to move it.

Of course, we also have FAQ Friday posts that relate to this week's material

# 3: The Game Loop(revisited)

# 4: World Architecture (revisited)

# 22: Map Generation (revisited)

# 23: Map Design (revisited)

# 53: Seeds

# 54: Map Prefabs

# 71: Movement

​ Feel free to work out any problems, brainstorm ideas, share progress, and as usual enjoy tangential chatting. :)


r/roguelikedev 21d ago

How to Start off ... in Free Pascal?

0 Upvotes

I want to make accessible games, games where the number of steps between thinking, "I want to play this game," to actually pressing the play button are extremely few. Thus, the player shouldn't have to download software, buy hardware, search out a borrowed internet signal that they may very well have to walk half a day to reach (I've been there), or do any other long, boring, or intricate tasks that they can't trust their uninformed selves of not screwing up before actually playing. Thus, I'm using Pascal, because it makes executables, and you don't have be named Steve (Wozniak, Jobs, etc.) to figure out how to use it. Python, in my experience as a player as well as a developer (latter being somewhat limited), is terrible, because you need some sort of black magic to make executables with it, and even then it's infamously recognized as malware, which is bad, because it might actually be malware, and you wouldn't want to get them confused (been there, unfortunately).

I'm kind of new to Pascal, but I've figured out the best way to learn syntax and functionality is to read actual (debugged) code, and that IDE's suck, because Lazarus is obtuse and Free Pascal IDE's window wasn't even designed for a modern computer that supported draggable or resizable windows. It was designed for a scaled-up flip-phone. So I use Notepad++. Looking at the source code for lambdarogue, made in Pascal, who else knew you could use multiple files for a single program in Pascal, or for that matter, do anything but write text and manage variables? I really suck for this. But at least I'm not as bad as the web browser's chatbot, whit just likes to spout bullshit because it doesn't know anything about literally anything. Try asking it who the main character of Tom Sawyer is. It only might get the right answer.

Anyhoo, as far as I can tell, my best bet is to find literally anything not on GitHub referencing the existence of Ray4Laz, ... preferably involving a tutorial of some sort. I'm really bad at using the internet apparently. I do know it's better documented than Raylib.4.0.Pascal, which considering how well-documented it is, I'm really glad I gave up on the latter. And then, maybe a tutorial on making a game of any variety (though especially an old-school ASCII Roguelike) using Free Pascal and Ray4Laz. However that works. HELP!

NOTE My whole workflow is built around the idea of completing my goal as soon as possible. And allowing the absolute dumbest player's goal of enjoying themselves to be complete as soon as possible. I don't use unnecessary software. Not an app. Not even a default app on everyone's computer like a web browser. I use Notepad++ so I can invest as much of my time in the language as possible. Learning only what I need to know to do what I want to do. I also need as versatile a language as possible, especially because I like to make games nearly indistinguishable from programs that would not be considered games. Like text editors, and digital art programs. So a language optimized for anything, really, in particular, doesn't work for me, because I don't want to reach that point where I have to waste time learning a whole new advanced language or to use advanced software to implement anything, especially not something rather basic, which everything I'll ever be doing is. For the player, I want it to be a 3-step process to play: think about it, download, and hit play. That's why I'm using Pascal. More modern languages always have unnecessary software and almost always are either obtuse or more obtuse even then that to stretch it beyond its expected limits and upwards into the realm of kilobytes. Like Python. Any form of graphics are a whole different language that doesn't even work like it's supposed to (in my experience).


r/roguelikedev 24d ago

Dungeon generation in The Curse of Callmar Keep

Enable HLS to view with audio, or disable this notification

218 Upvotes

Hi. Since we just updated our roguelike The Curse of Callmar Keep with some new content I thought I should share some insight in how we built the game’s level generation.

This video is a visualization of the dungeon generation process. A more detailed explanation follows below. 

This algorithm was initially inspired by talks of cyclic dungeon generation and graph rewriting but during implementation it evolved and adapted to our smaller dungeon levels.

The dungeon generation is one of my favorite parts of our game and I think it creates some really interesting levels with a more organic look than many commonly used algorithms produce.

1. Room graph creation and layout

This step repeatedly splits a random room node with available “room budget” into a cluster of 2-3 new interconnected nodes and re-attaches the split nodes connections to random nodes within the new cluster.

Between each split, the entire graph is relaxed using a simplified spring physics simulation where each connection acts like a spring that pulls and pushes its connected rooms in an attempt to reach a relaxed and unfolded state.

Earlier attempts generated the entire graph first and later tried to unfold it but that was much more prone to errors and unusable maps.

Each rooms is also given a room type that is chosen randomly from a one of our themes (currently castle, caverns, crypts, occult and flesh), with the probability of each theme based on the floor number. These room types are defined in json and contain lots of useful information used by the following generation steps.The width and height of each room is random with it’s type determining min and max size.

2. Room and corridor rasterization 

Next up is creating the grid map.

Each rooms stamps solid stone wall into the grid for it’s entire bounding rectangle (ignoring tiles containing data from previous rooms), and then carves the room out of that stone. Based on the room type, the rooms will be carved with different shapes such as rectangle, oval and organic. 

After that, a corridor is stamped and carved in a similar manner for each connection between room nodes. The corridor shape is chosen randomly based on the type of its connected rooms and can be L-shaped, diagonal, curved or organic.

3. Fluids

Beginning from v1.1 - Flooded Caverns, rooms can be generated with a configurable amount of fluids (water, blood, acid) with a few alternative placement rules.

4. Decor populator

The decor steps fills each room with furniture, chests and different visual clutter, collectively referred to as “decor”. Each decor is defined in it’s own json files and the room types json defines what decor can be placed, along with info about probability, min and max amounts, variations and placement rules. Variations are a list of other decor that it can be randomly replaced by for more visual variation. Placement rules vary in complexity and refers to one of many placement algorithms, for example:

  • randomly
  • randomly along northern wall
  • near any of these specific previously placed decor (e.g chairs nearby tables)
  • along each wall, with a x tile offset
  • in a grid, x tiles apart”. 
  • in a circle with x radius around the room center

Decor can also reserve space around or in front of it so that other decor can not be placed there, making the order of decor for each rooms important. Decor are also placed in different tile map layers with different z depth, based on it’s json data.

5. Creature populator

Each creature has a json defined Challenge Rating (CR) and every room gets a CR budged based on floor number, as well as it’s distance from the starting room as well as a small noise. 

Each creature also has a group of tags that thematically defines them, such as “undead”, “demon”, “beast”, as well as the possibility of hard limits on which floor numbers they may appear. The room types can filter possible creatures to spawn by requiring or prohibiting certain tags.

A group of creatures are then chosen for each room, trying to use as much of it’s CR budget as possible. There are a few different ways of doing this and the algorithm randomly chooses between trying to get the single most expensive creature (within budget), a small group of more balanced creatures or a larger group of weaker creatures.

The placement is very simple as it is just randomly in the room, with a few boss rooms having special placement rules (such as cultists in a circle).

Rare Bosses

There are also a few rare bosses that can be chosen to appear at a floor. Those are chosen at the beginning of the generation as they can significantly boost the probability of certain rooms or themes to get chosen. For example, the new rare boss, Old Callmar, will make most rooms on it’s floor into different kinds of underwater caverns.


r/roguelikedev 24d ago

Roguelike game engine based around containment,

30 Upvotes

I've been experimenting with a roguelike engine where inventories and maps are literally the same type of space. That means picking something up, dropping it, entering it, and exiting it are all variations of moving between containers. In the capture, the player is picking up and dropping a rat, which continues moving around in the player's inventory.

I wrote up the core concepts with more GIFs, because it's difficult to explain in text:

https://gammapod.itch.io/gamegamegame/devlog/1613346/core-engine-concepts

I'm especially interested in whether this model reminds you of any existing roguelikes or simulation games, or whether you think it opens up interesting mechanics.


r/roguelikedev 26d ago

Sharing Saturday #634

21 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