Binding of Isaac: Room Generation Explained!

Поділитися
Вставка
  • Опубліковано 8 лют 2025
  • Here is a look into how I made my game.
    Watch the whole series in a playlist: • Binding of Isaac Expla...
    Subscribe for future episode!
    the binding of isaac
    explained
    game
    programming
    flash
    original
    maps
    rooms
    creation
    making
    behind the scenes
    how to
    history
    florian himsl
    programmer
    actionscript2.0

КОМЕНТАРІ • 94

  • @simonparzer
    @simonparzer 4 роки тому +419

    Actually, when I started the dungeon generator for Rebirth, I just took Florian's algorithm and maybe optimized it a bit. Everything else we gradually added on top of it, the algorithm changed quite a bit over time. I still remember how proud I was when I pulled off the big rooms. Then at some point Ed or I don't know who it was asked for L-shaped rooms to "make things more interesting" and I was like oh no, not again.

    • @HimslGames
      @HimslGames  4 роки тому +112

      Awesome, you re here. Would you like to talk to me for one of these videos about how you did that?

    • @simonparzer
      @simonparzer 4 роки тому +80

      @@HimslGames I would have to look at the code again to make sure I get it right, it was a long time ago ;) But yeah we can do that.

    • @spider853
      @spider853 4 роки тому +13

      I remember the L-shaped rooms ;) they were fun

    • @zombievirals
      @zombievirals 4 роки тому +13

      I'd give my left arm to know how you pulled off the different sized rooms. I'm doing this in 3d atm, and no trouble if all the rooms are same size, but I tried throwing a double length room in, and, lol, not happening yet.

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

      Could you guys comment on how the item system works? From what I've been able to parse is you pick up items and they are tied to specific hooks, such as OnFireWeapon, OnUseBomb etc.. And when you use those actions it checks to see if an item has an effect to use. But I'm not sure about switching from a tear to brimstone and other effects, is there a sbot type that decides if it's a projectile or raycast? Is the tear generic with lots of bools to handle properties like spectral?

  • @simpire321
    @simpire321 4 роки тому +67

    I think it's VERY interesting to hear how floors were generated in flash isaac.
    I'd LOVE to see more videos like this. This game was my childhood.

  • @MattRoszak
    @MattRoszak 4 роки тому +52

    Flash rules. I'm working on publishing all of my old Flash games on Steam in the next few months. Got AS2 working no problem on Adobe AIR - added Steam achievements, resolution options, and framerate options. It's surprising that such old tech still works totally fine on windows, and says a lot about how good Flash was!

  • @zombievirals
    @zombievirals 4 роки тому +16

    I've been playing video games for thirty years now, and I've never played anything with the replayability of this game. It's been a huge inspiration to me as a hobbyist game dev, and I've heard quite a few other devs cite this game as an inspiration. Great explanation too, definitely helpful for my current project!

    • @HimslGames
      @HimslGames  4 роки тому +4

      Awesome, that's what I like to hear.

  • @sninctbur3726
    @sninctbur3726 Рік тому +10

    I'm making a roguelike myself. I cannot overstate how much of a blessing this series has been.

    • @HimslGames
      @HimslGames  Рік тому +5

      Sweet thanks. hope you make it a good one, haha

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

      @@HimslGames I'll do my best

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

      Did you release it ?

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

      @ Yes, actually. There’s a trailer for a demo build on my channel.

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

      @sninctbur3726 damn it looks so good. You're really talented my friend

  • @PurpleColonel
    @PurpleColonel 3 роки тому +52

    Don't worry, Rebirth occasionally still spawns a room right next to the exact same room.

  • @Shark20167
    @Shark20167 4 роки тому +7

    Absolutely loving these series of videos! Jumped into the original binding of isaac after falling in love with rebirth and am so impressed at what you were able to do with flash! It’s so fun peaking behind the curtain. And I love your commentary! Keep up the awesome work

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

    Amazing and underrated video series. You are a pioneer. Your work paved the way for a whole generation of indies. Thank you so much for sharing.

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

      Aww, thanks. Hope my channel will be more popular soon, I am going to release more game dev content soon.

  • @eibhen
    @eibhen 3 роки тому +5

    watched this with my baby brother we love isaac so much and this video rocked! looking forward to watching the rest :)

    • @HimslGames
      @HimslGames  3 роки тому +5

      Awesome, glad you liked it. Hope you see my future games as well. Planning to do explained videos on them too.

  • @TheStanleyHiveMind
    @TheStanleyHiveMind 4 роки тому +5

    The visuals really helped clarify your explanations, great video! Please make more if you're inspired to

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

      Thank you :) The second episode is already being edited, it will be about physics.

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

    Just purchased and started playing through Binding of Isaac rebirth for the first time for "game design research". I was actually confused about why it was called rebirth but I think I understand after reading all the comments. I really appreciate the open and honest share. I love all the "nods" to Zelda throughout the game. A lot of my game design over the years has been inspired from the original Zelda so it was a pleasant surprise to see so much in BoI. Love the depressing humor by the way.

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

    5:51 I just died to a dark one on the chest floor in repentance, so I rage quit and opened up UA-cam and saw this video, and now that I’m watching it, the dark one is back to haunt me

  • @AndrewKramerenko
    @AndrewKramerenko 9 місяців тому +1

    Wow, dude, you're unbelievable, I thought Edmund did a programming too!

  • @nekozombie
    @nekozombie 4 роки тому +16

    perfectly explained, fantastic!

    • @HimslGames
      @HimslGames  4 роки тому +6

      awesome, thanks, I was insecure about making this video. I should make more now tho.

    • @nekozombie
      @nekozombie 4 роки тому +1

      @@HimslGames absolutely! I wonder if you remember me though... the dude that used to talk to you back in 2014? It's awesome to see that you're still uploading videos :D

    • @HimslGames
      @HimslGames  4 роки тому

      what was your name back then?

    • @nekozombie
      @nekozombie 4 роки тому +1

      @@HimslGamesPretty sure it was *Valkyreon* or something ridiculous like that. We talked via Steam for some time and you even wanted to record Unity tutorials with me. It was pretty surreal since you were like a hero to me!

    • @HimslGames
      @HimslGames  4 роки тому +2

      Oh yeah I remember. maybe you should join my programming streams sometimes.

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

    4:45 so this is why I always lose on the second or fourth floors in flash isaac. It's literally a harder room selection

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

    It's honestly kind of funny to me to think the longer load times for binding of isaac being caused by the map generator going oopsy woopsy and having to start over

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

      Yeah, pretty smart huh? Normally well designed generating algorithms don't allow for it to restart infinitely, infact they are designed so it shouldn't even need restarts most of the time.

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

    Its funny how I did almost the same method, before watching this video, in my game, which is inspired by isaac. I don't feel as bad knowimg that the original isaac coder did almost the same as me :)

  • @igorcheglakov333
    @igorcheglakov333 4 роки тому +7

    2:57 I'd like to try and play the game like that!

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

    Quite informative, if I'm honest. I would love to have a video about video game loading, tbh.

    • @HimslGames
      @HimslGames  4 роки тому

      not sure that would be very interesting, most of the loading is done automatically by the engines we use. except for stuff like generating a level... that technically seems like loading time but it's actually content creation.

  • @Snaps12345
    @Snaps12345 4 роки тому +5

    Ive always wondered this as someone who is into game design. But there are a lot of things that are still unclear for me. How would you guarantee a certain number of dead end rooms for the important dungeon rooms? What if the dungen just decides "straight line!"? Or how are the doors made? Because if a door is on a wall depends on if there is a room next to this room and not on the layout itself because you can see the exact same room with different doors. This one might be more of a rebirth thing but other than in this game, where every wall can be reached, rebirth has certain rooms where the wall is blocked of or behind an abyss. How does it choose which room can be set on which position without fucking the dungeon up?

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

      you can tell it to take a turn after going in a straight line for a certain length, and... shamefully I usually just have it restart if it made too few end rooms haha. in the original isaac all rooms have spaces for doors in all possible places. which means the room design can never really be that interesting because every room needs to be beatable from every side. but in rebirth they added rooms that would be designed around some doors being blocked and can therefor look better or play more interestingly.

    • @Snaps12345
      @Snaps12345 4 роки тому +1

      @@HimslGames Oh so you just made it reset if the werent enough dead ends? Interesting because I tried maze generation recently and I always try to make it beatable in the first generation and if something doesnt fit the first time I make it fit. And I know that all the room designs in flash Isaac had a reachable wall, thats what I said. I just wondered how you would decide if this layout fits for the position of the room. Cant have a rockwall infront of a door

    • @HimslGames
      @HimslGames  4 роки тому +1

      well that should be simple, you either do the layout after the doors or the doors after the layout, either way you can make if statements that prevent blocking on each door.

    • @Snaps12345
      @Snaps12345 4 роки тому +1

      @@HimslGames Yeah but dont the doors kinda belong to the rooms? Also how can you do the dungeon layout after placing the doors?

    • @HimslGames
      @HimslGames  4 роки тому +2

      you check if a room can have doors there before you place another room there, simple.

  • @WhimsicottFanatic
    @WhimsicottFanatic 2 роки тому +2

    I do love coming across videos detailing the generation of the dungeons in dungeon-crawlers, be it TheZZAZZGlitch's video detailing Pokemon Mystery Dungeon's generation, or this, which has the added bonus of coming from the Eternal D6-loving Ultra Pride Baby himself
    On an unrelated note, I'm mildly ashamed that with the Void map at 2:46, I was able to quickly work out which boss room was Delirium's
    If that's not a sign I should take a break from Isaac, I dunno what is

  • @Ahsmic
    @Ahsmic 4 роки тому +4

    i loved this video

  • @bobisnotaperson
    @bobisnotaperson 4 роки тому +2

    The Dark One of Dark One: Dark One+

  • @BasementDweller_
    @BasementDweller_ 4 роки тому +2

    This is very groovy.

  • @scoopishere7881
    @scoopishere7881 4 роки тому +2

    I hope we get the Game Squid trinket back in Repentance.

    • @HimslGames
      @HimslGames  4 роки тому +1

      lol doubt it.

    • @HimslGames
      @HimslGames  4 роки тому +1

      I added the gamesquid trinket after rebirth was made, so it was never included. and they probably wont include it now.

  • @chrisleeuwen8399
    @chrisleeuwen8399 4 роки тому +5

    I've always wondered what language rebirth was in and how translating it from flash worked out.

    • @TheMelopeus
      @TheMelopeus 4 роки тому +2

      so what language is it?

    • @bamberghh1691
      @bamberghh1691 4 роки тому

      @@TheMelopeus c++

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

      @@bamberghh1691 c++ is language engine was written with. game itself was written in lua

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

      @@obamabruhmoment3145game was coded fully in c++, lua is used in modding

  • @honzawillow
    @honzawillow 4 роки тому +1

    Man... This is awsome!

  • @magetsalive5162
    @magetsalive5162 4 роки тому +8

    Now if only Rebirth (Afterbirth? Afterbirth+?) had sanity checks in room generation so when you enter the floor with a 100% chance of a Devil Deal, your boss room is forced to be a room which is actually able to spawn a Devil Deal door. Seeing people fail a 100% chance roll on a Devil Deal despite taking no damage on a floor is kinda depressing.

  • @MrEater-cp4jt
    @MrEater-cp4jt 4 роки тому +10

    Good video, whens squid invaders coming out my wallet is waiting, seriously though make more videos about this its very interesting.

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

      sure, will do. hope squid invades is coming out this year, but I am terrible with deadlines haha.

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

    useful and interesting thanks. really good game.

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

    I am confused why have to regenerate from the start if one room generates outside of the grid? Why can't you just skip it and try somewhere else on the grid to generate a room? I feel like there are ways to prevent the algorithm from running forever and always doing it in one take

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

      Well there are many reasons for why a restart might trigger, so instead of making it smartly adapt to each new rule we add to the levels, I just resorted to it starting over if the levels don't meet a certain requirement. Like for example if it doesn't find a good place for the secret room. But yeah you can make a different algorithm that handles it better and doesn't rely on restarts.

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

    So did you make rebirth or just regular? It's confusing because you say "they" but also say "I" at different times.

  • @iand6309
    @iand6309 4 роки тому +1

    Epic

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

    so wait, do the list of rooms include what enemies are in them or is that a different generation process?

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

      first it places the rooms, then when all the rooms are placed it picks what they will be. I don't think it even counts how many enemies there are.

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

      @@HimslGames ah ok! Interesting

  • @zachalpert9539
    @zachalpert9539 4 роки тому +1

    6:17 they use zackscott gameplay

  • @LazarheaD
    @LazarheaD 4 роки тому +1

    What game would you make if you had like 10.000.000$?

    • @HimslGames
      @HimslGames  4 роки тому

      A cross between League of Legends and Starcraft. haha

  • @xTheSilverRavenx
    @xTheSilverRavenx 4 роки тому +1

    So have I missed something or did Poor Mouse get canceled?

    • @HimslGames
      @HimslGames  4 роки тому +2

      For now it is halted, and I am working on a roguelike called Squid Invaders. Poor Mouse will eventually be done, but it wont be soon. Sorry.

    • @xTheSilverRavenx
      @xTheSilverRavenx 4 роки тому

      @@HimslGames Thanks for the update on that. i just was not seeing anything new regarding it. I fully understand.

  • @ОннокорОктябрь
    @ОннокорОктябрь 4 роки тому +1

    Здесь, потому что Тайфун порекомендовал

    • @HimslGames
      @HimslGames  4 роки тому +2

      awesome, glad to hear I was recommended... if google translate can be believed.

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

    Why do you sound so scared during this video

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

      lack of self confidence lol. def got better at it now. I actually used the youtube editor to cut out so many awkward pauses and shit the video sounded even worse before haha.