Skip to content

How can we handle prefilling? #21

@aspiwack

Description

@aspiwack

After speaking with some in the of the alttpr community, it appears that the only place where the shuffle, there, is purposely non-uniform is Ganon's Tower.

In early version of the randomiser, Ganon's Tower frequently had quite a few good items (I've read that 3 swords was not uncommon!). So the alttpr devs devised a way to make Ganon's Tower less likely to have items: before shuffling items around, Ganon's Tower is pre-emptively filled with junk items (ruppees, and the like).

For us it seems to mean applying a mask: a number of locations are not allowed to have assignments (this is equivalent to prefilling). These locations are not known in advance (in the current v30, the number of prefilled location is random in a range, in v31, the number will be randomly selected but will also depend on the number of crystals required to open Ganon's Tower).

It's not really clear how to handle this. On the one hand it's fairly easy to apply this sort of modification to a ZDD, but that requires an efficient (path counting) ZDD library on the randomiser side. It's even easier to model in a SAT solver, but the randomiser is not capable of running online (generally speaking, running a SAT solver online is asking for all sorts of troubles).

So what would be a good way?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions