Herbert Wolverson - Procedural Map Generation Techniques

Ойындар

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
    @henrykkaufman14883 жыл бұрын

    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
    @JoeGeorge3192 жыл бұрын

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

  • @alexanderdiogenes8067
    @alexanderdiogenes80673 жыл бұрын

    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 жыл бұрын

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

  • @Zadhompl
    @Zadhompl2 жыл бұрын

    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 Жыл бұрын

    I keep coming back to this one, brilliant resource

  • @Vedranation
    @Vedranation2 ай бұрын

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

  • @ZackLivestone
    @ZackLivestone3 жыл бұрын

    Solid rapid fire overview, really appreciated!

  • @itsfela
    @itsfela2 жыл бұрын

    I always come back to this one

  • @jspiro
    @jspiro2 жыл бұрын

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

  • @guywithknife
    @guywithknife3 жыл бұрын

    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.

  • @jumpergamer1913

    @jumpergamer1913

    Жыл бұрын

    Any book recommendations?

  • @naphipps28219
    @naphipps282193 жыл бұрын

    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 жыл бұрын

    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 Жыл бұрын

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

  • @RetsaGames
    @RetsaGames3 жыл бұрын

    Amazing talk, makes everything look so simple

  • @arlowicks9359
    @arlowicks9359 Жыл бұрын

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

  • @hugobarbachano1831
    @hugobarbachano18313 жыл бұрын

    Awesome, can´t wait to tinker with this !

  • @Galakyllz
    @Galakyllz Жыл бұрын

    This presentation was great.

  • @KiKeoLiVa
    @KiKeoLiVa2 жыл бұрын

    Really great video, thank you!

  • @KoN312
    @KoN3123 жыл бұрын

    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
    @bobbob98219 ай бұрын

    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
    @Algorhythmic3 жыл бұрын

    Very useful info. Love the humor as well.

  • @pik910
    @pik910 Жыл бұрын

    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
    @davidxdhloqud2 жыл бұрын

    Esto vale millones! Gracias! :D

  • @nztuber
    @nztuber7 ай бұрын

    Excellent, thank you

  • @AleksandrK51228ruswi
    @AleksandrK51228ruswi11 ай бұрын

    Very helpful, awesome!

  • @markvador6667
    @markvador66672 жыл бұрын

    Amazing ! Thanks you a lot !!

  • @bordel6121
    @bordel61212 жыл бұрын

    Great talk, I learned stuff

  • @nighttraveler9993
    @nighttraveler99933 жыл бұрын

    Love it

  • @darkfrei2
    @darkfrei22 жыл бұрын

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

  • @oddminngdev9844
    @oddminngdev9844 Жыл бұрын

    This man is awesome.

  • @PabloGaraguso
    @PabloGaraguso Жыл бұрын

    Excellent

  • @chien461
    @chien4613 жыл бұрын

    Fractal Brownian Motion!

  • @thebracket

    @thebracket

    3 жыл бұрын

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

  • @deepdarkdown
    @deepdarkdown2 жыл бұрын

    nice overview.

  • @shitheadjohnson2797
    @shitheadjohnson27972 жыл бұрын

    those voronoi cells might make a pretty floor in doom.

  • @lophyre1380
    @lophyre13802 ай бұрын

    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 Жыл бұрын

    Is there any source code available for us to review?

  • @RobVespa
    @RobVespa3 жыл бұрын

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

  • @RobVespa

    @RobVespa

    3 жыл бұрын

    Nice video!

  • @smiley_1000
    @smiley_10002 жыл бұрын

    Enjoyable Presenter

  • @omeritachiquita
    @omeritachiquita3 жыл бұрын

    😙👌

  • @ajinkyax
    @ajinkyax3 жыл бұрын

    Best game dev. And Rust is a great choice

  • @awesomegamedev
    @awesomegamedev2 жыл бұрын

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

  • @jeshweedleon3960

    @jeshweedleon3960

    2 жыл бұрын

    you are thanked

  • @RetroGamerEightyOne
    @RetroGamerEightyOne2 жыл бұрын

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

  • @huuuuuuuuuuuuuuuuuuuuuuuuuuuhn

    @huuuuuuuuuuuuuuuuuuuuuuuuuuuhn

    Жыл бұрын

    I think python is just very popular in general

  • @torcher5023
    @torcher50233 жыл бұрын

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

  • @maksimhapeyenka2435

    @maksimhapeyenka2435

    3 жыл бұрын

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

  • @torcher5023

    @torcher5023

    3 жыл бұрын

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

  • @maksimhapeyenka2435

    @maksimhapeyenka2435

    3 жыл бұрын

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

Келесі