7
\$\begingroup\$

In Space Junk Cyberpunk I can sing Happy Birthday after every third roll to remove one loneliness.

Here are the rules:

the rules for Space Junk Cyberpunk

You have three scores: BREAKDOWN (which starts at 0) LONELINESS (which starts at 0) RESCUE (which starts at O)
To start the game, you generate a new Event by rolling a six-sided die (d6). Adjust your scores as directed by the table (or subtable), then roll a new event. TIME PASSES... (ROLL A d6)
1 or 2 Keeping Busy...
3 or 4 Machine Dreams...
5 or 6 You send a report into the stars in the direction Of home. Gain 1 RESCUE.

Keeping Busy

Roll Description Result
1 You get dust in your motors. They sputter and grind. +1 BREAKDOWN
2 You collect rocks, and pile them up in nice stacks. +1 LONELINESS
3 You stare up at the sky, and look for home in the stars. +1 LONELINESS
4 You get stuck in a rockslide, and are forced to try and free yourself. +1 BREAKDOWN
5 One of your arms stops working after you pick up something heavy. After both your arms break, re-roll on this table in future. +2 BREAKDOWN
6 A storm of rock and sand buffets you. There is no shelter in this place. +1 BREAKDOWN, +1 LONELINESS

Machine Dreams

Roll Description Result
1 You try and patch yourself up. It takes time. You may add 1 LONELINESS to remove 1 BREAKDOWN
2 You think of home. What did it look like? +1 LONELINESS
3 Who were your creators? Were they kind? Strong? Wise? You hope so. +1 LONELINESS
4 You work harder than ever to try and avoid the thoughts You may add 1 BREAKDOWN to remove 1 LONELINESS
5 Long days and long nights. Nothing but silence. NO CHANGE
6 There's a sputter on the radio. You eagerly strain your receptors, listening for more. +1 RESCUE

But what if my sad little robot doesn't want to?

How often do I need to sing Happy Birthday to myself, preferably as little as possible, so I can still survive? Or is singing the only way to survive?

\$\endgroup\$
5
  • 2
    \$\begingroup\$ I think we need a better tagging plan for these games. Right now, your system tag burden for one of these is three tags for the game, leaving only two tags to actually describe the question. \$\endgroup\$ Commented Sep 16, 2022 at 10:39
  • \$\begingroup\$ @ThomasMarkov agreed, hit me up in chat \$\endgroup\$ Commented Sep 16, 2022 at 10:46
  • \$\begingroup\$ Sorry @AncientSwordRage - that's a totally solvded game XD \$\endgroup\$
    – Trish
    Commented Sep 16, 2022 at 14:04
  • 1
    \$\begingroup\$ Is a robot that doesn't sing happy birthday on it's birthday even a robot anymore? \$\endgroup\$
    – SeriousBri
    Commented Sep 17, 2022 at 9:30
  • \$\begingroup\$ There is no winning strategy... you either break down, pine away, or are put to sleep by the creators. Poor little sad robot. \$\endgroup\$
    – James K
    Commented Sep 19, 2022 at 13:10

3 Answers 3

23
\$\begingroup\$

Finding an optimal strategy for a game like this might be missing the point.

You can play the game how you want. But if you choose to engage in an optimal strategy, you are no longer roleplaying, or rather, you have separated the roleplaying from the game mechanics. You may still be roleplaying the thoughts and feelings of the little robot, but you are no longer using those thoughts and feelings to inform the choices the game presents, opting instead to select your actions according to a predefined strategy. Once you elect to implement the optimal strategy, it becomes an exercise in rolling dice and singing happy birthday. You’ve made the choice to remove any future choices. This game is an RPG, but only if you choose to play it like one.

But since you asked…

Singing at every opportunity is required to maximize your chance of rescue.

There is no in-depth statistical analysis required here. Reaching 10 Loneliness or 10 Breakdown are losing conditions. Ergo, an optimal strategy is one that will stay as far away from these losing conditions as possible. Since singing happy birthday increases your distance from the Loneliness losing condition, and converting to Loneliness is the only way to offload Breakdown, singing at every opportunity is optimal.

Now, as for minimizing the amount you must sing, this cannot be done, at least, this objective is contrary to the goal of maximizing chance of success. Since singing at every opportunity maximizes the chance of success, singing any less than that decreases your chance of success. The only exception is if your Loneliness is already 0, then you may forego singing without compromising your chances of rescue. Minimizing singing and maximizing chance of success are contrary objectives. You cannot work toward both.

\$\endgroup\$
3
  • 1
    \$\begingroup\$ Let me rephrase, if not singing every opportunity increases my enjoyment of the game but I can't quantify by how much, then the utility of not singing is non-zero but otherwise hard to quantify. The question is then, is there any amount I can avoid singing or are my chances of winning without singing so low that it makes negligible difference. \$\endgroup\$ Commented Sep 16, 2022 at 11:18
  • 16
    \$\begingroup\$ @AncientSwordRage That’s an opinion based question. Only you can decide what level of compromise you’re comfortable with. I can’t tell you what maximizes your fun. \$\endgroup\$ Commented Sep 16, 2022 at 11:21
  • \$\begingroup\$ Let us continue this discussion in chat. \$\endgroup\$ Commented Sep 16, 2022 at 11:25
17
\$\begingroup\$

Statistics

You get +1 rescue on the 5 and 6, so 1/3rd chance. Atop that comes 1/3*1/6 from Machine Dreams. That's a chance of 38.89% to gain +1 Rescue.

  • 5.56% - nothing happens
  • 11.11% - a +1 Loneliness/+1 Breakdown or +2 Breakdown
  • 11.11% - a 1:1 exchange
  • 11.11% - +1 Breakdown
  • 22.22% - +1 Loneliness
  • 38.89% - +1 Rescue

Assuming perfect dice, that can be used to model a perfectly average game. The model ignores the effects of the two exchange events, treating them as "choose not to do it".

A link to a table of probabilities, visualized by its picture

# chance Result 1 attempt 2 attempts 3 attempts 4 attempts 10 attempts 20 attempts 25 attempts 26 attempts
1 5.56% Nothing 0.06 0.11 0.17 0.22 0.56 1.11 1.39 1.45
1 5.56% Loneliness +1/Breakdown +1 0.06 0.11 0.17 0.22 0.56 1.11 1.39 1.45
1 5.56% Breakdown +2 0.06 0.11 0.17 0.22 0.56 1.11 1.39 1.45
2 11.11% 1:1 exchange (either direction) 0.11 0.22 0.33 0.44 1.11 2.22 2.78 2.89
2 11.11% Breakdown +1 0.11 0.22 0.33 0.44 1.11 2.22 2.78 2.89
4 22.22% Loneliness +1 0.22 0.44 0.67 0.89 2.22 4.44 5.56 5.78
7 38.89% Rescue +1 0.39 0.78 1.17 1.56 3.89 7.78 9.72 10.11
Result 1 attempt 2 3 4 10 20 25 26
Loneliness Before Birthday 0.28 0.56 0.83 1.11 2.78 5.56 6.95 7.22
Sung Happy Birthday 0 0 1 1 3 6 8 8

Average Scores

Result 1 attempt 2 3 4 10 20 25 26
Resulting Loneliness 0.28 0.56 -0.17 0.11 -0.22 -0.44 -1.06 -0.78
Resulting Breakdown 0.22 0.44 0.67 0.89 2.22 4.45 5.56 5.78
Resulting Rescue 0.39 0.78 1.17 1.56 3.89 7.78 9.72 10.11

The game will last on average 26 rolls, 1.4 of those will be a "nothing" or one of the two net +2 rolls. You'll have 2.9 rolls for an exchange event. Let's assume that this chance is not used, for easier modeling. Another 2.9 rolls will show +1 Breakdown. 5.8 rolls will have a +1 Loneliness. 10.11 will give +1 Rescue. The end result will be 7.22 Loneliness, 5.78 Breakdown, and 10.11 Rescue.

Before the 26th roll, you can sing Happy Birthday 8 times. You can't sing it another time after the round, so no loss there. As an odd result, you should, in theory, have a Happy Birthday available faster than you will get one Loneliness on average.

Without singing?

In theory, you can win without singing a single time, even though that is not the optimal strategy: you only gain about 0.28 Loneliness per roll, but 0.39 Rescue, so you technically don't need to sing before winning.

Conclusion

It is not only beneficial to sing Happy Birthday about 8 times in the average 26 roll game, it is also beneficial to use the exchange of 1 Loneliness to remove 1 Breakdown when it comes up, as that will use the one "superfluous" Happy Birthday during the average game.

\$\endgroup\$
6
  • \$\begingroup\$ But on average I can win before needing to sing, right? \$\endgroup\$ Commented Sep 16, 2022 at 14:27
  • 3
    \$\begingroup\$ @AncientSwordRage yes, on average you might not need to sing. \$\endgroup\$
    – Trish
    Commented Sep 16, 2022 at 14:27
  • 2
    \$\begingroup\$ That's good to know, so when I do sing it's more my choice. That completely changes the feel of the game of me. \$\endgroup\$ Commented Sep 16, 2022 at 14:29
  • \$\begingroup\$ You have an image of a table with the alt text "Table of probabilities". That's not a suitable alternative for those who can't see the image. Can you replace that with a markdown table, or at least some text that can more easily be made into one? (The table will have to be adjusted since markdown doesn't support merged cells.) \$\endgroup\$
    – Laurel
    Commented Sep 17, 2022 at 17:42
  • 2
    \$\begingroup\$ Well I tried my best with a quick regex. PS, you misspelled "loneliness" in the bottom table on your sheet. \$\endgroup\$
    – Laurel
    Commented Sep 17, 2022 at 21:16
13
\$\begingroup\$

Evolutionary Algorithms and Monte Carlo Simulations

I created an algorithm which, given linear weights to each pair of state (Loneliness, Breakdown, Rescue) to option (Sing, Patch, Overwork). Weights ranged from -1 to 1 and the algorithm would choose to take a given option if the weights for that option (multiplied by the current state) summed to a positive value.

For example:

public bool ShouldOverwork(GameState state)
{
    return
        (state.Breakdown * this.OverworkBreakdownContribution +
        state.Loneliness * this.OverworkLonelinessContribution +
        state.Rescue * this.OverworkRescueContribution) > 0.0;
}

I then ran this as an evolutionary algorithm, starting from random weights, where fitness was determined by the average number of surviving robots out of a batch of 1000 games (dice results were re-used across different strategies, for fairness).

If we let them sing

If we allow the robots to sing happy birthday as much as they want, then after a few generations, I see that Overwork has all negative weights (never overwork), Patch has all positive weights (self-care is important), and Sing also has all positive weights (always sing). These robots survive about 82% of the time.

If singing is slightly discouraged

If we discourage them from singing slightly, (I used a fitness score of 10 + 1/(1+times sang) for survivors and 0 for non-survivors), the weight for singing becomes more mixed. Observing a few runs, it seems like the weight for Singing typically stabilizes where it will sing if Loneliness is more than 130% of Rescue (the contribution from Breakdown is negligible). Patch and Overwork are still "always" and "never," respectively.

These robots still survive about 82% of the time, so not much is lost by singing less as long as they can sing when they need to.

If singing is strongly discouraged

We can increase the prohibition against singing by tweaking the fitness formula again - let's take away the score for surviving and make 100% of the points conditioned on not singing. (That is: a value of 1/(1+times sang) for survivors and 0 for non-survivors)

In this environment, Singing takes on a negative score (these robots will never sing), while Patch and Overwork take on mixed weights. The best-performing robots patching themselves up whenever Breakdown exceeds Loneliness by about 20% or more, and vice-versa for Overwork. The contribution from Rescue for Patching is negligible, but for reasons I don't fully understand, Rescue has a non-negligible negative weight for Overwork (about 1/3 the weight of Breakdown).

These robots only survive about 65% of the time, though.

Conclusions

  • You don't have to sing. You'll win about 2/3 of the time even if you don't.
  • If you want to sing as little as possible without reducing your chances of winning, sing whenever Loneliness is higher than Rescue by more than one point.
  • Overworking is bad. Self-care is important. Unless you're not allowed to sing at all.
\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .