Z3M3:Basic Notes

From ALttPR Wiki
Jump to navigation Jump to search

SM logic notes

A paradigm shift in the logic

In the current (v10) logic, requirements for an item to be in logic combine the rules for getting to the room and the rules for actually getting the item.

With an entrance randomizer, the rules for getting to any given room become dynamic, depending on room layout. Because of this, the logic likely needs to be reworked to have room-by-room traversal rules separately from the rules for grabbing an item.

This rework would require:

  • The ability to define separate rules for getting from any given door to any given door within a room.
  • The ability to define separate rules for getting from any given door to any given item within a room.

Soft-locking risks

Because the player cannot be expected to know what room lies beyond any door, the risk of soft-locking is much greater with an entrance randomizer. To give the player a fighting chance, the logic should expect the player to only take paths that are deemed symmetrical, i.e. paths that the player is able to follow in reverse. Namely:

  • Players should not be expected to traverse a room if they aren't able to re-enter that room and go back to the original door
  • Players should not be expected to do maneuvers where failure would leave them unable to get back (similarly to current logic not expecting a player to get back out of Wave Beam without morph, even though it's technically possible)
  • To stay in line with this expectation from the logic, other ideas are also proposed in the door placement section.

An exception could possibly be made for this rule in a very specific case. If the player is able to see an item spot without having access to it, then it would make sense to expect them them to go there if grabbing that item immediately gives them the ability to get back out.

For example: A player without morphball enters the bottom-left section of bubble mountain, in a setting where the ice clip is in logic. They can see the item in that room even though they can't access it without morph. It would make sense to allow morph to be there if the player has access to Ice Beam and Power Bombs, since the player knows they'll be able to go back the way they came once they grab that item.

Instant soft-lock

The mere act of entering a room with some item sets can cause a soft-lock. Oasis from the top door is an example (even assuming the door has been made blue): it's possible to drop into that door with neither the ability to jump back into it nor the ability to escape at the bottom.

Is there a good solution to that?

Cumulative requirements across multiple rooms

In some situations, the requirements for being able to traverse may depend on what other rooms the player previously went through. Most glaring among those:

  • Heat runs. Traversing one room requires less health than many rooms back-to-back
    • Should each door-to-door connection in a heated room have hellrun health values in both directions?
    • Should the logic be aware of the presence of health refills and farm spots?
  • Power Bomb count. PB-hungry rooms being side-by-side could lead to softlocks. Logic needs to be aware of this, as it's essentially a dynamic version of being able to enter and leave gauntlet using PBs. The two questions above about hellruns apply to Power Bombs as well.

It should be noted that if we want a "symmetrical" logic, the player should only be expected to follow these paths if they have enough resources to make it through and back again, regardless of what room lies beyond.

Thinking outside the room

Without an entrance randomizer, some rules for getting to an item are based on adjacent rooms. Namely, carrying momentum through a door (e.g. invisible bridge, reverse ice beam mockball) and charging a spark (e.g. Screw Attack room).

  • Ideally, the logic should be able to tell whether the adjacent room fulfills the requirement, to determine whether to expect the player to do it.
    • How far would that need to go? In current normal logic, you can charge a spark to get through pillars because there is enough room for it two rooms away.
  • This is especially sensitive if we want a "symmetrical" logic. If the player comes from the other way, should they be expected to assume that the adjacent room does not fulfill the requirements?


Possible applications of outside-the-room requirements:

  • The ability to come through a door running, either with blue suit or with some progress towards it.
    • This could be represented by the number of blocks available for gathering momentum next to a door.
    • If we can identify that it's possibly to run all the way between two doors, we could calculate this across multiple rooms
  • The ability to charge a spark in an adjacent room and carry it through a door
  • The ability to jump through a door while carrying momentum.
    • This can probably also be represented by the number of blocks available for gathering momentum next to a door.
  • The ability to bring a spikesuit into a room
    • This could be handled by marking places where a spikesuit can be repeatedly acquired, and checking for a path that can go from there to a given door without consuming the spike suit.

SM room placement notes

Door symmetry

In short: The player cannot travel their path in reverse if a door they cannot open closes behind them. Notable thoughts:

  • If a set of doors is given the same color, this problem cannot occur.
  • It might be acceptable to have a one-way colored door if the means to open that door are found nearby, but is that worth the effort?
  • One-way colored doors are definitely no issue when they guard the entrance to a dead-end, since it's impossible to open the blue side first.
  • The game has grey doors with game flags to open them, such as defeating a boss found elsewhere. Those likely need to be symmetrical as well.
  • Some grey doors can never be opened. Those might need to be eliminated altogether?

One-way trips

Many paths from one door to another within a room are one-way trips. Sometimes this is absolute, regardless of items (crumble blocks, right-facing green gate, bowling alley). Sometimes it depends on items (getting up from the bottom of red tower, getting up Maridia main street).

The biggest concern is the paths that are absolutely uni-directional, as they are by definition completely excluded from a "symmetrical" logic. Possible ideas to deal with those:

  • Where possible, alter rooms to make them traversable in both directions. This has been done by other projects, such as VARIA.
  • Instruct the entrance randomizer algorithm to make a way back possible, requiring no items at all. A simple way to do that would be to connect both ends of the one-way path to the same hub room.

List of absolute one-way paths

Tourian and escape

It is probably preferable to keep Tourian and the escape path to the ship vanilla. All told, besides the Tourian doors, that is only 2 door transitions within Crateria.

It might be possible not to do this, but it would require the door randomizer to decide on an escape path and lock doors accordingly during escape. Then it would need to decide on an adequate escape timer. Giving it the means to do that would require a lot of work, and there's a pretty good chance players would just kill Ganon second.

Boss rooms

When the player enters a mini-boss or boss room, they are locked in until the boss is dead. This could happen to a player even if the boss is out of logic, and it would be best to prevent this. Possible ideas:

  • Refrain from randomizing the doors that connect to a boss room. That way, the player can know not to enter if they're not ready. As a bonus, this would also mean Kraid, Draygon and Ridley are at least directly guarding an item.
  • Find another way to make the doors identifiable somehow (The purple door goes to Ridley?)

Other rooms with grey doors

There are non-boss rooms where the player must kill everything to make it back out. In some cases, the rooms have no requirements and are not a softlock threat. But in at least some cases (e.g. Brinstar pre-map room, Plasma room), such a room can have requirements. If the player stumbled into that room without the requirements, they would be softlocked.

How should those rooms be handled?

List of grey doors that are unlocked by actions performed inside the room

Door connections

There are at least two possible ways to execute door connections:

  • Always connect right-facing doors to left facing doors, and top-facing doors to bottom-facing doors
  • Connect doors regardless of where they face, and spawn Samus near the door. VARIA's area randomizer does this. One downside of this method is that it that conservation of momentum between rooms can no longer happen.

Elevators

Can elevators be randomized? Should they be randomized?

Save rooms

Should any thought be put into where the save rooms get placed?

  • One concern that was brought up was the possibility that several save rooms connect to the same hub.

Possible room placement options

  • The SM VARIA randomizer offers an area randomizer option, where Zebes is split into vanilla areas. Transition doors betweens these areas are then randomized, rather than every door. Would that be of interest?
  • An option to set what % of transitions to randomize might help make less confusing versions of door rando?