There are two things you can do to further improve randomness. First is "theming", which is basically basic rules each dungeon "floor" has to adhere, including scaling rules for rising difficulty, and should be art-asset agnostic. Theming also works for sub-paths of dungeons, and allow for raising the difficulty of certain sub-paths that reward those who want to progress that path, for example. The second is having a large library of static rooms that infrequently appear independent of current theming, don't repeat during a gameplay loop and are not guaranteed to be generated. These are rooms you polish to the highest degree and flex your level design muscles with hand-made traps, challenges and so on.
My friend and I just started making our own indie game just a few weeks before the whole unity thing. Godot is a learning process but more than worth it. Thank you for the helpful tutorial!
Really great video! I've struggled with map generation for a long time, especially when trying to procedurally generate maps for building sections. I did a lot of research on various platformers with procedural maps, like Dead Cells, Neon Abyss, and Rogue Legacy. These are very fun games and could be a great source of inspiration for your project. Again, thank you for sharing your method!
Few years ago I tried making 3D dungeon generator with no prior experience in procedural generation. I've stumbled upon similar problems, but your solutions are much more elegant, grats
Great video. You explained everything really well and i think this will help a lot of people. (Also the game looks really good, I´m looking forward to seeing more of it).
I personally don't mind there being a boss room right next to the player's starting room... as long as said boss room was locked by a door that required either collecting all of the keys required to unlock it, or flipping all the switches that were keeping the door locked. Take E2M6 from Doom, which has its level exit very close to its level start, but the exit is sealed behind 3 colored doors that each require its own same-colored key to unlock, which are all dispersed at the ends of 3 separate branches throughout the rest of this not-so-linear level.
The connections have a dedicated class called "Connection" attached to it, in the very first frame we search for all child elements of each room that are of type Connection, which is also inheriting from Node2D Each connection can also only be either closed or open, which is decided by a minimum amount of open doors during the instantiation of the room itself, so we only need to loop through one single list of all remaining open doors when attaching the corridors once
Hey !, Can you Please Make how to export game from godot 4 to android ....i saw a lot of videos but in the end when i install my game in android 8 the game is stopped
Ok, this is just a small thought. Do you think your game could do better with Procedural Animation. Again not that experienced but just looked like it could add flavour if you had level design that suited procedural animation. Somewhat like the game RainWorld. I thought about this when watching one of your previous video about rigging and animating the character. Anyways great content, watching you guys kind of motivates me too. Keep up the great work! Ok this is after watching the entire video. Lol your previous game is also somewhat similar to a game called Webbed. It ofc has far more advanced mechanics but has a very similar base concept.
Yes, the "world" of our game looks a bit stiff right now and we thought about improving it with some parallax effects, flickering lights etc. But now that you mentioned it, procedural animations might be a great addition. The levels of RainWorld look so alive! The only problem I see is that it requires a lot of work ;) We want to concentrate on the main mechanics of the game first but if we improve the graphics, we will definitely think about it. Thanks! Actually we used some procedural animations in oakley's adventure, the legs automatically adjust their position based on the surroundings. Yeah, it's a bit similar to Webbed, but we swear we did not copy :b, the main inspiration for oakley's adventure was a mini game from New Super Mario Bros. for the DS called "Mario's Slides".
The problem with this is that dungeons are structures made by sentient creatures. Form should then follow function. Even when natural caves are used by people the layout should make some sense. It doesn't have to be perfect, but corridors should lead to something. I think the algorithm should start with the positioning of the rooms, then figure out how those should be connected. With for instance waveform collapse. You could have a post sanitation step removing unaligned rooms and weird corridors or you could place the rooms along strata, so they are less random. Currently there is quite some footage floating around of people living in underground dungeons in Gaza. They seem to have given some thought to the structure and have all kinds of rooms in there. Maybe the general public got an insight into what a dungeon can be and you have to up your game.....then again, if it's a fun game it doesn't matter.
"dungeons are structures made by sentient creatures" THIS. You've nailed it. But, i believe, the word "dungeon" is from DnD and means almost anything but outdoors.
There are two things you can do to further improve randomness. First is "theming", which is basically basic rules each dungeon "floor" has to adhere, including scaling rules for rising difficulty, and should be art-asset agnostic. Theming also works for sub-paths of dungeons, and allow for raising the difficulty of certain sub-paths that reward those who want to progress that path, for example.
The second is having a large library of static rooms that infrequently appear independent of current theming, don't repeat during a gameplay loop and are not guaranteed to be generated. These are rooms you polish to the highest degree and flex your level design muscles with hand-made traps, challenges and so on.
My friend and I just started making our own indie game just a few weeks before the whole unity thing. Godot is a learning process but more than worth it. Thank you for the helpful tutorial!
Welcome on board in the indie development scene ;)
What kind of game is it? Hope you're having a ton of fun with it!
Really great video! I've struggled with map generation for a long time, especially when trying to procedurally generate maps for building sections. I did a lot of research on various platformers with procedural maps, like Dead Cells, Neon Abyss, and Rogue Legacy. These are very fun games and could be a great source of inspiration for your project. Again, thank you for sharing your method!
Thanks a lot! Yeah, we already played Dead Cells and Rogue Legacy, but we will check out Neon Abyss as well!
Few years ago I tried making 3D dungeon generator with no prior experience in procedural generation. I've stumbled upon similar problems, but your solutions are much more elegant, grats
really nice breakdown, can't wait to see more devlogs!
** 3 hours later ** XD this is too real
Great video. You explained everything really well and i think this will help a lot of people. (Also the game looks really good, I´m looking forward to seeing more of it).
Thanks!
Great video! I really like the look of your game so far. Can't wait to see more!
Sollution : wave collapse algorithm :) have fun
Thanks!
Has anyone seen it implemented in GDScript? I made one attempt but gave it up for now.
I personally don't mind there being a boss room right next to the player's starting room... as long as said boss room was locked by a door that required either collecting all of the keys required to unlock it, or flipping all the switches that were keeping the door locked.
Take E2M6 from Doom, which has its level exit very close to its level start, but the exit is sealed behind 3 colored doors that each require its own same-colored key to unlock, which are all dispersed at the ends of 3 separate branches throughout the rest of this not-so-linear level.
there was a game with random dungeons called Azure Dreams. i think the boss rooms were every 10th floor of the dungeon/tower
Nice video =)
Also, there is one way platform in godot. So you may use it here 06:08.
Thank goodness, we were afraid we would have to implement that completely ourselves ;)
Very cool!
Any recommendations on good resources to look at?
I want to try to add some procesural swtupa to my brick breaker game!
but how do you know where are the doors ('connections in this case')? do you mark them with a node3d/ position index?
The connections have a dedicated class called "Connection" attached to it, in the very first frame we search for all child elements of each room that are of type Connection, which is also inheriting from Node2D
Each connection can also only be either closed or open, which is decided by a minimum amount of open doors during the instantiation of the room itself, so we only need to loop through one single list of all remaining open doors when attaching the corridors once
Awesome video, are you able to drop the code or a tutorial will be even better!
Hey !, Can you Please Make how to export game from godot 4 to android ....i saw a lot of videos but in the end when i install my game in android 8 the game is stopped
what is the code????
Ok, this is just a small thought. Do you think your game could do better with Procedural Animation. Again not that experienced but just looked like it could add flavour if you had level design that suited procedural animation. Somewhat like the game RainWorld. I thought about this when watching one of your previous video about rigging and animating the character.
Anyways great content, watching you guys kind of motivates me too. Keep up the great work!
Ok this is after watching the entire video. Lol your previous game is also somewhat similar to a game called Webbed. It ofc has far more advanced mechanics but has a very similar base concept.
Yes, the "world" of our game looks a bit stiff right now and we thought about improving it with some parallax effects, flickering lights etc. But now that you mentioned it, procedural animations might be a great addition. The levels of RainWorld look so alive!
The only problem I see is that it requires a lot of work ;)
We want to concentrate on the main mechanics of the game first but if we improve the graphics, we will definitely think about it. Thanks!
Actually we used some procedural animations in oakley's adventure, the legs automatically adjust their position based on the surroundings.
Yeah, it's a bit similar to Webbed, but we swear we did not copy :b, the main inspiration for oakley's adventure was a mini game from New Super Mario Bros. for the DS called "Mario's Slides".
The problem with this is that dungeons are structures made by sentient creatures. Form should then follow function. Even when natural caves are used by people the layout should make some sense. It doesn't have to be perfect, but corridors should lead to something. I think the algorithm should start with the positioning of the rooms, then figure out how those should be connected. With for instance waveform collapse. You could have a post sanitation step removing unaligned rooms and weird corridors or you could place the rooms along strata, so they are less random.
Currently there is quite some footage floating around of people living in underground dungeons in Gaza. They seem to have given some thought to the structure and have all kinds of rooms in there. Maybe the general public got an insight into what a dungeon can be and you have to up your game.....then again, if it's a fun game it doesn't matter.
"dungeons are structures made by sentient creatures"
THIS.
You've nailed it. But, i believe, the word "dungeon" is from DnD and means almost anything but outdoors.
What is the second question in life?