Hacker News new | past | comments | ask | show | jobs | submit login
Dungeon Generation in Diablo 1 (boristhebrave.com)
253 points by noad 3 months ago | hide | past | web | favorite | 30 comments

I developed/run a private server for the game that many members of the Diablo team made after Diablo II (Hellgate: London) and the same technique is used for random dungeon generation, but using 3D assets and 2d flat floormap shapes to make the combinations. In fact, it's even called the same thing, DRLG!

Sometimes the game tries a few thousand combinations when a player enters a dungeon before being satisfied by the results (there are configurable constraint sets).

Hellgate: London is fun!! I haven't played it in a long time though.

The random dungeon generation was, for me, absolutely the top killer feature of the game and was the main thing that kept me coming back through so many replays.

For some reason, not a single other similar game I've played has had the same effect on me. Maybe there's bias going on (obviously I was younger then), but I've played a huge number of games since, and not a single one quite scratched the same itch. I will be saving this article.

Did Diablo II or III have the same draw on you?

They really didn't. I can't fully pinpoint why, but it had something to do with the combination of the level and all its contents being randomized a certain way, which from what I experienced of the sequels wasn't replicated enough for me.

I enjoyed the descent of Diablo 1 a bit more. First play through you’re descending into this place that seems to get darker and more dire the deeper you go. Diablo 2 was probably the best adventure of all of them, but Diablo 1 made up for a meh story with the dungeon design.

Funny but as a kid I devoured and adored D2. I played it many many times through. Later I decided to try D1 and I couldn’t get past how slow it felt, and in some ways primitive.

I loved both for different reasons.

Diablo 2 was a bit more on the rails to me: if I play a specific amount of time, I can acquire the specific pieces of gear that I want for a specific build. Diablo 1 it felt like you were chasing pieces, but grand scheme of things, you just wanted the best in slot more often than not. Story was more there too and the quests appreciable. They didn’t phone in the sequel and really delivered a great game.

Diablo 1, however, I enjoyed stacking Intelligence as much as possible so that I could have pretty substantial levels of casting skills from books (since you had to have x amount of points in it for the next level book to work). In that way, it felt like you could have a God Character in a way that D2’s 20 max assignable (more could be gained as mods on gear) didn’t. You had to also work at that, which felt rewarding.

I don't think I've heard Diablo called a roguelike before. It's got the dungeon crawling and procedural generation, but the permanent death seems to be one of the most quintessential features of the genre. Diablo does not have that.

Diablo is basically Angband in real time, with commercial polish.

If you choose to define Roguelike to include permadeath or that it must be turn based, then it is not, of course. But if Diablo is not a roguelike, its next door neighbor is.

David Brevik’s original plan was for it to be a turn based game with permadeath.

These days games like Diablo are often put in the genre "roguelite" indicating a roguelike but with some toned down or missing features (e.g. permadeath, turn-based, ascii...).

There is the permanent death. Though Diablo 1 doesn't have such system, there has been Hard Core mode since Diablo 2.

Yeah, fair. But that's an optional niche game mode and this piece is about Diablo 1.

Another comment linked the creator's postmortem; he said he was influenced by roguelikes but specifically called out that Diablo doesn't have permadeath as opposed to roguelikes. His original design doc included permadeath, but it didn't make it far into production.

From the first day I played Diablo I realized it was basically the most polished and fantastic Angband I had ever played.

I never considered permadeath an important part of Angband or any other roguelike because I always scummed.

I thought that was interesting as well. It seems like a fair comparison, and permanent death for a mass-market game in 1996 would have been a big non-starter.

Coincidentally, I played Diablo II with a self-imposed permanent death rule several years ago. I made it to the... Desert, I think it was? and then got killed and never really got back into the game. It just wasn't designed for that.

I've heard it described as a 'rogue-lite'

In Diablo you have only one life, you don't respawn after death like in Diablo 2 or 3. You do have save games however.

Diablo II and III have hardcore mode which makes death permanent, which IMO makes the game much more fun.

I don't think any of this was mentioned in Brevik's postmortem.


It blew my mind a little when he said the name “Diablo” came from Mt. Diablo, which sits practically on top of Silicon Valley.

It's really not that close (and not very big, either).

Calling Wang tiles “marching squares” will confuse the heck out of any graphics programmer.

I called it marching squares because that is what it is. It takes an array of bits, and for each group of 4 of them, finds one of 16 cases.

It's not wang tiles - Wang tiles do not actually specify how you pick them, and the diablo tile sets do not fit together the way that wang tiles do.

That’s the algorithm, sure. The tiles aren’t marching squares though, and calling them after how they were generated is confusing! If they produced rectangular or other non-square tiles would you still insist on not calling them Wang tiles?

I'm not sure what you are expecting. I'm describing the algorithm used, so yes, I used the terminology of the algorithm.

Wang tiles doesn't say anything specific about the arrangment of tiles as there are many tilesets that have the Wang Tile property.

And Diablo tiles aren't wang tiles, it would be inaccurate to describe them so. It's not to do with the shape, it's to do with connectivity. You can have a floor tile north-west of a wall tile, you can have dirt north-west of a wall, you can have floor north-west of floor, but you cannot have dirt north west of floor. Wang tiles do not permit restrictions like that.

> I'm not sure what you are expecting.

> The tiles aren’t marching squares though, and calling them after how they were generated is confusing!

I don’t understand how this could be misunderstood by someone reading in good faith. I think that, if a reader remarks “this is confusing because…”, you shouldn’t tell them they’re wrong and it’s not confusing.

Thanks for the heads up before I read the article!

As a kid I never thought about it's level design, but retroactively I have huge respect for the developers (and to the author of the article for bring it to me).

I wonder if such things are taught in today's game design courses.

No. Kids going through game programs can barely program, except for a few outliers. The courses tend to be quite lightweight, and the programs tend to be very non-selective. They tend to be marketed to and attract poor students who couldn't get into / don't see the value in a real university.

Instructors may be aware of these techniques but would be hard-pressed to turn them into assignments that wouldn't fail all but a couple of people in the class.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact