Herbert Wolverson - Procedural Map Generation Techniques

Sdílet
Vložit
  • čas přidán 10. 06. 2024
  • This talk is from the 2020 virtual Roguelike Celebration:
    roguelike.club/event2020.html
    Herbert has been a hobby game developer since the 1990s, and is the developer of Nox Futura, One Knight in the Dungeon, and several 7DRL projects. Author of the Rust Roguelike Tutorial, and upcoming book with the working title Learn Rust by Making a Game book (Pragmatic Bookshelf, expected release this winter). He's a regular contributor to the subreddit r/roguelikedev.
    This talk is a detailed survey of procedural map generation, including integration of hand-crafted "prefabs"/vaults. While the source material is written in Rust, it's readily abstracted to psuedocode and presented in a language agnostic fashion. Techniques include: Simple room placement, BSP room placement, BSP interiors, cellular automata, drunkard's walk, mazes, diffusion-limited aggregation, voronoi, wave function collapse, and prefabs. Sprinkle in a little spice by adding symmetry, layering/combining generators, different corridor algorithms, and doors placement.
    Find him on Twitter: / herberticus
    Roguelike Tutorial section 3 techniques and illustrations: bfnightly.bracketproductions.c...
    Rust Roguelike Tutorial: bfnightly.bracketproductions.c...
  • Hry

Komentáře • 58

  • @henrykkaufman1488
    @henrykkaufman1488 Před 3 lety +237

    Dude, that's one of the most useful presentations on game programming I've ever seen.

  • @JoeGeorge319
    @JoeGeorge319 Před 2 lety +15

    Man I wish this talk just went for another 30 minutes, very nice

  • @alexanderdiogenes8067
    @alexanderdiogenes8067 Před 3 lety +28

    Just finished Section 3 of your Rust Roguelike tutorial (decoupling the map from the viewport). It is fantastic. I've learned so much, and I've fallen in love with Rust as a language! Thanks for bracketlib and rltk, in particular.

    • @thebracket
      @thebracket Před 3 lety +10

      You're welcome! I'm so glad people are enjoying it - I've had a blast writing it. :-)

  • @Zadhompl
    @Zadhompl Před 2 lety +28

    Topic of my thesis is based around procedural generation and this video alone provided enough info to speed up my progress threefold.
    Cheers, Herbert Wolverson is a living legend in my eyes.

    • @Dukkz24
      @Dukkz24 Před 6 měsíci

      Would you mind sharing some info on Discord with me by chance? Either personally or maybe some references/material you have on the matter? I'm really interested in starting to learn this topic, but most info is very high level, doesn't really get into the how's.

  • @joewilliams8286
    @joewilliams8286 Před rokem +2

    I keep coming back to this one, brilliant resource

  • @Vedranation
    @Vedranation Před 2 měsíci +1

    Amazing presentation. Clean, easy to understand, with great visualition. Thank you

  • @ZackLivestone
    @ZackLivestone Před 3 lety +8

    Solid rapid fire overview, really appreciated!

  • @itsfela
    @itsfela Před 2 lety +1

    I always come back to this one

  • @jspiro
    @jspiro Před 2 lety +1

    This deserves thousands more comments. Thanks for putting this catalog together for us!

  • @guywithknife
    @guywithknife Před 3 lety +7

    This was a really great talk, thank you! I've read all the books I could find on PCG and watched all the GDC talks, but this talk is better than most. Its so clear and to the point. Good job.

  • @naphipps28219
    @naphipps28219 Před 3 lety +24

    Another technique I love to use is domain warping with perturb techniques. (Inigo Quilez has awesome articles on these topics, for those interested.)

    • @shitheadjohnson2797
      @shitheadjohnson2797 Před 2 lety +1

      Inigo Quilez taught me about distance field raytracing and i got this amazing procedural terrain out of it in not many lines of code, the problem with it is getting the units on it because it has an instancing problem when i did it. really good indie style

  • @olmrgreen1904
    @olmrgreen1904 Před rokem +1

    Awesome video! I've learned so much in a very easy and basic way about things I thought were complicated as hell.

  • @RetsaGames
    @RetsaGames Před 3 lety +1

    Amazing talk, makes everything look so simple

  • @arlowicks9359
    @arlowicks9359 Před rokem

    Probably one of the best resources online for procedural map generation principles.

  • @hugobarbachano1831
    @hugobarbachano1831 Před 3 lety +3

    Awesome, can´t wait to tinker with this !

  • @Galakyllz
    @Galakyllz Před rokem

    This presentation was great.

  • @KiKeoLiVa
    @KiKeoLiVa Před 2 lety

    Really great video, thank you!

  • @KoN312
    @KoN312 Před 3 lety +8

    really interesting and informative. i'm not that big of a programmer, but i tried things like this and played around with rooms and corridors in python and pygame(just some rooms and corridors).. i was thinking way too complicated. the video really opened my eyes how easy it could be if you think just a bit around the corner. thanks!

  • @bobbob9821
    @bobbob9821 Před 9 měsíci

    Giving me the idea to place tile objects first and then do the subtraction with a separate object just saved me a lot of time messing with noisemaps in arrays.

  • @Algorhythmic
    @Algorhythmic Před 3 lety +1

    Very useful info. Love the humor as well.

  • @pik910
    @pik910 Před rokem +1

    If you want to make a Voronoi diagram in a discrete space a fast and easy way to do that is to grow it. E.g. for Manhattan distance: draw the border of a rectangle around the seed each step and grow that. You can stop growing an individual seed if no empty pixels were found. That makes it very fast even with a high amount of seeds.

  • @davidxdhloqud
    @davidxdhloqud Před 2 lety

    Esto vale millones! Gracias! :D

  • @nztuber
    @nztuber Před 7 měsíci

    Excellent, thank you

  • @AleksandrK51228ruswi
    @AleksandrK51228ruswi Před 11 měsíci

    Very helpful, awesome!

  • @markvador6667
    @markvador6667 Před 2 lety

    Amazing ! Thanks you a lot !!

  • @bordel6121
    @bordel6121 Před 2 lety

    Great talk, I learned stuff

  • @nighttraveler9993
    @nighttraveler9993 Před 3 lety +2

    Love it

  • @darkfrei2
    @darkfrei2 Před 2 lety +1

    You can use the DLA-cluster system, but in needs sometimes too much time to generation.

  • @oddminngdev9844
    @oddminngdev9844 Před rokem

    This man is awesome.

  • @PabloGaraguso
    @PabloGaraguso Před rokem

    Excellent

  • @chien461
    @chien461 Před 3 lety +4

    Fractal Brownian Motion!

    • @thebracket
      @thebracket Před 3 lety +3

      That would be a fascinating topic! I'll add it to my (long) list of ideas. :-)

  • @deepdarkdown
    @deepdarkdown Před 2 lety

    nice overview.

  • @shitheadjohnson2797
    @shitheadjohnson2797 Před 2 lety +1

    those voronoi cells might make a pretty floor in doom.

  • @lophyre1380
    @lophyre1380 Před 2 měsíci

    I do not understand how the BSP leads to no rejection though. We have just divided the map into half a couple of times? 🤔

  • @JW-fd8sh
    @JW-fd8sh Před rokem

    Is there any source code available for us to review?

  • @RobVespa
    @RobVespa Před 3 lety +1

    Oh, wow. I just bought Herbert's Rust book, which is still in beta...

  • @smiley_1000
    @smiley_1000 Před 2 lety +1

    Enjoyable Presenter

  • @omeritachiquita
    @omeritachiquita Před 3 lety +1

    😙👌

  • @ajinkyax
    @ajinkyax Před 3 lety +1

    Best game dev. And Rust is a great choice

  • @awesomegamedev
    @awesomegamedev Před 2 lety +8

    Great presentation with a ton of content!
    But it starts at 4:00
    Thank me for saving you 4 minutes:)

  • @RetroGamerEightyOne
    @RetroGamerEightyOne Před 2 lety

    What’s the reasoning behind Python being the preferred rogue like language?

  • @torcher5023
    @torcher5023 Před 3 lety +7

    Есть здесь русские любители рыгаликов мммм?

    • @maksimhapeyenka2435
      @maksimhapeyenka2435 Před 3 lety +1

      есть русские разрабы только)))

    • @torcher5023
      @torcher5023 Před 3 lety +1

      Рогалики делаешь? Только не говори, что на юнити.

    • @maksimhapeyenka2435
      @maksimhapeyenka2435 Před 3 lety +2

      @@torcher5023 ваще libgdx использую, но заинтересовал rust очень сильно, вот и смотрю по нему материал. На этот видос случайно наткнулся, я просто хотел посмотреть отзывы на книгу чела, который в этом видосе лекцию дает.