-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Redo instability: per-tree and static with mutatedness #72402
Redo instability: per-tree and static with mutatedness #72402
Conversation
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Having read the PR description, this is very intuitive to understand in my opinion. The more you fuck up your genes, the more your genes are fucked up. Enormous step up from the awkward vitamin mechanic that needs much more explanation for a considerably worse gameplay experience. |
Pretty good way of handling it, though I'd differentiate between traits depending on invasivity for the calculations - either vitamin cost or base points, where obviously the former is underutilized outside of limb stuff and the latter is inconsistent. Also, do we need Robust Genetics in the first place? It has been flipping between "basically worthless" and "indispensible" depending on personal taste (and savescumming rate), and it just serves as a soft opt-out on a system we want to have. |
Is there any method that in-repo mods can hook into for changing the effective instability? |
This is much more intuitive than how mutations work atm. |
right now there's basically no interaction with the JSON. that's one weakness of my implementation. I'm not sure how best to do that though. |
Perhaps Robust Genetics could be tweaked somehow so it's more effective at very high instability rather than low? This system seems excellent for single tree mutation characters, but I worry a little about how it plays out when you're doing heavy tree mixing. Robust genetics could be the tool you take if you intend to do some real immersion blending on your genome, rather than just making early mutations a little more consistent. Though I'm unsure how that would play with it being in several mutation trees; maybe it deserves to be a starting trait only. |
Robust Genetics is too wishy-washy to be a starting trait methinks. We want our characters to be RP-focused now, yeah? I always enjoy mutating, so what, do I always take it? If I don't take it it feels like I'm arbitrarily handicapping myself. If I do take it it feels like I'm arbitrarily giving myself a positive handicap. With Vitamin Bullshit I always took it because that system isn't fun, but now that dilemma will happen again. I think it should be made a Medical mutation- that's the mutagen addicts, after all. Makes sense the DNA is more robust there. |
I love how you're taking this and I think this is definitely the right way to work it.
|
If I'm understanding this correctly, you mean you get a "bad luck pool" that fills up as you mutate, and fills more quickly the more mutated you are, and then periodically empties and gives you a bad mutation? How do you go about making that non-deterministic, or is deterministic the goal? Like do we want it do be such that you'll always get your first bad mutation after 5 good ones, and then the next one after 4, then the next one after 3 (to use fudged magic numbers as an example). Personally for me the "rng" element makes it a little more exciting but I'd like to think I have decent save-scum discipline so I'm not just cheating the consequences until I roll perfectly. |
Another thought: one factor that makes getting negative mutations more painful is the fact that it's consuming some of your vitamin and thus your resources; is it too much for a negative mutation to develop alongside your positive one, when you fail an instability check? Not counting negative traits that are prerequisites for positive ones. |
It'd still be nondeterministic, but after a while you'd be guaranteed to have a bad mutation. If your chance is 60% by your third mutation, you might get it then; by your fifth, if you've rolled incredibly lucky (or more likely, savescummed a lot), you're at a point where you can't avoid a consequence anymore. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestions for giving the added comments consistent capitalization and punctuation.
Co-authored-by: Kamayana <[email protected]>
I do think this still needs some refinement but it is a steady improvement as is. The refinement can follow up. |
OK as I said i was going to test this after compiling last night and I've done so now. I tested with first one mutagen and then consumed a different type of mutagen after my set was complete and had awarded one negative mutation after around 5 positive/neutral mutations. The new mutagen resulted in negative mutations faster around the third mutation. Then I added back more original mutagen and began mutating quickly not quite alternating between the two trees as I had both transformation effects running. This is good to merge now. |
Oh erk already merged 18 minutes ago. |
I'm glad you checked though |
Summary
Balance "Instability no longer accumulates or decreases; it depends on how many mutations you have, and how many are outside of your current tree"
Purpose of change
Instability was a broken mechanic. It encouraged waiting around doing nothing for long periods of time so that it can decrease, and meant you effectively had a 0% chance of ever getting bad mutations because you always could stay within the safe bounds of instability. Further, it led to "feels-bad moments" such as getting punished for getting a negative mutation (which gives you more instability on top of already being bad) or getting punished for your tree swapping its mutations around (for example, Chimera would repeatedly swap its type of tail, effectively durdling around and doing nothing but accumulating instability). All these things combined, it was in need of overhaul.
Describe the solution
Describe alternatives you've considered
I made an edit to mutation_height() making it a
const
in order to be able to call it in my function. This doesn't appear to do any harm anywhere but it's worth mentioning.I also made roll_bad_mutation() take the mutation tree in question as an argument, since there's no way to make the instability depend on the tree otherwise. I haven't seen any areas where this causes a problem and there aren't any compiler errors so I think it's probably fine, but again I figure it's worth mentioning that I'm fucking with already written stuff a bit.
Testing
I cloned and compiled my repo locally.
Debug screenies of a char with 9 trog mutations:
The old instability test was no longer valid, so I wrote a new one that should go through some steps and confirm that things are working the way I wanted them to. The test is possibly a little less robust since it's no longer using the game's natural mutation process, only checking the odds that process would use; if that's a problem I can try to take another look at it. I'm a little unfamiliar with the test-writing process.
Additional context