#Roguelike folks: I'm going to re-post my new #Moonring dungeon generator algorithm with better formatting. So here goes...
1) First of all, all my dungeons start as a lower-res 'flow diagram'. This is useful because it separates the tile-by-tile detail of the final map from the larger scale ideas about how I want the dungeon to work, and where 'drama' occurs.
So, "B+M+E" would be: Begin, Monster, End and all the + indicate doors between the various rooms. This can both be generated, and also edited with my flow editor:
'C' means 'Chest room', a number indicates either a locked door, or a room with a method of unlocking the same-numbered locked door. So that's the general idea of these 'flow maps'. Now on to generation...
2) First, I generate a 'snake' which wiggles down the screen. "." is a room, and "+" is a door, 'B' and 'E' are 'Beginning' and 'End'. But this dungeon is boring, so I decide I'm going to add a blockage at some point along the snake, and a way to get past it...
3) This shows that we've a monster 'M' and a locked door of some sort by the monster '#'. We need a place to put a 'key' so I add a snake to the main snake. I also give rooms *after* the blockage a different code: ",". The reasons will become clear later.
4) But dead-ends are boring, right? Sure, but if you just add links to the existing tunnels at random, you risk making a shortcut PAST THE BLOCKAGE! But since we've coded all rooms past the blockage with ',' we can check that easily, and only link to '.' rooms.
The arrow just indicates a one-way door, which I've chosen as my door-type for these loops. You can choose not to, it's just a flavour choice.
5) We can now repeat the process and add more 'snakes' branching off the main snake, and set their room-types to either pre-blockage '.' or post-blockage ','.
6) And finally, we can make loops out of these extra arms, only linking rooms to ones of the same type.
So, why do this at all? Why not use one of the many other maze/dungeon generation routines? My reason is that they all seem to fall into two categories:
a) complex generation
b) complex analysis
I dislike both!
Complex Generation assumes you've run a bunch of tools to ensure no game-breaking orders (keys locked behind the doors they unlock, for example) or grammar-based approaches. I've tried these and found my attempts ended up making very 'samey' dungeons after a while.
Complex Analysis assumes you use something like Wang Tiles to generate a complex space... and then try to make sense of it, adding the dramatic flow back into the mix *where possible*. For me, this is bad, because I want the drama to be guaranteed on certain levels.
My approach (which is really just a riff on Spelunky's) uses really simple algorithms, focuses on 'flow' first, and still guarantees zero impossible dungeons. It works about 10x faster than my previous Complex Generations and makes more meaningful dungeons than Complex Analysis.
Anyway, feel free to ask questions and I hope this helps someone out there in #Roguelike space!
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I've been asked to opine on design in modern games. So, here goes:
I think we're in a dangerous place. We've created a massive library of 'best practices' and 'design methodologies' and 'interface standards' that have made everything in AAA smooth and homogenous.
Yuck.
We've engagement metrics for 'how often enemy encounters should appear', 'how high your character should jump relative to his size', 'how far the player should be able to see', 'how long missions should last', 'how often characters should talk' etc.
We effectively have our own 'Save the Cat' playbook and it's doing the same thing to games as that toxic dump has had on movies - especially Open World games. As games cost more to develop it's only going to get worse.
Hey, you. Your baby is weird-looking. I know, I know. You think I'm talking to someone else. I'm not. Ever wondered why people compare babies to Churchill and Hitchcock? It's not because those guys were pretty. Yeah. Now look at your baby again. Brrrr.
(Time to outrage, 3... 2... 1...)
The picture below isn't horrific because it's unrealistic. It's horrific because it's what babies look like when you remove that 'parental filter'. i.redd.it/cgckkohesrq01.…
To all those out there in game-dev world: if your company makes you feel kind of uncomfortable because the bro-ey elements are offputtingly dominant, and your leadership makes sexist remarks without consequence...
...the problem isn't you.
...but the problem is also you.
Unchecked shitty behaviour isn't your *fault*, but maintaining a culture that supports this shit without question *is* kind of your fault... or more accurately, something you can do something about. If you're in a position of privilege, you *can* help.
"Uh. This is making me uncomfortable."
"Can we not, please?"
"Hmm. I'm not sure that's appropriate."
"This right here seems awfully close to an 'HR issue'."
"I've got a problem with this wording..."
etc.
It's interesting that #Fable's forebear, Wishworld is repeatedly met with the same comments: "Lol, no way that'd work on an Xbox! How delusional!"
This thinking is rather odd for a number of reasons:
1) We were initially working on PC. We were 'considering' console ports at the time, but it's only when we shifted to Project Ego that we started working with the brand new XBox hardware.
2) The reason we stopped making it was that Sacrifice was announced 4 months after we pitched to that game's publisher, and it was doing 60% of the things we planned.