![]() If our goal is to create procedural games that center the experience exploration and discovery, we’re going to need new strategies that better support those mechanics. ![]() For example, Scourgebringer is a great game with pretty boring dungeons - it doesn’t need a complex world to be fun because it focuses is on combat, not exploration. That doesn’t mean those games are bad - it just means they don’t really feel like Metroidvanias. This is why randomizers and roguelikes usually produce dungeons with the same kinds of problems: boxy, boring rooms, long empty hallways, and spaces that are either either completely linear or impossibly convoluted. The more you constrain your rooms, though, the less interesting your dungeons will be, but the easier they’ll be to generate. In fact, it’s nearly impossible to generate great dungeons without them - doing so is probably equivalent to the knapsack problem, one of the hardest computational tasks known to Computer Science. These kinds of constraints on room size, shape, and connectivity are the same ones used in actual dungeon generators. Tight Room Constraints Make Boring Dungeons We could add more rules about the shape or branching of the dungeon, but then these strategies would stop working altogether, because they’d now be at-odds with our stated goals. This dungeon would satisfy our stated rules, but it probably wouldn’t be very fun to explore. ![]() That would almost certainly lead you to creating a valid dungeon on your first try… but what would it look like?īy removing all the rooms that can cause branching, these strategies guarantee that you’ll end up with a linear string of rooms.īy removing all the larger rooms and any that go up or down, you guarantee that it’s flat. You could do that by only using rooms that: For example, maybe you want to avoid creating unnecessary exits that you’ll have to fill in later. Maybe you’re already coming up with strategies that might make finishing the dungeon easier. ![]() How do you recover from bad states? Do you reverse your last step? Give up and start over? What happens if you have an open exit to an empty space in the map where no other rooms will fit? What happens when you run out of rooms, but you still have open exits left? Eventually, though, you’d run into problems: You’d probably make a lot of progress really fast, choosing an exit from the previous room to place the next one off of. To make sure dungeon is valid, it must satisfy these two rules:Īll room exits must align with a matching exit on an adjacent room To get a sense for how that task works, imagine that I took every room in Super Metroid, printed them all out on pieces of paper, and asked you to to build me a dungeon by selecting any ten of them and arranging them on a table. The most common approach would be to pluck rooms out of a pool and arrange them in some kind of 2D map. Here is some of what's new in version 0.Let’s say you want to build a system that can generate dungeons for some some kind of procedural metroidvania game, like a roguelike or a randomizer. The source code for it will be released later. This will make it easier to add new code into future updates, and for the creation of player-made ‘custom builds’. ![]() Project Base's edits have ALL been documented and organized. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |