Herbert Wolverson - Procedural Map Generation Techniques

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 มิ.ย. 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...
  • เกม

ความคิดเห็น • 58

  • @henrykkaufman1488
    @henrykkaufman1488 3 ปีที่แล้ว +237

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

    • @beefwenceworth8275
      @beefwenceworth8275 ปีที่แล้ว

      I'll second that. It's a goldmine of information.

    • @mattsadventureswithart5764
      @mattsadventureswithart5764 4 หลายเดือนก่อน

      ​@@beefwenceworth8275I'll third it.
      This was extremely interesting.

  • @JoeGeorge319
    @JoeGeorge319 2 ปีที่แล้ว +14

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

  • @Zadhompl
    @Zadhompl 2 ปีที่แล้ว +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 6 หลายเดือนก่อน

      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 ปีที่แล้ว +2

    I keep coming back to this one, brilliant resource

  • @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. :-)

  • @ZackLivestone
    @ZackLivestone 3 ปีที่แล้ว +8

    Solid rapid fire overview, really appreciated!

  • @itsfela
    @itsfela 2 ปีที่แล้ว +1

    I always come back to this one

  • @jspiro
    @jspiro 2 ปีที่แล้ว +1

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

  • @Vedranation
    @Vedranation 2 หลายเดือนก่อน +1

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

  • @RetsaGames
    @RetsaGames 3 ปีที่แล้ว +1

    Amazing talk, makes everything look so simple

  • @hugobarbachano1831
    @hugobarbachano1831 3 ปีที่แล้ว +3

    Awesome, can´t wait to tinker with this !

  • @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.

  • @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.

  • @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

  • @arlowicks9359
    @arlowicks9359 ปีที่แล้ว

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

  • @Galakyllz
    @Galakyllz ปีที่แล้ว

    This presentation was great.

  • @KiKeoLiVa
    @KiKeoLiVa 2 ปีที่แล้ว

    Really great video, thank you!

  • @Algorhythmic
    @Algorhythmic 2 ปีที่แล้ว +1

    Very useful info. Love the humor as well.

  • @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!

  • @nztuber
    @nztuber 7 หลายเดือนก่อน

    Excellent, thank you

  • @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.

  • @AleksandrK51228ruswi
    @AleksandrK51228ruswi 11 หลายเดือนก่อน

    Very helpful, awesome!

  • @davidxdhloqud
    @davidxdhloqud 2 ปีที่แล้ว

    Esto vale millones! Gracias! :D

  • @markvador6667
    @markvador6667 2 ปีที่แล้ว

    Amazing ! Thanks you a lot !!

  • @bordel6121
    @bordel6121 2 ปีที่แล้ว

    Great talk, I learned stuff

  • @nighttraveler9993
    @nighttraveler9993 3 ปีที่แล้ว +2

    Love it

  • @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.

  • @PabloGaraguso
    @PabloGaraguso ปีที่แล้ว

    Excellent

  • @oddminngdev9844
    @oddminngdev9844 ปีที่แล้ว

    This man is awesome.

  • @deepdarkdown
    @deepdarkdown 2 ปีที่แล้ว

    nice overview.

  • @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. :-)

  • @darkfrei2
    @darkfrei2 2 ปีที่แล้ว +1

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

  • @shitheadjohnson2797
    @shitheadjohnson2797 2 ปีที่แล้ว +1

    those voronoi cells might make a pretty floor in doom.

  • @lophyre1380
    @lophyre1380 2 หลายเดือนก่อน

    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...

    • @RobVespa
      @RobVespa 3 ปีที่แล้ว

      Nice video!

  • @JW-fd8sh
    @JW-fd8sh ปีที่แล้ว

    Is there any source code available for us to review?

  • @ajinkyax
    @ajinkyax 3 ปีที่แล้ว +1

    Best game dev. And Rust is a great choice

  • @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 очень сильно, вот и смотрю по нему материал. На этот видос случайно наткнулся, я просто хотел посмотреть отзывы на книгу чела, который в этом видосе лекцию дает.