3snowp7im / SotN-Randomizer

Randomizer for Castlevania: SotN
https://sotn.io
Do What The F*ck You Want To Public License
89 stars 37 forks source link

Feature request: Map Randomization #23

Open halgorithm opened 5 years ago

halgorithm commented 5 years ago

This is something I'm sure you've thought of but might be very difficult to implement. I'd like to know if even one of these is feasible: shuffling room locations within the same area, shuffling room locations across multiple areas, mirroring or rotating individual rooms, or moving entire areas to different places within the castle. Getting a new castle every time could be very exciting for runners and I'd consider it one of the most impressive features for a SotN randomizer to have, but I wouldn't be surprised if it's just impossible to do.

3snowp7im commented 5 years ago

This would be very difficult. At best you would be able to shuffle rooms within the same zone so long as their new layouts don't overlap. Then we'd need to figure out how to change the map screen itself to reflect the changes. Work has been done on the latter and it has proven not to be trivial. This would be a great feature, but due to the work involved, it's not currently on the roadmap.

halgorithm commented 5 years ago

Thanks for the explanation, that's about what I was expecting. As far as the map screen is concerned, I see that https://github.com/LagoLunatic/dsvrandom just informs the user that the map screen will be broken when randomizing the map, which seems acceptable even if it's not exactly ideal. Hopefully some day!

3snowp7im commented 5 years ago

good point, +1

SenseiLeRoof commented 5 years ago

Thanks for the explanation, that's about what I was expecting. As far as the map screen is concerned, I see that https://github.com/LagoLunatic/dsvrandom just informs the user that the map screen will be broken when randomizing the map, which seems acceptable even if it's not exactly ideal. Hopefully some day!

Huh? Room rando on DSV has been map-friendly for a time now. And regions are kept contiguous, so you might check and see if the code is workable, convertable, whatever.

3snowp7im commented 5 years ago

And regions are kept contiguous, so you might check and see if the code is workable, convertable, whatever.

The DS Vania and SotN engines have absolutely nothing in common.

halgorithm commented 5 years ago

@SenseiLeRoof I haven't tried DSVRandom myself but the repo's README for it states that Room connections and Area connections randomization are not map-friendly. I only mentioned it to point out that a broken in-game map screen could still be an acceptable UX. But in any case, the high-level map randomization algorithm doesn't seem to be the challenging part but rather injecting those changes into the base game.

halgorithm commented 3 years ago

Just checking in on this feature again, would it be possible to just randomize connections between zone doors? (e.g. the door from the Entrance to the Alchemy Laboratory could instead lead to a different area, or potentially even a teleporter room)

Compared to the other ways one could randomize locations, this seems like probably the best ratio of effort vs. payoff. Doesn't seem like it would need any map overlay changes either, as the doors are conceptually just teleporting you to different points in the castle.

MainMemory commented 2 years ago

If figuring out how to generate the map layout is a problem, perhaps you could do what the True Randomization mod for Bloodstained does, and have a selection of pre-made maps that can be randomly picked.

MainMemory commented 1 year ago

Coming back into this to say that I'm currently working on an editor that uses json files to store info about the room layouts, and I could potentially integrate support for them into the randomizer, if that's something you'd be interested in having.

SenseiLeRoof commented 1 year ago

If you could get that to work, it would breathe new life into the game for sure!