1. Stellaris
  2. News

Stellaris News

Stellaris Dev Diary #172 - Reworking the AI

Bonjour everyone, it’s the French Paradox speaking! For those who don’t know me, I’ve joined the Stellaris team this December after a year and a half as a programmer on Europa Universalis IV.

Today, we are gonna talk about AI.


A good introduction for those new to the field

[h3]Fifty Shades of AI[/h3]
There are several AI modules in Stellaris. For historical reasons we call them “ministers” as each one is supposed to handle a specific role in an AI empire.

There are 3 broad kinds:
  • The AI foreign minister handles diplomacy, federations, galactic community, peace deals and the like
  • The AI interior minister is in charge of the economy. He keeps budgets and order constructions, both civil and military.
  • The AI military minister is in command of all troops and military fleets, and also responsible for laying out strategic plans when at war.

For each of those ministries there are different “ministers” there are several options that can be selected for every empire in the game. All of those have generic one which behaves more or less like we’d expect a player to and is used for most AI empires. Then we have a bunch of specialized ones for special tags such as space monsters, fallen empires, crisis, marauders and the like.

As almost everything in our games, AI is configurable in script for our modders, although I’m not exactly sure what would happen if you assigned a space monster military AI to the caravaneers ;)

In guise of a welcoming gift when I joined the team, I was tasked with reworking the military one...

[h3]The Military AI[/h3]
To give you a little bit of background, there were several generations of military AIs in Stellaris. The generic one (used by most “classic” empires) was redone by the great @sidestep last year, while the more specialized ones (crisis, space monsters) have kept close to what they were on release. In the midst of the sad and dark swedish winter, I managed to bring some improvements that I’ll showcase today.

First of all, I worked on visualization to help us debug how the AI “thinks”. Funny thing is, it already made it look “better” to audiences even if it didn’t actually change any behaviour. It’s actually something that’s been observed in video games: a good AI tells you what it does, which makes it look smarter. One of my favourite examples of that would be the enemies in FEAR.

So by typing 'debug_ai' in the console and observing an AI empire, you can see what it has in mind:


“I don't even see the code. All I see is blonde, brunette, redhead. Hey uh, you want a drink?”

As a simple analogy, imagine that the AI has a war minister that looks at the big picture and rates every potential target, a general staff who assign fleets to some of those objectives, and then admirals who try to lead those fleets on a tactical level to achieve those objectives...

Wanna read more about the AI rework? Check out the full post in our forum
here!


Stellaris Dev Diary #171 - Federations Stream

Hello everyone!

This week we’re back with another dev diary! We apologize in advance for it being a shorter one, but don’t worry, we aim to make up for it with a stream!

Later today at 17:00 CET we will be hosting a stream over at Twitch where we will be talking about Federations and showing off all the features in more detail (such as all the federation perks). We will also be announcing the release date for the Federations expansion and showing off a cool new trailer!

If you have things you want us to show on stream, please don’t be afraid to mention them here!

See you on the stream!

(This post will be updated with more information during the day)

Stellaris Dev Diary #170 - Performance and other technical issues

Hello, my friends! This is Moah, Tech Lead of Stellaris typing. I can finally talk about what you’ve all been waiting for: How many new platypi will there be in Federations? After weeks of…

Well, apparently, I should be "more technical." But before we jump into the mysteries of the Stellaris code, I want to take the time to talk a little about the balance between adding new features, improving performance and stability – especially in terms of multiplayer and the dreaded out-of-syncs (dreaded at least by me).

The Delicate Balance

Stellaris, like most decently sized code bases, is like a complex game of Mikado or Jenga: every part is connected in some way to every other part. When you add a feature, you add more connections. If you’re careful, you add only a few, if you’re in a rush you add a bit too many. This generally leads to Unplanned Features (aka bugs). In addition, once we see them perform in the actual game, we tend to expand features in new, unexpected ways, leading to more Unplanned Features(tm).

Once we realize what is happening, we start being more careful. Maybe too careful. Checking too many things, too often, ensuring that this interaction that is supposed to never actually happen is actually not happening. Not now, not later. Not ever.

So you have removed the unplanned features, but the game is a bit, ah… too careful. Some would say slow.

So you remove some of these checks. You realize that you don’t need to loop around the galaxy, you can just loop around this one tiny planet. Then you go one step further, and think “well I can maybe do that check only every three weeks, and this calculation needed by all these checks, I could store it in here and reuse it until the next time it changes.”

So now the game isn’t so careful anymore, we’re back in unplanned feature territory. But if the caching (storing/reusing calculations) happens at different times on different machines, you get slightly different results (like asking a developer for something before and after they had coffee).

Slightly different results are what OOS thrives on! Clients and servers have 0.0001 cost difference, compounded over time, that corvette is bought on the server but not on the client.

So you remove your “smart” algorithm. You replace it with the correct algorithm. You lose half of what you gained in step 2 and reintroduce some bugs. Probably.
Rinse and repeat.

But enough about my morning routine! Let’s talk about…

Performance

Stellaris fans are like C++ programmers: performance is always on their mind. To be fair, it has also been on ours a lot lately. We know that it’s not all that it could be, especially in late game and with the bigger galaxies. With that in mind, we’ve taken time to improve performance in a bit more depth than we usually can. We looked at what was taking the most time, and as everyone knows that is…




[h2]Pops.[/h2]
There are many reasons why pops consume a lot of time in Stellaris, but the main one is that by endgame we have SO MANY of them. SO So so so so many. And they do so much! Pops have to calculate how good they’d be at every job (they do so every 7 days). Then they have to fight every other pop on the planet to get the job they’re best at. They also have to check if they could have a specific ethic. If they could join a specific faction. How happy they are. How happy they could be. How happy they would be on that planet over there.
All these things trigger modifiers calculations. If you remember my last dev diary, you know that modifiers are the only thing more numerous than Pops in Stellaris. And they all depend on each other. Calculating them is like pulling on a thread and getting the whole sweater.


[h2]OK, but what did we actually do about it?[/h2]
Well first, I’ll admit I may have been a bit pigheaded on the whole “we need to do the jobs distribution every day because we don’t know when new jobs are added.” We reexamined this assumption, and jobs distribution is now only done on demand. It was also rewritten to iterate over a lot fewer things.

We also noticed a few triggers going through every pop of an empire to check if one or more are enslaved, decadent, or other things that can be tested at the species level. So we made new triggers to test these things at the species levels. In the same spirit, we had events going through every ship to find a fleet, so we added triggers at the fleet level.

Second, We’ve also reworked the approach to checking if pops can change ethics (and also made it work again), or if they can join factions.

Finally, we’ve looked for (and found) opportunities to use more multi threading.

But enough talk! What’s the result? Well, if a picture is worth a thousand words, here’s the answer at 30000 words a second:

https://www.youtube.com/watch?v=9SFE89Wj8go&feature=emb_title

The video compares the performance of 2.5.1 “Shelley” to 2.6 “Verne'' when running a save game from the community, which can be found attached to this post, with over 20000 pops. It was recorded on my work computer (Intel Core7-7900X @ 3.30Ghz, 10 cores and 20 threads, and AMD R9 Fury). You won’t necessarily get the same results, the exact difference in performance will vary with your computer, and the exact situation in your own save games, of course. On average, we’ve found something between 15% and 30% improvement in late game situations. This save is just ideal to showcase the impact of the pops improvement.

You wanna find out more about the performance improvements? Have a read here !

Stellaris Dev Diary #169 - Origins QA

Today we're continuing the Q&A series we're doing, answering questions related to different topics. Last week we asked you to post your questions related to Origins, which were previously revealed in Dev Diary #160.
Here we go!


General Origins Questions


How will randomly created AI empires choose an origin? Will it be completely random, or are some more likely to show up than others? If the latter, which logic does it follow?
The weightings are scriptable. The default currently has a weight of 100, others that are available to the AI (which is most of them) have between 2 and 10, so statistically you are likely to have a few of them once you have 10+ AI nations. Some origins like Doomsday are also blocked for advanced AIs as that wouldn't fit the narrative.

Many are also restricted so they will only randomly generate if that origin is not already represented in the galaxy.

Are there any events related to each Origin? (And many similar questions.)
Yes. Some origins, such as the Galactic Doorstep, are primarily narrative-based and thus have many events. Others, like the Shattered Ring, are primarily changes to an empire's starting conditions and have few, if any (other than custom start text).

Will the preset empires have different origins? Will they have new civics picked to substitute those that become origins? (What will happen with the Xanid Suzerainty for example?)
Yes, preset empires have origins. Most of them have Prosperous Unification, but some have others.

Empires that previously had civics that have been turned into origins will have new civics given to them. As examples, the Xanid Suzerainty now has Corvée System and Cutthroat Politics, and the Lokken Mechanists have Technocracy and Meritocracy.

Can you change your origins through events?
No, that would involve timeline alterations and the potential destruction of the space-time continuum.

Will there be origins that allow for special tech, that is otherwise unobtainable? For example, could a Fallen Empire share tech for Fallen empire buildings with you if you choose the Scion start?
We do not currently have any origins that have unobtainable tech, but this would be possible.

I believe you mentioned before that each origin had special events. Will we still have the special start events of say Mass Extinction, Habitable planet survey, and Radical Cult events? Will they still happen even if we pick say Doomsday or Remnants or Void Dwellers?
Some event chains have been disabled for certain Origins, when they no longer made sense.

Do Fallen Empires have origins?

Yes, for flavor they have been given a unique "Elder Race" Origin.

If you want to find out more about Origins, check out the full post here . PS. Next week, our Tech Lead Moah will be posting a dev diary giving an update on performance improvements planned for the 2.6 "Verne" update... Stay tuned!

Dev Diary #168 Diplomacy QA

Greetings!

As a part of the Q&A series we're doing, we will be answering your questions related to different topics. Last week we asked you to post your questions related to diplomacy, and we want to thank you for all the questions we've gotten.

Before we jump into the questions, I'll take the opportunity to mention that the Q&A series will continue next week as well, and you can already post your questions about Origins.

General Diplomatic Questions
Q: Will Diplomatic deals get a similar treatment to Federations, in that they require higher “levels” before unlocking all mechanics?
A: Not specifically, but diplomatic actions now require certain Relations levels before being able to be proposed. (Envoys can be used to relax these restrictions.)

Q: Will the interstellar assembly megastructure mechanics be changed for the update
?
A: Yes. The immigration bonus has been replaced with a Diplomatic Weight bonus, and at stages II and IV the Interstellar Assembly grants additional envoys.



Q: Will you be expanding ways to improve relations with another empire beyond the current resource bribes?
A: Yes, there is a new diplomatic action called Improve Relations which allows you to increase an empire’s opinion of you.

Q: Will AI empires that covet my territory try to sabotage relations? In other situations, will the AI try to modify relations to where it thinks they should be?
A: AI empires will use the Improve Relations envoy action if they are interested in pursuing other deals, or Harm Relations if they dislike you and either want you as a rival or want to insult you.

Q: Will we be able to get custom settings to choose which diplomatic notifications we are interested in receiving, and perhaps nuance to such a system such as "nations of interest" and "nations of total irrelevance".
A: No, but you can disable certain types of alerts by shift-right clicking on them. (You can re-enable disabled alert types by toggling that section on in the Outliner and right clicking on them.)

Q: Will having any diplomatic relationship bigger than Open Borders still generate Xenophile attraction?
A: If you are in a federation, defensive pact, or commercial pact with an empire that is a different species, then yes, the xenophiles gain a bonus to ethics attraction. (And contact with an empire that has enslaved or genocided pops of your species provides a xenophile attraction penalty.)

Q: Will there be some new (diplomacy related) Ascension Perks?

A: There are no new Ascension Perks, but Galactic Contender now also grants a Diplomatic Weight bonus.




If you want to read more about Diplomatic Questions and start asking questions about Origins, have a read here!