The Downward Tantrum Spiral

At its (*) heart, Clockwork Empires is a game where you organize people and build stuff. Those are the two main systems of player interaction with the game. You reward yourself for building things however you like, we reward you for building things effectively. Similarly, we reward you for organizing people effectively, and you can reward yourself by trying to get two characters to fall in love, start a riot (or a cult), and otherwise doing whatever it is you think would be most interesting.

(* squamous, eldritch, abominable; stamped, filed, indexed, and numbered)

Build stuff!

Build stuff!

The core features of the “build stuff” system are almost at their minimum viable state of “complete” (which we will continue to add frosting to): You can construct and destroy modules, buildings, and zones, but there are a few cases where doing so causes the game to get really unstable, so we’re working on that. We’ll expand this to include “rearranging” and probably also “upgrading” once the constructing and destroying have all their kinks worked out. The reward mechanisms are in too, but they’re more-or-less in a continuous state of refinement & iteration as we move away from “congrats, you get double production of widgets!” to more interesting rewards.

Gossip about The Monarchy! (See, we're occasionally relevant to current events here at Gaslamp Games.)

Gossip about The Monarchy! (See, we’re occasionally relevant to current events here at Gaslamp Games.)

The character organization system, though, has been in a pretty sorry state for a while. We wrote a couple of weeks back about the AI systems and how we needed to build them out to satisfy the requirements we didn’t know we had. This was mostly to resolve some issues where characters were exclusively, uh, sociopathic, and would therefore really not do what you wanted them to do in, for example, the heat of battle. Moreover we weren’t clearly rewarding players for effective character organization OR with interesting storylines from different sorts of characters interacting.

So I’ve put some work into that lately.

We now have a very clear map of what states a character can be in, what states they’d rather be in, and the sorts of actions that they can do to get out of those states. We started cleaning this up several patches ago, and instantly noticed, entertainingly, that the characters were too good at making themselves feel better. They’d all be happy all of the time. We had to give them a bunch of actually useless junk to do just to lower the rate at which they’d go from furious or terrified to happy, which was taking something like 30 seconds before.

Once we solved that problem, characters were still pretty boring. They still became happy universally, but it was just a slower process. And once they were happy, a lot of the interesting stuff that can happen in the game is no longer accessible, because most of it requires that they’re not happy.

Enter “tantrum spirals”.

A tantrum spiral is a phrase coined by the Dwarf Fortress community (I believe) to describe how characters who are upset can create, uh, negative externalities.

For example: I’m upset so I punch somebody, nearby characters are upset by witnessing a fight in the street, so they get upset too. One of them decides that they’re going to punch someone else, and before you know it, there’s a gigantic brawl in the town.

Tantrum spirals can be pretty amazing because with enough ways to create negative externalities, they create very organic stressful scenarios for the characters. Easily frightened characters run away, angry characters fight their rivals, ones who witness their loved ones’ death start to weep; they give us brief periods to caricature the behavior of your characters and give them memorable events. All we need to do is create things that characters can do to feel better that make other characters feel worse.

Whats a little cannibalistic murder between friends?

Whats a little cannibalistic murder between friends? (Note: This is not a tantrum spiral as-such.)

But tantrum spirals are only “fun” if they’re also usually a result of bad player management, so we need to make sure that the likelihood of a tantrum spiral being triggered is really low unless something tips things over the edge, and that’s going to take some tweaking. We released an experimental patch yesterday that includes the first stab at balancing tantrum spirals, and it’s probably overly conservative, but we’ll be keeping an eye on how it plays out and tweaking it as necessary.

We have a lot planned for this feature beyond just people hitting each other. Tantrums will also often lead to madness, which will lead to other interesting things which will give the player some stressful choices. Players should be able to avoid much of the tantrum spiral behavior by playing effectively and not intentionally putting characters in uncomfortable positions, but we are aiming toward a balance state where, at the later stages of the game, frequent interaction with these systems will be unavoidable, and we’re going to make you make some hard choices about what characters you really care about.


Now how abut a changelog for the recent experimental patch?

New stuff in Clockwork Empires Experimental Update 38B:

Engine (kinda)
Autosaves are in, set to autosave every 10 minutes.
FIXED: buffer overflow crash in fog of war
FIXED: crashes when characters are deleted with emotions

added new sleep system (day 1: sleep in bed, day 2: sleep on floor, day 3: sleep on ground)
characters can now punch each other and cause tantrum spirals of punching, and this is almost certainly under- or over-tuned
Social jobs have been rebalanced. (Many more are planned, as there is still a relatively small number of available options to characters until buildings are constructed & economy started.)
FIXED: minor nerve-stapling bug
hooked up new ‘unskilled reload’ animation
balance: altered calculation of colonists’ willingness to take part in cannibalism
FIXED: an insidious drop_item scripterror
added new social jobs: “inspect food, inspect body, cower inside building”
Communists are now upset by upper class sympathy
Fixed typos in laudanum-themed character history string
if really hungry, people will attack animals for their meat
if really hungry and mad/has certain traits, people will attack people for their meat
frontier justice is now only auto-applied AFTER a murderer hits someone with a weapon, not before
added terrible memories for very hungry/starving people
eating raw_meat now requires a higher level of hunger than other raw_foods
some traits are now restricted to certain social classes
fixed some cult prefix string typos

fishpeople weapons now properly delete themselves when dropped

Options menu is back, but the options which weren’t being used/tested properly have been removed. Currently only allows on/off for music and for autosaves.
emotes for conversations are back, but are now limited based on zoom level. (We’ll probably put in a keyboard command to disable all of these for screenshots)
FIXED: size of work crew portraits in work party UI now has no blank space
FIXED: selection of trees and other static props is now triangle-accurate
Clicking a module in the module placer mode now brings up a choice: move the module, or delete it. Modules that are built cannot be moved, and can only be deleted.
added “need_sleep” and “explosion” icons, redrew “propeller” icon.

Added deletion of individual models
FIXED: handful of memory corruption bugs when moving modules
Moving a module to an invalid location (say, taking a door and dragging it off into space) will now snap the module back to its original location and parent and not move it.
stacked commodities now respect stockpile filters
selected objects in an assignment beacon now tint blue, highlight
FIXED: script error on building demolition (multiple script errors, really)
balance: greatly reduced gabion construction time
FIXED painting scripterror

New Prestige Favor: “Airship overflight”
Fixed bug with “ominous dreams” event
fixed typos in Bandit spawn event & tutorial

Posted in Clockwork Empires | Tagged , , , , , , ,

10 Responses to “The Downward Tantrum Spiral”

  1. MailersMate says:

    It’s really good to see the character driven-ness of the game taking shape.

    Regarding the class system, how are you going to prevent the lower class continually deciding to revolt because they are restricted to cheap tat?

    { reply }
  2. Matt says:

    Doing things that make you feel good, makes others feel bad. This is sounding very Volterra-Lotka, or even Beloushov-Zhabotinsky. Will the system reach a stable state, oscillate, or follow a psuedorandom trajectory? Math can help!

    { reply }
    • Haha funny you should mention the Volterra-Lotka thing, David and I were just talking about that for ACTUAL predator/prey populations in the game. I have no idea if we’ll end up with it in the build, as it’ll depend on whether we can find a stable state easily, but it’s sufficiently easy to model with our system that we figured we’d test it out with the foxes and dodos.

      Regarding character moods, our ideal case is an oscillating state, where agents are “exciting” other nearby agents, without having so much feedback that the whole system pegs itself at “tantrum spiral” regularly. The fact that all events are spatially localized means that at worst the system will starve itself out as the agents kill each other off or run away (classic DF-style), and in that way, as is mentioned in the tags, I think the most effective model here is actually nuclear chain reaction model. This is also cool because it forces players to space out their settlement, which makes it much more difficult to protect from external elements!

      { reply }
  3. Noah Young says:

    Yup, tantrum spirals do come from DF. One of the best & worst things that can happen !

    I might have missed a post, but making some characters have “unusual” objectives overriding “being happy” would be interesting: characters inclined to become good soldiers would train, even if that means becoming sad / angry / crazy… Basically internal motivations that could be good for the player (get a badass defender of the colony) or go awry real quick (lack of battles means increased bloodlust and ends up in a rampage).

    Kinda similar to the moods in DF but directing NPC behaviour all the time. It would also create deep interest in different NPCs, each fleshing out their own stories dynamically.

    { reply }
    • The characters do vary quite a bit, but it impacts what they’d rather do to make themselves happy rather than having different objective states as the goal.

      Arguably you could do it the way you describe, but the organizational scheme of the AI just makes thinking of it this way a bit cleaner.

      { reply }
      • Noah Young says:

        I see! Thinking about it it does seem neater to do it that way, especially because the end result is the same: if NPC needs aren’t met, they’ll become unhappy.

        Good luck with the ongoing dev 🙂

        { reply }
  4. Sapphire Crook says:

    Just beware, GasLampGames, for tantrum spirals are… well, they’re that high-level interaction stuff that requires things like synergies, paradigms and proaction.
    Basically, the kind fo stuff that’s 10% creating, 10% debug and 80% tweaking the numbers because it’s happening too often/not often enough.

    So good luck with that.
    Because like all high-level interaction, if done right, it’s AMAZING.

    { reply }
  5. Marc says:

    When can we have a minimap to see where the airship actual flew over? Also im not sure if this is the right place to put it or if it is just my rig thats doing it but when i get to about 20 colonists and i open the work groups tab it crashes however when i get over 20 colonists it works fine again.

    Other than that i love this game and i cant wait to see what you guys have in store for us in future builds! 😀

    { reply }
    • Best place for stuff like this is actually in our forums (accessible from the site header). If you have a chance could you head over there and give us some more details so we can look into it?


      { reply }

Leave a Reply

Your email address will not be published. Required fields are marked *