Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make entrances in spoiler more human readable #2308

Closed
briaguya-ai opened this issue Dec 30, 2022 · 5 comments
Closed

make entrances in spoiler more human readable #2308

briaguya-ai opened this issue Dec 30, 2022 · 5 comments

Comments

@briaguya-ai
Copy link
Contributor

things that make it unclear

things that would make it clearer

  • add user friendly names to entrances (i'd lean towards switching to string parsing here like we do with items, but just adding user friendly names next to the magic numbers would be ok too)
    • note: i'm pro string-parsing since this only ever happens when loading a spoiler, once gameplay starts everything would still be ID based
  • get rid of entrancesMap
    • pretty sure this is used by the entrance tracker, but it'd be nice to handle this without the redundancy
@Archez
Copy link
Contributor

Archez commented Dec 30, 2022

I initially didn't like how it had to be stored before either and want to hear feedback on improving it.

Regarding entrancesMap its meant to be the sphere playthrough for entrances yea. Unlike items, all entrances are included in the spheres so I figured it was enough to be the human readable version.

The other thing to note here is that entrances will always contain both "directions" for entrances, whereas currently entrancesMap will only show one direction if decoupled is turned off.

The names in entrancesMap currently comes from the Area logic from 3ds locations.

@briaguya-ai
Copy link
Contributor Author

briaguya-ai commented Dec 30, 2022

all entrances are included in the spheres so I figured it was enough to be the human readable version

The problem I have with that is really from a debugging perspective. Since we don't parse the spheres when setting up the overrides they aren't helpful in pinpointing what could be going wrong

The other thing to note here is that entrances will always contain both "directions" for entrances

this is fine in my opinion, if anything it'll make it easier to find some of them just by scrolling through without ctrl-f

@Archez
Copy link
Contributor

Archez commented Dec 31, 2022

One thing I want to do is adjust is entrances to not be built from playthroughEntrances. Any error in the playthrough logic will cause the actual in-game overrides to be broken. entrances should instead be based on the actual shuffled entrances from either CreateEntranceOverrides() or GetShuffleableEntrances() in 3drando/entrance.cpp, ensuring that the overrides itself matches 100% with what was generated.

  • get rid of entrancesMap
    • pretty sure this is used by the entrance tracker, but it'd be nice to handle this without the redundancy

entranceMap is not used for the tracker or anything else in-game, its purely only for readability in the spoiler and to list the sphere order.

playthroughEntrances can still be used if we want to keep and rename entrancesMap to be entrancePlaythrough. Independent of human readable changes we make to entrances, I think a proper entrancePlaythrough in the spoiler log is still useful for those that want to be able to trace through their seeds logic. In the same way that playthrough contains the item locations sphere order.

@briaguya-ai
Copy link
Contributor Author

I think a proper entrancePlaythrough in the spoiler log is still useful for those that want to be able to trace through their seeds logic

Could you elaborate on what this provides that a full list of entrances doesn't? It's still very unclear to me how the entrance playthrough is intended to be used

@Archez
Copy link
Contributor

Archez commented Jan 1, 2023

Could you elaborate on what this provides that a full list of entrances doesn't? It's still very unclear to me how the entrance playthrough is intended to be used

The entrance playthrough is supposed to display the order in which entrances/areas are accessed in conjunction with how items are accessed (the chosen way that the seed decided is the "beatable" way). This mainly pertains to glitchless, as glitched would just contain one sphere with all entrances. And unlike the item location playthrough which only contains "way of the hero" items, the entrance playthrough will contain all shuffled entrances.

I think one of the disconnects here is that because our spoiler log is JSON and the playthrough sphere is an object, the exact ordering is lost, and instead the list is alphabetized. This is something I think should be addressed as well. The playthrough spheres should either be an ordered array, or an object with the keys prefixed by numbers 001_xxx so that the order is preserved in JSON form.

The more entrance options enabled, the more the playthrough sphere becomes useful in understanding how the logic for a seed was determined.

I will say, I'm not fully aware of all historical context from n64/3ds rando. I'm just clarifying with what I think was the intended goal originally.

@HarbourMasters HarbourMasters locked and limited conversation to collaborators Dec 19, 2023
@briaguya-ai briaguya-ai converted this issue into discussion #3662 Dec 19, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Projects
None yet
Development

No branches or pull requests

2 participants