Diablo Dungeon Generator

Diablo-Like Dungeon Generator
Multiplayer Blueprint Tutorial
Difficulty: Medium

Hey everyone!

Here is my series of tutorials about building a random level generator system that behaves like Diablo 3 system:

The tutorial is in Blueprint only and supports multiplayer. I’m programming without preparation and I’m recording / explaining in the same time. Sometimes it can slow down the process but it also highlights the tips & tricks used to debug / tackle the issues. There are over 25 hours of tutorials. The main features of the level generator are based off of this level design talk by Ed Hanes.

You can download the tutorial project here: DiabloDungeon.rar - Google Drive (4.17)

If you have any question or feedback, feel free to post them here.

I wish you all good luck and have fun in your projects :slight_smile:

Hey @Yun-Kun - Thank you so much for this tutorial.

It is really interesting :slight_smile:

Really good, I’ve been enjoying watching it - thanks!

Glad you liked it!

The remaining features I’d like to develop are:

  • forcing the placement of a specific tile in the dungeon (a corridor, corner, three-way, four-way or dead-end)
  • forcing the end tile to have a specific rotation
  • making it multiplayer
  • gizmo system like Diablo 3 (for enemy and content generation) - but a much more simplified version (I’m no Blizzard feature programmer :p)
  • level building workflow - “acceptable” efficiency using built-in tools and “pretty good” efficiency using Prefab Tool

Tell me if you have any feedback.

See you in the next update, and in the meantime, good luck and have fun everyone :slight_smile:

Lots of new videos added :slight_smile:

I’m now heading towards making all of this replicated!

Good luck and have fun in your projects everyone .

Big update!

Added lots of videos once again! The series is soon over.

Only remain few topics… like the tile creation workflow (briefly).

Hope you enjoy!

I have been following along with your tutorial, it is going pretty good so far. Looking forward to advancing more with your tutorials, really glad you finally went widescreen. :slight_smile:

It should always be Widescreen, the 4/3 is a bug of Shadowplay because of my second screen. I try to beat it but it always come back =/

The series’ complete. There are over 25 hours of tutorial!

I’ll be adding an introduction video soon and I’ll call this ‘done’.

Hope you guys like it :slight_smile:

Anyone care to share a solution to using Gizmos which can be marked as picked up/destroyed etc. As the tiles even when re-loaded from previous save are constructed from a structure the gizmos are too re-generated this makes it a bit harder than just marking a specific actor to not spawn or be destroyed once spawned. The actor is not saved rather re-generated from selecting the correct tile from a saved tile structure. It seems using the struct STile or SBroadcastedTile would be logical IE a “destroyed” bool for each gizmo but not too sure Also have to contemplate how the spawned actor will communicate to the correct tile struct optimally.
Cheers. Excellent Series…good job!!!

There are many different approaches to this.

One of them (which is not necessarily the best one / the most optimized / the best suited for your project) would be to associate a unique ID (int or name or whatever) to each of your “Unique Objects”.

When a player picks up this object, you need to save in a SaveGame the ID of the item being picked up.

When respawning a level and more specifically a Gizmo, you check if the Gizmo ID is contained within the stored list of already picked up ID’s. If it is contained within this pack, you do not spawn it.