Metroidvania-System icon indicating copy to clipboard operation
Metroidvania-System copied to clipboard

Add an Procedural Generation Feature?

Open SparkleArts opened this issue 1 year ago • 6 comments

This System is perfect but has only one thing that I need for an Roguelike Game: Procedural Generation for the Minimap.

This would be amazing if this is possible.

SparkleArts avatar Jun 15 '24 16:06 SparkleArts

See DiceRoom.tscn, it shows an example of room generation.

KoBeWi avatar Jun 15 '24 17:06 KoBeWi

Would this work for map randomizers?

I want to be able to mix and match all the available rooms.

I'm making a remake of Metroid 1 but want to add some modern updates.

Super Metroid map randos seem to be quite popular.

Also wondering if it's able to randomize the collectibles too?

thejacer87 avatar Jan 12 '25 01:01 thejacer87

You can randomize the map layout by re-arranging map data. There are no public methods for that, but you can achieve it with some tinkering. Collectibles can't be randomized using MetSys, but since they are part of the game's maps, it falls onto the game itself to handle that and usually isn't complicated.

KoBeWi avatar Jan 12 '25 01:01 KoBeWi

You can randomize the map layout by re-arranging map data. There are no public methods for that, but you can achieve it with some tinkering. Collectibles can't be randomized using MetSys, but since they are part of the game's maps, it falls onto the game itself to handle that and usually isn't complicated.

I would imagine the randomization of the map data doesn't handle matching doors/elevators?

So it would be trial and error to find usable seeds, correct?

thejacer87 avatar Jan 12 '25 01:01 thejacer87

Room rearranging would be implemented outside MetSys systems. You'd have to make a catalog of all rooms and their connection patterns (door height etc.) to make sure they match correctly, then arrange a map. MetSys will handle the room transitions automatically from the new map.

KoBeWi avatar Jan 12 '25 01:01 KoBeWi

In cc5dd15f3cb1c3c14942ffbfc2497cc7490e1df8 I improved room loading API and the map generation in example project. You no longer need to save the generated maps as scene files.

KoBeWi avatar Apr 05 '25 22:04 KoBeWi