top | item 44358723

(no title)

proteal | 8 months ago

How does one ensure that every seed can be completed without glitches? The website says this is the case, so I wonder how they do it because it seems nontrivial to generate valid seeds efficiently.

discuss

order

shhsshs|8 months ago

The project has data about every location (doors, chests, etc.) and the conditions that must be met to allow access to those locations - for example [1]. From there the randomizer shuffles various entrances/exits and item locations around using rules that are mostly guaranteed to keep the game beatable.

[1] https://github.com/OoTRandomizer/OoT-Randomizer/blob/d1bb6c2...

Graziano_M|8 months ago

Think of every location in the game as accessible only after certain events or items are acquired. You can create a directed acyclic graph (how build systems figure out dependencies!). You can randomize all the locations of items, as long there is still a way to get from the starting node to the ending node.

echelon|8 months ago

That's great!

Now does the DAG make sense to humans? Does it ever put things in absurd places, eg. a necessary dungeon key in a random grotto halfway across the map (or in another time)? Without clues, how would you know where to check next? Does the game help at all?

How out of sequence can the game get?

Is Master Quest just the moral equivalent of a single static random roll of the Randomizer?

Someone should do this with Majora's Mask, but in a way that can somehow combine the two games.

yuriks|8 months ago

The rules for what locations/checks can be reached in what situations and with what items are painstakingly encoded in a machine readable format: https://github.com/OoTRandomizer/OoT-Randomizer/tree/Dev/dat...

I don't know the specifics of the OoTR algorithm but in general they work by considering a set of items which are currently "available", and then progressively picking a random item to place only in locations which are reachable with that current set of available items (which is expanded with each placement).