Jump to content

[WIP] CrewQ(ueue) - Crew Rotation, Variety, and Consequences.


enneract

Recommended Posts

Looks pretty nice.

I'd like if there was some sort of happiness boost one certain occasions. For example, when your ship finally reaches Eve's SOI, the kerbals are probably pretty happy to be able to see that purple dot in the sky, boosting their happiness for a while. This might also depend on the body – landing on Dres will not make Jeb as happy as landing on Laythe, for obvious reasons.

Also, increasing unhappiness should also depend on the circumstances – in your Low Kerbin Orbit space station from where they could return within minutes the kerbals aren't going to get unhappy as fast as on the ship that'll arrive at Eeloo in a few month, because seeing their home underneath them is probably nicer than not even getting proper sunshine. This factor could be influenced by distance to home and "beauty" of the environment (a Joolrise over a Laythian ocean doesn't exactly sound like a particularly depressing sight). Maybe it might be possible to link that to for how long a situation has persisted – if you've just landed, Eve's purpleness may be quite interesting, but once you realize a return is not planned, you'll get sick of it quickly.

Link to comment
Share on other sites

Neat! Will you have other categories as well? (e.g. Emergency missions, urgent missions, important missions, regular missions)?

No. That is flavor text to indicate that you *can* send them, just that they won't be selected by default. This has been replaced by a timer until ready in more recent versions.

- - - Updated - - -

Looks pretty nice.

I'd like if there was some sort of happiness boost one certain occasions. For example, when your ship finally reaches Eve's SOI, the kerbals are probably pretty happy to be able to see that purple dot in the sky, boosting their happiness for a while. This might also depend on the body – landing on Dres will not make Jeb as happy as landing on Laythe, for obvious reasons.

Also, increasing unhappiness should also depend on the circumstances – in your Low Kerbin Orbit space station from where they could return within minutes the kerbals aren't going to get unhappy as fast as on the ship that'll arrive at Eeloo in a few month, because seeing their home underneath them is probably nicer than not even getting proper sunshine. This factor could be influenced by distance to home and "beauty" of the environment (a Joolrise over a Laythian ocean doesn't exactly sound like a particularly depressing sight). Maybe it might be possible to link that to for how long a situation has persisted – if you've just landed, Eve's purpleness may be quite interesting, but once you realize a return is not planned, you'll get sick of it quickly.

In terms of short duration missions not incurring much to any unhappiness, completely agreed; this is a design goal, that this is intended to prevent ridiculous long-duration missions.

I think that this bit about locstion affecting unhappiness might be a bit too complicated for my taste. I want the system to be intuitive and easily comprehended. However, an api will be available for other authors to use if so desired.

Link to comment
Share on other sites

Neat! Will you have other categories as well? (e.g. Emergency missions, urgent missions, important missions, regular missions)?

I think that just indicates that they really *aren't* available, because they're on vacation; however, you can call them and order them to get down to KSC because you truly have to launch them (e.g. "Jeb, Bill fell out of his ship and is on a Munar return trajectory. If you don't launch to pick him up, he'll die.")

One other thing to think about will be the effect of pulling someone out of vacation on their new vacation. If someone gets back from 10 years away (and so has earned a year off), I shouldn't be able to fly them for a week (with them not doing anything in their massive frustration, just being spam-in-a-can) and end up with them ready 30 days later. So when a Kerbal flies on vacation, whatever the length of their flight, it should add 10%-of-flight-with-30-day-minimum to vacation days left.

Here's an idea for a slightly more detailed algorithm:

Each Kerbal has four things stored relevant to vacations: FlightTime, VacationRemaining, FixedUnhappiness. There's a global LastVacationTick timestamp. A kerbal with 0 days remaining on vacation is owed no vacation from previous flights; their FixedUnhappiness is set to zero each tick. A kerbal in flight has FlightTime counting how long their flight is; a kerbal not in flight has FlightTime set to zero each tick. The "set to zero each tick" shouldn't be necessary, but with realities of software it will be.

Each tick, you compute how long it's been since the last tick. For all kerbals on the ground, say Unhappiness -= (Unhappiness-FixedUnhappiness)*(DeltaT/VacationRemaining); VacationRemaining -= DeltaT; if (VacationRemaining <= 0) then Unhappiness = FixedUnhappiness = VacationRemaining = 0. For Kerbals launching, set FlightTime=0, and for Kerbals in flight set FlightTime+=DeltaT.

When a Kerbal lands, check if VacationRemaining is zero. If it is, and if FlightTime is less than a cutoff, then set Unhappiness to zero (no vacation time, and in a short flight they can't get *that* unhappy, so they're fine after getting to go home and see their families and talk to frien. If it's not, or if FlightTime is more than the cutoff, say Unhappiness+=f(FlightTime); FixedUnhappiness += .1*f(FlightTime); VacationRemaining += min(30d, 0.1*FlightTime). f(x) is an increasing function of x.

This has a Kerbal lose 90% of their vacation-based unhappiness linearly over the course of their vacation. They lose the remaining 10% at the end of their vacation. Mission unhappiness is lost smoothly over the vacation (as a Kerbal forgets the problems on the mission). When they land, unhappiness increases if their flight was long enough or if they were pulled off vacation, to simulate "no one likes being yanked off vacation". A minimum unhappiness for being yanked off vacation is a side-effect of the minimum vacation length. Emergency flights are penalized by having starting unhappiness, and by adding another fixed unhappiness segment of at least that associated with a 30 day vacation (fixed unhappiness is only lost when they complete a vacation), and by extending the vacation at least 30 days. If a Kerbal is repeatedly sent on emergency flights, fixed unhappiness keeps climbing, even if they're only losing an hour of vacation each time; they also keep having 30 days added, even for a 10-minute flight.

From a user perspective, it gets introduced like this: Kerbals don't like being pulled off vacation early. The more time you cut off their vacation or the longer the mission they're relaxing from, the less they like it, but no matter how little time you're cutting their vacation short by they don't like being called back early. They really don't like it if you keep pulling them off vacations; until you let them finish all their vacation time, their annoyance at being pulled back early will just grow. Normally they understand they're not entitled to a vacation after a short mission, but if you pulled them off vacation they'll *demand* more vacation time because you cut them off suddenly last time.

Three things after rereading what I wrote: First, that's probably somewhat rambling, so sorry. Second, don't take this as a "here's exactly how it should work;" it's just a suggestion with a bit more detail, and I'm sure whatever you come up with will be great. Third, if you want me to keep to more general suggestions because it's your mod and you'll do the details the way you want to and don't want other people to tell you how it should work, just ask (this is just a suggestion, and if you want more suggestion-like suggestions instead of detailed proposal-like suggestions, that's fine by me).

Edited by cpast
Link to comment
Share on other sites

I think that just indicates that they really *aren't* available, because they're on vacation; however, you can call them and order them to get down to KSC because you truly have to launch them (e.g. "Jeb, Bill fell out of his ship and is on a Munar return trajectory. If you don't launch to pick him up, he'll die.")

One other thing to think about will be the effect of pulling someone out of vacation on their new vacation. If someone gets back from 10 years away (and so has earned a year off), I shouldn't be able to fly them for a week (with them not doing anything in their massive frustration, just being spam-in-a-can) and end up with them ready 30 days later. So when a Kerbal flies on vacation, whatever the length of their flight, it should add 10%-of-flight-with-30-day-minimum to vacation days left.

Here's an idea for a slightly more detailed algorithm:

Each Kerbal has four things stored relevant to vacations: FlightTime, VacationRemaining, FixedUnhappiness. There's a global LastVacationTick timestamp. A kerbal with 0 days remaining on vacation is owed no vacation from previous flights; their FixedUnhappiness is set to zero each tick. A kerbal in flight has FlightTime counting how long their flight is; a kerbal not in flight has FlightTime set to zero each tick. The "set to zero each tick" shouldn't be necessary, but with realities of software it will be.

Each tick, you compute how long it's been since the last tick. For all kerbals on the ground, say Unhappiness -= (Unhappiness-FixedUnhappiness)*(DeltaT/VacationRemaining); VacationRemaining -= DeltaT; if (VacationRemaining <= 0) then Unhappiness = FixedUnhappiness = VacationRemaining = 0. For Kerbals launching, set FlightTime=0, and for Kerbals in flight set FlightTime+=DeltaT.

When a Kerbal lands, check if VacationRemaining is zero. If it is, and if FlightTime is less than a cutoff, then set Unhappiness to zero (no vacation time, and in a short flight they can't get *that* unhappy, so they're fine after getting to go home and see their families and talk to frien. If it's not, or if FlightTime is more than the cutoff, say Unhappiness+=f(FlightTime); FixedUnhappiness += .1*f(FlightTime); VacationRemaining += min(30d, 0.1*FlightTime). f(x) is an increasing function of x.

This has a Kerbal lose 90% of their vacation-based unhappiness linearly over the course of their vacation. They lose the remaining 10% at the end of their vacation. Mission unhappiness is lost smoothly over the vacation (as a Kerbal forgets the problems on the mission). When they land, unhappiness increases if their flight was long enough or if they were pulled off vacation, to simulate "no one likes being yanked off vacation". A minimum unhappiness for being yanked off vacation is a side-effect of the minimum vacation length. Emergency flights are penalized by having starting unhappiness, and by adding another fixed unhappiness segment of at least that associated with a 30 day vacation (fixed unhappiness is only lost when they complete a vacation), and by extending the vacation at least 30 days. If a Kerbal is repeatedly sent on emergency flights, fixed unhappiness keeps climbing, even if they're only losing an hour of vacation each time; they also keep having 30 days added, even for a 10-minute flight.

From a user perspective, it gets introduced like this: Kerbals don't like being pulled off vacation early. The more time you cut off their vacation or the longer the mission they're relaxing from, the less they like it, but no matter how little time you're cutting their vacation short by they don't like being called back early. They really don't like it if you keep pulling them off vacations; until you let them finish all their vacation time, their annoyance at being pulled back early will just grow. Normally they understand they're not entitled to a vacation after a short mission, but if you pulled them off vacation they'll *demand* more vacation time because you cut them off suddenly last time.

Three things after rereading what I wrote: First, that's probably somewhat rambling, so sorry. Second, don't take this as a "here's exactly how it should work;" it's just a suggestion with a bit more detail, and I'm sure whatever you come up with will be great. Third, if you want me to keep to more general suggestions because it's your mod and you'll do the details the way you want to and don't want other people to tell you how it should work, just ask (this is just a suggestion, and if you want more suggestion-like suggestions instead of detailed proposal-like suggestions, that's fine by me).

I don't mind the detailed responses.

As for the suggestion -> yes and no. I'm not store any data about the kerbal that I can't find a clean way to display to the player. I dislike adding GUI windows, and prefer to add to or modify existing GUI elements.

Link to comment
Share on other sites

  • 3 months later...
  • 4 years later...
1 hour ago, Stone Blue said:

Sorry for the necro, but just wondering if this mod might still be relevant to current versions of KSP, and/or if there are any other mods that do *all* of what this mod did... vOv

@linuxgurugamer Do any of your maintained mods do all this? vOv

Yes, this was adopted and renamed at the request of the author:

 

Link to comment
Share on other sites

10 minutes ago, linuxgurugamer said:

Yes, this was adopted and renamed at the request of the author:

oh!... derp.. didnt realise that was where Crew R&R came from :face_palm:
I usually add something like [formerly <old_mod_name>] to my archived .zip filenames, when theres a significant name change on "continuations/adoptions/takeovers/forks"... musta missed that on this mod
Thanx :P

Edited by Stone Blue
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...