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
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.
Awesome, you re here. Would you like to talk to me for one of these videos about how you did that?
@@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.
I remember the L-shaped rooms ;) they were fun
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.
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?
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.
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!
And now ebf5 is on mobile!
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!
Awesome, that's what I like to hear.
I'm making a roguelike myself. I cannot overstate how much of a blessing this series has been.
Sweet thanks. hope you make it a good one, haha
@@HimslGames I'll do my best
Did you release it ?
@ Yes, actually. There’s a trailer for a demo build on my channel.
@sninctbur3726 damn it looks so good. You're really talented my friend
Don't worry, Rebirth occasionally still spawns a room right next to the exact same room.
lol shameful.
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
aww, thanks, will do :)
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.
Aww, thanks. Hope my channel will be more popular soon, I am going to release more game dev content soon.
watched this with my baby brother we love isaac so much and this video rocked! looking forward to watching the rest :)
Awesome, glad you liked it. Hope you see my future games as well. Planning to do explained videos on them too.
The visuals really helped clarify your explanations, great video! Please make more if you're inspired to
Thank you :) The second episode is already being edited, it will be about physics.
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.
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
Wow, dude, you're unbelievable, I thought Edmund did a programming too!
perfectly explained, fantastic!
awesome, thanks, I was insecure about making this video. I should make more now tho.
@@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
what was your name back then?
@@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!
Oh yeah I remember. maybe you should join my programming streams sometimes.
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
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
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.
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 :)
2:57 I'd like to try and play the game like that!
Quite informative, if I'm honest. I would love to have a video about video game loading, tbh.
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.
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?
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.
@@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
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.
@@HimslGames Yeah but dont the doors kinda belong to the rooms? Also how can you do the dungeon layout after placing the doors?
you check if a room can have doors there before you place another room there, simple.
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
i loved this video
Thank you :)
The Dark One of Dark One: Dark One+
This is very groovy.
I hope we get the Game Squid trinket back in Repentance.
lol doubt it.
I added the gamesquid trinket after rebirth was made, so it was never included. and they probably wont include it now.
I've always wondered what language rebirth was in and how translating it from flash worked out.
so what language is it?
@@TheMelopeus c++
@@bamberghh1691 c++ is language engine was written with. game itself was written in lua
@@obamabruhmoment3145game was coded fully in c++, lua is used in modding
Man... This is awsome!
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.
Good video, whens squid invaders coming out my wallet is waiting, seriously though make more videos about this its very interesting.
sure, will do. hope squid invades is coming out this year, but I am terrible with deadlines haha.
useful and interesting thanks. really good game.
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
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.
So did you make rebirth or just regular? It's confusing because you say "they" but also say "I" at different times.
just regular.
Epic
so wait, do the list of rooms include what enemies are in them or is that a different generation process?
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.
@@HimslGames ah ok! Interesting
6:17 they use zackscott gameplay
What game would you make if you had like 10.000.000$?
A cross between League of Legends and Starcraft. haha
So have I missed something or did Poor Mouse get canceled?
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.
@@HimslGames Thanks for the update on that. i just was not seeing anything new regarding it. I fully understand.
Здесь, потому что Тайфун порекомендовал
awesome, glad to hear I was recommended... if google translate can be believed.
Why do you sound so scared during this video
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.