Attempt Mode Implementation #83
Unanswered
CasualPokePlayer
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
So far, I have started the work of an "attempt mode" (see #80). However, there are implementation questions that need to be answered. Most have obvious answers, but they end up being different depending on 2 overall questions:
Do we want to have a single binary released, or multiple binaries? Then, how many modes/binaries to we want?
With a single binary, the PSR and "others" builds will be essentially merged into 1 build. This could be preferably from a more advanced user + dev perspective, considering it would be annoying to switch around builds (and for devs to constantly add defines to build other builds). This has a drawback of essentially reducing the "idiot proofing" that we can have with multiple builds (at the moment, it's direct PSR users to use the PSR build, other communities use the "others" build).
With multiple binaries (ie status quo), we can have a binary be the "go to" for runs, while having other builds for possibly practice and other communities needs. This keeps the idiot proofing of the current system, with the drawback of dealing with multiple binaries being rather annoying.
The next question ends up complicating the first question. We could have a single "attempt" mode/binary, and outside of that we could have essentially a "practice" mode/binary. This however has some possible issues, being other communities who might not want some specific features will essentially be locked out of any benefits of an attempt mode/binary and will be stuck with the "practice" mode/binary. That, or the attempt mode/binary would need to be watered down to meet the needs of other communities (ie, don't force GBP, don't disable loading save states/have indicators if save state has been loaded instead, etc), which might be overall undesirable.
For a single binary, we could perhaps resolve with by having 3 modes, one with a strict "attempt" mode which meets the needs of most of PSR, one with a looser "speedrun" mode which meets the needs of other communities while having some benefit of an "attempt" mode, and a "practice" mode for practice/other misc uses. Of course, 3 modes would end up hurting the idiot proofing more than if we had 2 modes.
For multiple binaries, it ends up even more complicated. Do we want 3 separate binaries for each of the 3 modes I laid out, or do we want 2 binaries with some mix of modes? 3 binaries would be even worse than we have for users who might want to use multiple, and if attempt and practice modes are separated out completed, there will be need to use multiple binaries. We could also keep 2 binaries, but make it so the "attempt" mode of each is different depending on if the PSR build is used (ie fairly strict) or "the others" build is used (ie looser than PSR's). I'm not too sure how many drawbacks this would bring, other than being a pain to provide each build, and there would need to be some way to discern PSR's attempt mode and "the others" attempt mode (more implementation question than a drawback I guess), and runners who might be involved in both PSR and other communities no longer being able to use "the others" build at all, essentially requiring use the PSR build for PSR runs and possibly needing to switch binaries for other runs.
Overall, I need feedback regarding these options, or some new option I might have missed.
Beta Was this translation helpful? Give feedback.
All reactions