Herbert Wolverson - Procedural Map Generation Techniques

Поділитися
Вставка
  • Опубліковано 14 тра 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...
  • Ігри

КОМЕНТАРІ • 59

  • @henrykkaufman1488
    @henrykkaufman1488 3 роки тому +233

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

  • @JoeGeorge319
    @JoeGeorge319 2 роки тому +11

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

  • @joewilliams8286
    @joewilliams8286 Рік тому +2

    I keep coming back to this one, brilliant resource

  • @ZackLivestone
    @ZackLivestone 3 роки тому +8

    Solid rapid fire overview, really appreciated!

  • @Vedranation
    @Vedranation Місяць тому +1

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

  • @jspiro
    @jspiro 2 роки тому +1

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

  • @itsfela
    @itsfela 2 роки тому +1

    I always come back to this one

  • @RetsaGames
    @RetsaGames 2 роки тому +1

    Amazing talk, makes everything look so simple

  • @morph611
    @morph611 Рік тому

    Thanks Herbert. I love your book!

  • @Zadhompl
    @Zadhompl 2 роки тому +27

    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 5 місяців тому

      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.

  • @olmrgreen1904
    @olmrgreen1904 Рік тому +1

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

  • @Galakyllz
    @Galakyllz Рік тому

    This presentation was great.

  • @alexanderdiogenes8067
    @alexanderdiogenes8067 3 роки тому +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 3 роки тому +10

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

  • @hugobarbachano1831
    @hugobarbachano1831 3 роки тому +3

    Awesome, can´t wait to tinker with this !

  • @arlowicks9359
    @arlowicks9359 Рік тому

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

  • @guywithknife
    @guywithknife 2 роки тому +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.

  • @KiKeoLiVa
    @KiKeoLiVa 2 роки тому

    Really great video, thank you!

  • @KoN312
    @KoN312 3 роки тому +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!

  • @Algorhythmic
    @Algorhythmic 2 роки тому +1

    Very useful info. Love the humor as well.

  • @naphipps28219
    @naphipps28219 3 роки тому +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 2 роки тому +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

  • @AleksandrK51228ruswi
    @AleksandrK51228ruswi 10 місяців тому

    Very helpful, awesome!

  • @markvador6667
    @markvador6667 2 роки тому

    Amazing ! Thanks you a lot !!

  • @nztuber
    @nztuber 6 місяців тому

    Excellent, thank you

  • @bordel6121
    @bordel6121 2 роки тому

    Great talk, I learned stuff

  • @bobbob9821
    @bobbob9821 9 місяців тому

    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.

  • @davidxdhloqud
    @davidxdhloqud 2 роки тому

    Esto vale millones! Gracias! :D

  • @pik910
    @pik910 Рік тому +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.

  • @nighttraveler9993
    @nighttraveler9993 3 роки тому +2

    Love it

  • @oddminngdev9844
    @oddminngdev9844 Рік тому

    This man is awesome.

  • @PabloGaraguso
    @PabloGaraguso Рік тому

    Excellent

  • @deepdarkdown
    @deepdarkdown 2 роки тому

    nice overview.

  • @darkfrei2
    @darkfrei2 2 роки тому +1

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

  • @chien461
    @chien461 3 роки тому +4

    Fractal Brownian Motion!

    • @thebracket
      @thebracket 3 роки тому +3

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

  • @ajinkyax
    @ajinkyax 3 роки тому +1

    Best game dev. And Rust is a great choice

  • @shitheadjohnson2797
    @shitheadjohnson2797 2 роки тому +1

    those voronoi cells might make a pretty floor in doom.

  • @lophyre1380
    @lophyre1380 Місяць тому

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

  • @smiley_1000
    @smiley_1000 2 роки тому +1

    Enjoyable Presenter

  • @RobVespa
    @RobVespa 3 роки тому +1

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

  • @JW-fd8sh
    @JW-fd8sh Рік тому

    Is there any source code available for us to review?

  • @omeritachiquita
    @omeritachiquita 3 роки тому +1

    😙👌

  • @awesomegamedev
    @awesomegamedev 2 роки тому +8

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

  • @RetroGamerEightyOne
    @RetroGamerEightyOne 2 роки тому

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

  • @torcher5023
    @torcher5023 3 роки тому +7

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

    • @maksimhapeyenka2435
      @maksimhapeyenka2435 3 роки тому +1

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

    • @torcher5023
      @torcher5023 3 роки тому +1

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

    • @maksimhapeyenka2435
      @maksimhapeyenka2435 3 роки тому +2

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