Support Starmancer on Kickstarter before it's too late! There isn't much time left!
Needs are the things that kill a colonist when ignored.
As such, needs are a fundamental parts of colonists, so it seemed like a good idea to explain them.
Needs
Currently, colonists have 8 needs:
- Oxygen
- Thirst
- Hunger
- Urinate
- Heat
- Cold
- Sleep
- Social
Basic Needs
Needs are in the range 0 to 100.
Needs go down over time. Each need has a different reduction rate. Sleeping is fully reduced in about 48 hours. The oxygen need is fully reduced in about 30 minutes.
Note: All time frames are "in-game" and not real time.
You'll be able to click on a colonist and get information about which needs are low. Here is a mockup of what we want the finished colonist window to look like. It will be much cleaner than the window in the demo.
Empty Needs
When a need reaches 0, something bad happens.
By default, every need has a "Colonist Damager". In the case of the "social need", the damager does 0 damage (so a colonist can't die simply from being left alone).
The colonist is damaged every X seconds until the need is restored.
If a colonist is too hot, for example, they suffer 1 damage* every 20 minutes.
*Colonists have a max of 10 hp
In the specific case of being too hot, colonists should ideally take excess damage if the room is really hot, but they currently don't. The reason for this is because the need was designed around a station getting progressively hotter (instead of you trapping your colonist in a room that is 1000 degrees). Eventually, we'll make the damager more complex.
It's worth pointing out that it wouldn't be fun if your colonists died so fast that you never even knew there was an issue.
Need Callbacks
This is a bit boring, but maybe technically interesting.
As needs decrease (or increase) we have special events that can be called.
We use these to queue states, memories, thoughts, whatever.
Let me show you an example with the hunger need:
At need level 90: Queue find food - Normal Priority
At need level 50: Add memory of being hungry
At need level 25: Show thought bubble AND queue find food - Urgent Priority
Specific Needs
All needs share a similar framework (decrease over time, do something when empty), but each need is restored in a very unique method.
Oxygen
The oxygen need is a colonist's need for breathable air. Every tick, colonists breathe in air from the atmosphere.
They need 21% oxygen in order for their oxygen need to be restored.
If the atmosphere isn't at least 21% oxygen, a partial breath will be saved. Once the stored partial breath reaches 21% oxygen, the need is maxed, and the partial breath is reset.
Here's something boring to consider:
The colonists breathe in, let's say, 100 units of "air". Let's also assume that colonists need 21 units of oxygen each tick. If the atmosphere is 1% oxygen, the colonist will only have breathed in 1 unit of oxygen. If the atmosphere is 99% oxygen, then the colonist will have breathed in 99 units of oxygen.
Currently, there is no con for breathing excess oxygen, but there is also no way to have over 25% oxygen in the atmosphere, so it doesn't matter.
Thirst
Thirst is fairly simple. It currently decays over 3 days.
Thirst is restored from eating food and drinking water (there's also a drinking fountain).
All food has a unique amount of water stored. A tomato, for example, has more water than wheat. So a colonist would get more water from eating a tomato.
Urinate
Urination is the opposite of drinking (you learn so much in these blogs).
Colonists use toilets to satiate their urinate desire. This is a complicated way of saying that they "urinate in toilets".
Colonists internally store water when they eat/drink. This internal water is then transferred to a toilet. If the toilet is connected to a water recycler (via pipes) this dirty water will be recycled. Otherwise, the water is forever lost.
If a colonist goes too long without urinating, they will pee their pants. This has a negative morale modifier and prevents any of that water from being recycled.
Hunger
Colonists get hungry. I don't need to describe the basics of this.
Colonists actually have a nutrition system. The short version is that as colonists move, they consume energy. Consuming energy makes them hungrier.
A bedridden colonist won't eat as much food. So if you're low on food, lock everyone in their bedrooms.
Cold and Hot
Cold and heat are 2 distinct needs internally, even though they are essentially the same thing (just different ends of the spectrum).
If a room is too hot or cold, colonists will start to take damage. As I mentioned earlier, there is not any excess damage from being in an extremely hot or cold room.
This is partially an oversight (that will be fixed eventually), and partially due to the design of the need (we were thinking that a station would progressively get hotter/colder).
Balancing the excess damage per unit of temperature will be somewhat time consuming. It's obvious that a 1000 degree room should kill a colonist instantly, but how quickly should a colonist die in a 75 degree (Celsius) room?
Sleep
Colonists get tired and need to sleep.
Colonists claim their own bed and will use it forever. No colonist will sleep in a claimed bed. There is no current support for sharing beds, although we do plan on implementing something for it.
If the sleep need reaches 0, the colonist will pass out. There is a morale penalty for this, and the colonist will sleep for a very long time (around 12 hours).
Colonists use a schedule system, so they'll sleep until they're scheduled to not sleep. Eventually, we'd like to change the "sleep category" with "go to your room category". This way, colonists will remain in their room and do bedroom stuff (sleeping, hobbies, etc)
Social
Colonists need to socialize with other colonists.
This need will not kill a colonist, but it has a severe morale penalty.
The social need is slightly restored whenever a colonist talks to another colonist. There's all sorts of speech icons for colonists to use.
There is a "socialize" state. It's not finished yet, but currently, colonists will find a seated object (chair or couch) and go sit in it for an hour or so. The colonists will stay in the couch for about an hour. The idea is that all of the colonists will congregate in similar areas.
Summary
That's a basic overview of how needs work in Starmancer.
- Every need has a unique reduction value
- As needs lower, various callbacks are used
- Colonists queue states to satisfy their needs
- When a need is empty, something bad happens (usually death)
Don't forget to support Starmancer on Kickstarter before it's too late!