-
Notifications
You must be signed in to change notification settings - Fork 247
Diseases Design Document #520
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
base: master
Are you sure you want to change the base?
Conversation
You've outlined diseases and virology which is good, but haven't really answered the following:
|
I will add the rest later. |
Maintainers are also against the idea of jobs that spend almost all their time in a single room. Unfortunately, virologists and quarantined patients are isolated from the station by nature, so who's to say what their thoughts will be. If there's anything real world pandemics taught us, virologists got very busy performing swabs and contact tracing patients. This might be something you could get virologists to do than to solely find a cure. Hell, give them a computer that does disease monitoring. |
Virologists could need to collect various blood samples from specific patients who might be natrually immune or resistant to diseases as well as, if its a real bad disease, travel to different quarantined departments to innoculate people. I like to imagine during zombies they would be all over the place, perhaps if med gets over run doing maints-viro to make a cure. You can certainly make a more mobile virologist |
Also give virologists the ability to lock down departments or force people into plastic bubbles |
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 design doc is mostly a shopping list of features you want to add, and does not really mention any design points at all.
Why are you implementing it the way you chose to?
Are you directly following the SS13 implementation? Which points deviate from that and especially why did you choose to deviate from it?
What is the intended roundflow for the new job? What kind of gameplay should be avoided? Especially address the concern that was brought up about players spending too much time in isolation.
Also see the proposal template.
These are the important questions a design doc should answer so that future contributors know what kind of changes will be accepted or not.
Also you have to link your proposal in the |
I would like to avoid this, I based it on that, but it can be considered separately from ss13 (I don't want to fill the document with all the differences that may accumulate during the discussion :d) |
My point was that you should mention what made you implement the feature the way you did, and inspiration from ss13 is only one possible answer. If you did not base it on that that's totally fine. |
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.
An issue here and with other parts of the doc is it lacks a why or how.
Gameplay should be interesting for all parties involved, infected, medical, and crewmember.
I agree! But how do we do that? Are the disease effects interesting? Is getting cured fun? Are there benefits and consequences to choices each party makes? Do players feel like they have a meaningful choice?
A design doc should be asking and answering these questions not just for this bullet point but all of them in the doc.
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.
I cannot take this design doc in good faith given the fact it was clearly written post-fact and, from my own reading, has many glaring absences.
We ask for design docs ahead of making a PR with 3,700 line changes. This way we can vet the system, at least in a basic form, before contributors spend a significant amount of time making a feature that might not ever work in SS14's context.
Virology has been a common mechanic in SS13 servers, yes, but it has also commonly been a terrible mechanic in practice. This is despite there being many SS13 servers with many takes on the concept, and even SS14 having had its own shot at it (and it being removed because it was awful).
Despite this historical baggage, this design doc makes no attempt to acknowledge it or compare with SS13, let alone compare multiple disease systems (Paradise's is not the only one). This is hugely problematic.
There are sections like "Core design principles" which, while sounding nice, are not the basis for most of the core design, given that you made this list up in response to being told to write a design document. Many sections of the document seem to be outright padding for space via complex writing. Spots like "Desired player experience" read more like a poorly thought out excuse to involve every department rather than actually being realistic.
Furthermore, maintainers have already asked you the hard questions about how SS13 diseases work ("quarantine sucks, what's your plan?") and you've avoided answering them.
I'm sorry, but we cannot really critically review this design document because it reads more like a justification to save 3,700 lines of work rather than an actually thought-out design document. I want to repeat myself: this is why we demand design documents ahead of time.
Protective factors: | ||
* Gloves (40%) | ||
* Feet (20%) | ||
* Outer clothing (20%) | ||
* Inner clothing (10%) | ||
|
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.
Design documents should not have numbers like this. You should write in broad strokes like "different clothing may have different protective factors" and let the exact values be decided through playtesting and experimentation during development.
* Eject sample: returns the sample to the user without modification. | ||
|
||
### Vaccines | ||
Vaccines are a special reagent (`id: vaccine`) that add disease-specific immunity by writing active entries to the carrier's resistances. |
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.
Design documents are about design. They should not have technical details like this.
To give another example of how this design document misses the mark, it spends most of its time discussing all the cool things diseases do. For most players, however, this is how diseases interact with gameplay in SS13:
A design document like this should go into much more focus about how players interact with diseases. The most you have for "regular crew" is "Crew make meaningful, situational choices: mask up, seek treatment, help with cleaning." and one of those bullet points is the janitor's job, and you don't even explain what needs to be cleaned. |
I will redo all of this, thank you for your feedback. |
As for the virologist, I think his problems are practically impossible to solve. It is very difficult to make his role interesting outside of virus outbreaks, and during these outbreaks, if medical personnel do not rely on him, he will become unnecessary. He can be excluded from this document so that medical personnel can do his job themselves as needed. |
Please |
@Princess-Cheeseballs Hi, I've updated the document, it's not quite ready yet (I need to fill in the |
1. Noticeable cues to the carrier and observers (emotes, sensations) so suspicion of illness does not require machines. | ||
2. Frequency and intensity scale by stage with clear early tells; avoid sudden spikes to severe effects with no telegraphing. | ||
3. Symptom channels reflect infection routes (cough/sneeze -> airborne, vomiting/slime -> contact, bleeding -> bloodborne) to teach responses. | ||
4. Short stumbles or brief stuns are acceptable; long stun chains or frequent item drops that stall the player are not. |
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.
I'm not sure about adding short stumbles or stuns even if it's realistic, especially since we haven't quantified stun frequency or if it stacks with other symptoms. I think a good compromise would be to suppress symptoms temporarily through adrenaline when feeling pain or being wounded.
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.
I disagree, if a crewmember ignores a disease for long enough they should start facing greater scaling consequences. They're taking a gamble that it'll go away and sometimes you lose that gamble.
|
||
## The onset of disease | ||
Outbreaks may be seeded predictably (scripted incidents, contaminated cargo, wildlife) or arise stochastically from environmental conditions (miasma, poor hygiene, crowding). Randomness adds variety, not force majeure: every disease must offer counterplay via early signals, PPE and cleaning, ventilation, targeted reagents, vaccination, and situational isolation. | ||
#### Local outbreak |
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.
You may also want to add low-level infections that don't spread and are caused by generally unhygienic conditions. For example, doing surgery out in the open hallway with kitchen utensils. This gives isolated cases that can be handled by doctors but have some interest for virologists.
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 more of a medical task, this document is more about viruses. But the system allows adding it.
* Cargo and Chemistry provide logistics and reagents. | ||
* Crew make meaningful, situational choices: mask up, seek treatment, help with cleaning. | ||
* Antagonists may exploit confusion, but diseases are **not** griefy, unstoppable tools. | ||
### Gameplay loops |
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.
Notably lacking in detail about contact tracing as a possible gameplay mechanic to track spread of diseases.
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.
I'm thinking about it, but it's quite difficult to implement.
|
||
1. Outbreak begins (global or local). Early, soft symptoms appear, crew notices and reports. | ||
2. Triage and partial diagnostics. Suspected carriers are flagged via [partial diagnosis](#partial-diagnosis), PPE is issued to limit spread. | ||
3. Immediate suppression and mitigation. Carriers take suppressants, wear masks and gloves, cleaning starts, ventilation is adjusted, players keep working. |
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.
Good, but I would explain how cleaning works since we're doing contact transmission through items. For example, using a sink to rinse dishes, soap and rag to clean tools, a laundry machine to clean clothes in bulk, etc.
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.
It's worth adding a link to contact infection and describing in more detail what cleaning should look like.
|
||
After complete recovery, the base immunity strength to the disease is applied. Immunity can also be pre-configured for each entity in the carrier component or [vaccines](#vaccines). | ||
#### Symptoms | ||
Symptoms should clearly signal that a character is ill, drive the player toward medical tools and help, and shape risk for nearby crew without turning the carrier into a spectator. |
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.
I assume this means you will be able to examine patients for symptoms? Will this also mean running tests or procedures to rule out other diseases like in real life?
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.
The crew can simply guess the type of illness. Nothing more complicated than just diagnostics with a machine displaying everything, didn't think about that in this design.
Reads well in concept for diseases, some sections just need a bit more detail. |
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.
A big improvement, I think you should go into more detail and specifically make a clear difference between diseases as a consequence versus diseases as an event.
Why does a person get infected with a localized disease? When should we start punishing them for it? What should those punishments be? When the disease first start? When it progresses? And of course at what point should it start spreading beyond them if left untreated? And how do we ensure that this doesn't feel unfair to an uninvolved crewmember.
For global diseases much of the same but more of "How do we make this feel fun for a person who has been randomly infected at no consequence of their own?" Space Station is a wacky game so we don't need to adhere to reality when it comes to the things diseases can do to people.
In addition, should ignoring a disease always have consequences? Should crew-members be able to gamble with their lives and sometimes win? Should all diseases be harmful?
* Airborne transmission routes that account for viruses in the atmosphere, increasing engineering involvement. | ||
|
||
## Background | ||
We aim to introduce a clear, maintainable foundation for diseases and a virology role that integrates with existing medical workflows. The initial scope focuses on readable mechanics, predictable player tools, and performant systems that can be iterated on in future PRs on mutations and virus creation. |
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.
I'd use more neutral language like "This design doc aims"
Species and animals may possess innate or acquired resistance that alters the probability of infection, to create desired gameplay situations. | ||
|
||
#### Global outbreaks | ||
A virus outbreak affecting a significant number of station personnel (random event). It need not be rare, due to measures that [protect against spread](#protection-against-spread), but it should not occur every round. |
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.
One thing I talked about is I feel like events should be interesting. We have a lot of midround events that are super boring so I would say it should be a design pillar that global outbreaks aren't "just another disease" but somehow different and special.
A virus outbreak affecting a significant number of station personnel (random event). It need not be rare, due to measures that [protect against spread](#protection-against-spread), but it should not occur every round. | ||
|
||
#### Local outbreak | ||
A virus outbreak affecting one or more individuals due to a predictable event (contact with a corpse, artifact, food poisoning, etc.). May be more dangerous for the carrier because the cause is localized rather than random. |
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.
Generally local outbreaks shouldn't spread beyond those operating in dirty environments unless medical truly messes up bad. That way it's more of a punishment for unclean and poor working conditions on one person that can spiral out of control if medical chooses to ignore it.
|
||
* Different types of infection should be blocked by different types of clothing. This increases immersion—less clothing means more points of contact with the disease. Specialized clothing (e.g., medical masks) may have their own protection values. Percentages should be determined during playtesting. | ||
|
||
* Quarantine should be avoided as a priority containment measure, as it requires the crew to remain in isolation, which is not a pleasant experience. For some major events or game modes (e.g., zombies), it is acceptable as an effective means of control. |
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.
I would argue that quarantine can be interesting if the disease is interesting like you said with zombies. It's a bit gamey but the spreadability of a virus should be directly coorelated to how mechanically interesting the virus is. Space-covid where you catch it easily then get sick and die isn't interesting. Zombies on the other hand are interesting and quarantine becomes more acceptable since it's part of an engaging gameplay loop.
1. Outbreak begins (global or local). Early, soft symptoms appear, crew notices and reports. | ||
2. Triage and partial diagnostics. Suspected carriers are flagged via [partial diagnosis](#partial-diagnosis), PPE is issued to limit spread. |
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.
I find this to be kind of an unrealistic scenario, with how isolated crewmembers can be, and how often departments can just ignore responsibilities it's unlikely that medical will respond to a disease unless it is brought directly to them or it is such a threat that they are forced to address it.
I'd make the gameplay loops of global and local viruses distinct since that would allow them to be tweaked and balanced differently, global outbreaks being an event that attempts to spice up a round, and local outbreaks being a consequence of poor station management.
1. Noticeable cues to the carrier and observers (emotes, sensations) so suspicion of illness does not require machines. | ||
2. Frequency and intensity scale by stage with clear early tells; avoid sudden spikes to severe effects with no telegraphing. | ||
3. Symptom channels reflect infection routes (cough/sneeze -> airborne, vomiting/slime -> contact, bleeding -> bloodborne) to teach responses. | ||
4. Short stumbles or brief stuns are acceptable; long stun chains or frequent item drops that stall the player are not. |
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.
I disagree, if a crewmember ignores a disease for long enough they should start facing greater scaling consequences. They're taking a gamble that it'll go away and sometimes you lose that gamble.
Well, there's still work to be done, I'll get to it a little later. Thanks for the detailed review. |
The main design friction here is going to be quarantine vs cure - these are two different pillars. Crewmate gets disease from some source -> disease gives some problem the player needs to solve -> disease handled by med -> crewmate OK Diseases can then be anything from particular types of poison, to food poisoning, to a viral infection, to magic nonsense. This makes diseases into a pillar of medical gameplay -> you don't just handle trauma, you handle weird shit that can go wrong in the body. Quarantine to me feels like an antagonistic force -> the station needs to fight off the spread of some disease. We already have that with zombies to an extent. Oldheads will remember "sentient disease" as an outright antag! I think it's two documents. "An outbreak of something infectious" being a potentially very unfun PVE antag that needs TLC to make work well doesn't need to block the existence of diseases outright. "Virology" and a virologist job role is also something that needs to be parcelled out separately. It will be a cold day in hell before Wizden accepts the traditional virology and genetics roles that 13 med had, and "this one role is required to counter bad thing X" is banned as design. |
This is not relevant for the current version of the document (?) The rest is worth thinking about. For now, I will follow the scenario proposed by Princess, and then we can discuss whether these contradictions remain. |
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.
Two things.
* Diseases occur in persons upon contact with a carrier, the nature of which depends on the type of disease. The method of infection can be anything, but it must originate from the event that acts as the carrier (gas from an artifact -> airborne transmission, dirt -> contact transmission) and take into account the appropriate methods of protection. | ||
* Diseases caused by a local event should have a low chance of infecting others so as not to provoke a chain reaction spreading to most of the station. However, this chance should not be so low that medical personnel can ignore the disease and delay treatment or [containment measures](#protection-against-spread). The danger of the disease can be regulated by the prevalence of the carrier. | ||
* Diseases caused by a local event should have a low chance of infecting others so as not to provoke a chain reaction spreading to most of the station. However, this chance should not be so low that medical personnel can ignore the disease and delay treatment or [containment measures](#protection-against-spread). | ||
* The danger of the disease can be regulated by the prevalence of the carrier (the rarer it is, the more dangerous it can be). |
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.
I'd also mention that the ability for the crew to control the source of infection should also determine danger. For example: Maints surgery. The crew has a lot of time to prepare a clean operating area and if they don't, then they open themselves up to extreme punishment for both the operator and the one being operated on.
Arguably the same could be done for the implanter since 50 genetic is not that interesting? But I wouldn't mention that since it's out of scope and also a feature that will probably be removed at some point...
|
||
* Usually, the trigger should be a random station event. | ||
* Diseases caused by a station‑level event should have a high chance of infecting others, creating a chain reaction that can spread to most of the station. At the same time, this chance should not be so high that medical personnel are overwhelmed and unable to react with timely treatment or [containment measures](#protection-against-spread). | ||
* The danger of the disease can be regulated by the probability and time when the event usually occurs (the rarer and further in time, the more dangerous it can be). |
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 sentence reads in a way that's confusing? I assume you're trying to say that as the round progresses more dangerous diseases become available?
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.
Nitpick. I think this just needs global diseases to be filled out and I'll have some others look at it then start a vote.
I'm gonna wait till after offmed testing to start a vote since a lot of attention is going to that right now.
2. Blind treatment can be wrong; drugs should have side effects in small doses to punish random search. | ||
3. Treatment at the symptom level is temporary and should contain the harm from the disease until complete treatment, so it may require less effort. | ||
4. Completing treatment grants immunity against this disease. Its strength depends on the disease type, but is usually high to prevent reinfection loops. | ||
4. Completing treatment grants immunity against this virus. Its strength depends on the virus type, but is usually high to prevent reinfection loops. |
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.
I'd use disease here since viruses are very specific and don't include like, fungal infections, parasites, bacteria ect.
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.
I corrected this because I don't expect that after some kind of gangrene there should be immunity after recovery, but from the flu virus - yes.
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.
Perhaps immunity needs to be described in more detail, but for now, I'm satisfied with it.
This comment was marked as off-topic.
This comment was marked as off-topic.
No D: |
Basic disease design document (without mutations or creations)
Needed for space-wizards/space-station-14#40545