Stellaris Dev Diary #245 – We have a Situation


written by Caligula

Welcome to this week’s dev diary! Eladrin is busy with something exciting this week, so I’ve been roped into writing about the almost as exciting new Situations system we will be adding in the next patch.

The idea for implementing this system comes from the realisation that Stellaris provides excellent systems to tell stories about things that have happened – e.g. anomalies and archaeology sites – but lacks a good structure through which to tell stories about things which are happening right now. While we have a number of such stories, they are often either not as complex as we’d like them to be (e.g. we’d prefer to have more factors taken into account), or they are disproportionately complicated for us to implement (i.e. time-consuming and bug-prone). Either way, the player experience is often not as we’d like it, since such stories and event chains are likely to be hard to follow, and it may not always be clear that events are connected to each other or why certain things happen.

This was a state of affairs we wanted to improve upon, so we decided to implement a system which aimed to:

  • Give players an interactive and informative interface by which to experience current affairs event chains.
  • Provide a structure that is (relatively) easy to add new content to.

Initially, we took some inspiration from Disasters in EU4, but we soon diverged from it, since we realised not all the stories we wanted to tell were disasters, and we wanted a more UX-intensive solution. The result can be shown off in this mockup:


Note that this is a mockup – so not necessarily how the final UI will look.

To unpack this a bit, the flow progresses something like this:

1. The Situation starts. This could happen e.g. through an event. The Situation can either be empire-wide, or it can be focused e.g. on a single planet


Event text is final.

2. Each month, the Situation’s “progress” will tick upwards or downwards, depending on your response to the Situation.


A WIP tooltip showing the monthly change. It’ll list all contributing factors.

3. As the Situation progresses, you may reach the next “stage”. Often, an event will be fired as soon as this happens, to develop the story. Effects can also be applied to the empire or planet based on the current stage, e.g. an instability-based Situation may reduce stability by 10 for each stage.

4. There may also be random events along the way that can happen on any monthly tick. To distinguish Situation-based events from regular ones, some tweaks have been made to the event interface:

5. The player can choose how to respond to a Situation via a selection of “Approaches”. On occasion, one might be prompted to change these via events, but otherwise, one can freely pick them in the Situations interface. (We have not yet decided whether there should generally be a cooldown to picking an option). Approaches usually have effects over time, such as “spend X Unity per month to gain faster progress”.

6. When either end of the Situation’s progress bar is reached, the Situation is resolved, usually through an event in which something happens.

Some Situations will progress in a linear manner from left to right, others will start you in the middle and progress either to the left or to the right based on your choices. And we also want them to be differently coloured depending on how threatening the Situation is:


This is also a mockup.

This is all a bit theoretical, so, what changes can players expect in practice? Now I will take you through a few of the things we have done and are doing with the Situations system.

Narrative Situations

Content Design often implements narrative-based event chains set on a certain planet. Now, if we feel like the story has a bit more to give, a planet-based Situation can be crafted instead. The ability to have different outcomes at either end of the progress bar is particularly useful, since it can show which sort of conclusion the player is advancing towards (or at least indicate that there are multiple). To avoid giving spoilers, I won’t say exactly what stories we’ve added in this way, but there will be a few new planet-based narratives to encounter.

The “targeting” function of Situations is not limited to planets (though most of our effort has been towards making it work well there), so we have also managed to try adding a Situation based around a system or starbase.

Owners of the Leviathans DLC – or other DLCs that add Leviathan NPCs to the game – can also expect a few surprises next time they go monster-hunting 😉

Deficit Situations

Situations are not all fun and games. As their origin as EU4 Disasters would suggest, they are a great system through which to portray negative events. They give the player all the information they need to know what is happening, what the results of it will be, how severe the current Situation is, and what they can do about it.

One of our main priorities when it comes to using this aspect of Situations was reworking Deficits. At the moment, Deficits are like a light switch: as soon as you are in deficit (stockpile of 0 and negative income) for a given resource, you get all the defined penalties for being in that deficit (which can be quite harsh). But as soon as you spend a month no longer in deficit, all penalties are removed. This feels a bit off. Also, the penalties are the same for all empires, which has frequently led to headaches where they either disproportionately impacted a certain type of empire or left others (say, one with less need of a certain resource) relatively untouched. Finally, they can also be a cause for “death spirals” (in particular for the AI), as a shortage of one resource leads to penalties, which leads to a shortage of another resource.

With our rework, being in a deficit will start a Situation. You will start at 25% progress in this Situation, and it will increase in severity as long as you are at 0 balance and have a negative income. The rate of increase will depend on how much you are losing compared to your income. Having a stockpile will gradually make the Situation tick downwards; having a positive income will make it do so more rapidly.


This is the actual UI as it looks like right now. We are hard at work finishing it up and making it look presentable!

The penalties you receive for being in a deficit will start off light compared to their present settings, but will increase in severity as the Situation escalates. We are also able to configure them depending on your empire’s attributes, so for instance a Catalytic empire will now correctly get alloy output problems for being in a food deficit.

We aim to give each deficit Situation a choice of approaches, so that you can try to mitigate it from within the interface. So, for instance, a consumer goods shortage might be mitigated by electing to defund scientists, with the result that researchers cost less upkeep but also produce less research.

If however the deficit continues to grow, at 75% progress an event will fire which will warn that your empire is in truly dire financial straits and will need to make cutbacks soon. It will suggest a few, and you can pay a price (e.g. devastating a planet, or removing a special resource deposit) in return for some immediate resources that might help you alleviate the deficit.


Numbers not final

Finally, if the deficit becomes so severe that the progress bar is filled up, the empire is declared bankrupt. This is an unambiguously bad thing to happen to you – current effects (numbers to be finalised) are downgrading all non-capital buildings to their lowest level, disbanding half the fleet and all the armies, and giving 25% higher costs, 25% less ship damage, and 50% less unity and influence for 10 years. But it’s also designed to avoid death spirals: in return for liquidating these assets, you are given enough of the resource you defaulted on to survive for a while. Additionally, all other deficit Situations you are currently experiencing are terminated immediately, without penalty, and you are granted some resources to avoid them returning too soon.


Numbers are subject to change.

Changes are likely to come to this design as we continue to play with the new system and iron out its kinks, but we are hopeful that this new version of deficits will resolve many of the issues with the current deficits system, and make deficits, if not exactly fun to experience, at least a more interesting and less frustrating game mechanic.

Further “Strategic” Situations

We have further plans to overhaul systems or features using Situations. For these (unlike the Situations listed above), we can’t guarantee that they will definitely be in the next patch, but we are looking to adapt the likes of slave revolts, planetary separatism revolts, and the Synthetic Dawn AI Uprising to this new system.

With regards to the AI Uprising: we are broadly happy with the way the chain works now, but there are a few improvements to be made, and we feel that it would be beneficial to the player to be able to experience it through a UI. For instance, it has a bunch of events that an experienced player would recognise as warning signs that they should do something about it, but the inexperienced player would not know what is up and would not stop it from happening. With the Situations system, experienced and inexperienced players alike would know that something is up. However, this also makes it easier to know that you should do something about it, so we are also looking at making it a bit more challenging than just changing species right to end the Situation – after all, the robots are still extremely annoyed at you having deprived them of sentience for all these years! We are also looking at making purging the robots a viable if high-risk approach, at least so long as you don’t have too many robots.

With planetary revolts and slave uprisings, we have a feature that hasn’t seen much love for many a patch even as the game has changed around it, so we hope to improve it in a variety of aspects. At the moment, it would be fair to say that the unrest events are more a nuisance than a threat: revolts feel like they come out of the blue, but don’t have much teeth, as you can usually just conquer back the planet (since one planet alone cannot hope to stand against your empire). Our changes to this system are at a fairly early stage, but our goals include:

Content which may not be in 3.4:
[expand type=details]

  • Make revolts feel less random – they will no longer happen suddenly, and whether unrest turns into a successful revolt will depend more reliably on factors such as how many pops are on the planet, and just how annoyed they are.
  • Smooth out issues such as one habitat in a system revolting leading to the loss of all planets in the system. The opinions of other planets in the system should have an impact on the success of the revolt.
  • Improve the system where planets can sometimes join other empires after the revolt. (At the moment, this can happen in separatist revolts if the original owner still exists and is nearby, and in slave revolts if there is an egalitarian empire nearby). Basically, they should be asked in advance if they wish to support the revolt, at which point it should progress faster, but on the other hand, the other side will know this is happening. Also, we may want to review the conditions for revolts joining other empires, since in some cases a completely annexed empire might have each planet revolt to form its own micronation.
  • We are toying with the idea of removing the stage where planets have ground combat during rebellions. Troops stationed there can be factored in during the buildup stage instead.
  • Ideally, a successful rebellion would start a war with the previous owner, but would also be a bit more of a potential threat. We’ll see what we manage to come up with, here.

[/expand]

That’s all for now! Except to add that, since an old version of the cheat sheet for what all Situations can do is actually available to you in 3.3, I’m attaching the new and updated version of this, so that those inclined can make plans for what to do with the system.

And keep an eye out for Eladrin’s dev diary next week. You won’t want to miss it.

Written by: Burnsy - Community Leader