-
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
New Dynamic Faction Endings #74126
New Dynamic Faction Endings #74126
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>
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>
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>
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.
This is really cool - it's an excellent idea!
But the dynamic
implementation does not work, it needs to be a JSON interface, not just a way to run some C++ code.
For some examples of the type of JSON I think would be appropriate:
"dynamic": [ { "faction": "old_guard", "power_min": 150 } ]
or
"dynamic": { "and": [ { "faction": "old_guard", "power_max": 150 }, { "faction": "robofac", "power_min": 150 } ] }
It might even be possible to use an EOC to determine this, but that could be a bit more complex.
If you need help with this, please don't be afraid to ask!
So, something like this: { "dynamic": "0100110", "id": "epilogue_faction_robofac_thrive" } Would become this? { "dynamic": { "and": [ { "faction": "robofac", "power_min": 150 }, { "faction": "exodii", "power_min": 150 },{ "faction": "the_great_library", "power_min": 150 } ] }, "id": "epilogue_faction_robofac_thrive" } |
Is there anything else I need to do for this? |
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.
Looks good technically. I believe when @I-am-Erk has time he'll review the epilogues.
Co-authored-by: anothersimulacrum <[email protected]>
Co-authored-by: anothersimulacrum <[email protected]>
Co-authored-by: anothersimulacrum <[email protected]>
Co-authored-by: anothersimulacrum <[email protected]>
Co-authored-by: anothersimulacrum <[email protected]>
Co-authored-by: anothersimulacrum <[email protected]>
OK I apologize that this has been out of pocket for so long. I'm going to try and review this tonight since Erk is still tied up irl. I may be a little more conservative on tone than erk since I'm not the official lorekeeper but I'll do my best. |
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.
Thank you for making this. I'm toning back some of the hope of the epilogues at least until we have questlines to support that kind of multi faction alliance and to prevent it from conflicting with lore about biosphere degradation being terminal within a hundred and some years of the starting setting.
Thanks for the feedback, I enjoyed writing these. I kinda hope that the whole "life on Earth will go extinct in 100 years" thing isn't guaranteed. Maybe Hub-01 is able to use "friendly" blobs to create permanently habitable areas (since these blobs would still be part of "The Blob", doing this would hopefully not be seen as an attack against it and incur a retaliation). Alternatively, maybe the Old Guard, Hub-01 and/or the Exodii are able to stabilize a portal to an alternate Earth without any Humans. Afterwards, they begin producing the "cure" mentioned in some of the lab reports to inoculate survivors (to avoid contaminating the new world with The Blob) that they then evacuate/resettle to the new world. Regardless, there being a way for the indomitable human spirit to avoid such a bummer ending would be nice. |
Maybe if the quest line is expanded to a point where Hub-01 can actively cooperate with the Exodii, you could add the possibility of saving the world (or at least Humanity). Perhaps you could even have the choice of how you would want to do that. Hub-01 would want to find a way to survive on Earth (because no matter where Humanity goes, The Blob will eventually catch up. Leaving is just delaying the inevitable), or you could evacuate with the Exodii (many have tried to survive on their world after they were fully consumed by The Blob, but none of them ever lasted for long. Why should Humanity fare any better?). In either case, there is no way to "defeat" The Blob. Even if you went with Hub-01, all you're really doing is finding a way to survive with The Blob. |
It may be of some use to review the design documents, particularly this one. DDA is cosmic horror - an elder god woke, and showed that we are insignificant in the grand scale of things. This doesn't mean that "we" (perspectives visible in game) know that, but it does mean in the semi-canonical faction endings, we shouldn't pull punches too much.
I don't grasp what "blobs" does mean or can mean here. "The Blob" is a developer nickname for the force of nature (incomprehensible elder god) that caused the cataclysm and isn't (and can't be) remotely understood by anyone in game.
Portal tech is inherently dangerous and what started this whole thing, portals will not somehow get to a safer place. The Exodii strategy is to use portals to keep moving to worlds less advanced in the cataclysm (because sticking around won't work), but the process of moving is dangerous and messy.
There is no cure, or if there is one it kills you. IIRC what those lab notes report is related to repeated teleportation removing XE-037 from the body (and it also kills the subject). |
I was mostly thinking about the craftable "pet" blobs you can create in the game (the goo canisters). Those blobs will attack hostile blob creatures and zombies (and I think they can consume zombies and replicate like normal blob enemies) while still being friendly to the player. If something like that is possible, and considering how simple it seems to make them, perhaps some enterprising group could find a way to use those to displace the more "hostile" forms of Blob contamination. Everything would still be contaminated by The Blob, but now it would be a situation where (at least in certain "safe zone" areas) manifestations of The Blob wouldn't be actively hostile to Human life. Survivors wouldn't need to understand how it works, just that it does. Anyway, this is just a rationalization for Humanity's survival on Earth if that's a something folks wanted to allow for.
Ah, well in that case, yeah. A hypothetical "Exodii" ending would just be the remnants of Humanity joining the Exodii in their eternal flight.
I thought there was a note about an inoculation that removed Blob contamination from the host (at least until the host was re-infected). Maybe I'm misremembering. |
Those produce slimes, which are unrelated, and goo canisters are not craftable. |
I didn't notice they made them un-craftable, but at least they're still in the game. Also, aren't slimes the most direct manifestation of The Blob? I was under the impression that slimes/brain blobs were essentially just condensed forms of The Blob contamination found in zombies (and everything else). |
Nope, unrelated. |
Huh, well, even so; with how the friendly slimes are implemented (last I checked), it seems like they can be used to quickly clear out a lot of zombies. That's gotta count for something. Sorry for the ramble, but I think the reason I want the "end not to not be the end" so bad is because I just don't like the idea of everyone being dead within 100 years. To me it comes off as nihilistic and, honestly, kinda sad. It renders everything everyone does in the game's narrative moot, since no matter how hard they struggle nothing will change. I like the Darkest Dungeon 2 approach to dealing with a cosmic horror where, yeah you can never really beat it, and eventually it will win. However, by holding off the end for just a while longer, you've given humanity another chance to live. It's an endless struggle, but one worth fighting for as long as possible. Where before everything people did changed nothing, now it can change at least one thing: it buys the world a bit more time to live. So, I think instead of saying "everyone will be dead in 100 years", it would be better to be like "helping survivors now will allow whoever's left in 100 years to keep fighting. They may not win, but maybe they can delay the end like you did." It's nice to have a glimmer of hope in these trying times. |
Friendly slimes (that aren't generated by the Slime mutation trees) are pretty constantly on the chopping block but are generally a small enough thing that no one has bothered to remove them despite Kevin mentioning they can go several times. |
Summary
Content "Adds new endings which are impacted by the strength of other factions"
Purpose of change
When I was going through the faction endings, it seemed to me like some of the problems groups like Hub-01 faced could have been resolved if they had established connections with certain other groups, like the Exodii. From this I thought that it would make sense for these faction's epilogues to be impacted by how strong other factions are. A strong Old Guard would probably have bad implications for the Isherwoods and the Hell's Raiders; if the Free Merchants collapse, it wouldn't make sense for the Tacoma Commune to stay loyal to them, etc. The new endings I've added and my initial thoughts can be found in #74032.
Describe the solution
Right now, this works by inserting a new, optional "dynamic" array within in the epilogue array. "dynamic" considers three values, the faction id ("faction") and the power_min/power_max. power_min is the power the given faction needs to be above and power_max is the power they need to be below. You can string together multiple factions using these in the "dynamic" array to create scenarios which allow for the given snippet(s). The snippets are printed out sequentially in the epilogue window at the end, so you can have multiple ending snippets be printed out for the same faction given different other faction combinations.
Example: For the Tacoma Commune there are 4 ending variations.
Describe alternatives you've considered
This could be expanded by adding a conditional element to the json. Doing this would allow for more complex situations.
Testing
I've run these changes on my personal copy of CDDA, and everything seems to work good.
Additional context