this post was submitted on 07 Nov 2023
188 points (96.5% liked)

Games

16743 readers
1016 users here now

Video game news oriented community. No NanoUFO is not a bot :)

Posts.

  1. News oriented content (general reviews, previews or retrospectives allowed).
  2. Broad discussion posts (preferably not only about a specific game).
  3. No humor/memes etc..
  4. No affiliate links
  5. No advertising.
  6. No clickbait, editorialized, sensational titles. State the game in question in the title. No all caps.
  7. No self promotion.
  8. No duplicate posts, newer post will be deleted unless there is more discussion in one of the posts.
  9. No politics.

Comments.

  1. No personal attacks.
  2. Obey instance rules.
  3. No low effort comments(one or two words, emoji etc..)
  4. Please use spoiler tags for spoilers.

My goal is just to have a community where people can go and see what new game news is out for the day and comment on it.

Other communities:

Beehaw.org gaming

Lemmy.ml gaming

lemmy.ca pcgaming

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] AlexWIWA@lemmy.ml 25 points 1 year ago (4 children)

Not sure if I trust paradox to let them. Stellaris still runs like shit.

[–] neshura@bookwormstory.social 22 points 1 year ago (1 children)

Stellaris is also almost 10 years old with an engine that is, by admission of the devs, coded into a dead end. They customized an older version of it too much and now they can't get the performance improvements from the newer engine versions into the game.

[–] AlexWIWA@lemmy.ml 2 points 1 year ago (1 children)

They don't need a new engine, they need to stop calculating every pop every day and start using events to trigger a calculation. E.g. a species modification or changing buildings on a planet.

[–] LufyCZ@lemmy.dbzer0.com 1 points 1 year ago

So you're saying they might not need a new engine and all they have to do is rewrite half of the old one?

[–] SkyeStarfall@lemmy.blahaj.zone 17 points 1 year ago (1 children)

Stellaris is like one of the most simulation heavy 4X games there is. There's a limit to how good performance you can get when you're making a complex simulation like that.

[–] AlexWIWA@lemmy.ml 4 points 1 year ago (2 children)

I agree, but they've promised performance fixes since like 2018 but never actually put any effort into it.

[–] ChairmanMeow@programming.dev 1 points 1 year ago

That's just blatantly false. We've even had dev diaries showing they've fixed some performance issues, even showing the performance graphs to prove it.

[–] LeberechtReinhold@lemmy.world 1 points 1 year ago (1 children)

Thats not true at all, there has been incredible improve, particularly with jobs.

[–] AlexWIWA@lemmy.ml 1 points 1 year ago (1 children)

Around when? I gave up on waiting in 2021. They promised huge performance increases every year from 17-21 but it got worse with each dlc.

If they actually fixed it then I would love to come back. I miss Stellaris

[–] LeberechtReinhold@lemmy.world 1 points 1 year ago

3.0 and 3.3 were big on optimization iirc.

They also moved to the custodian system which makes stellaris easily the most polished and stable of all of Paradox games

[–] Nibodhika@lemmy.world 11 points 1 year ago (1 children)

I haven't played Stellaria in a while, but I don't remember the performance being bad. If it is it's not because of any graphical thing that can be improved, but for the same reason Dwarf Fortress runs like shit, i.e. there's a limit to your CPU power when simulating hundreds of individuals.

[–] AlexWIWA@lemmy.ml 1 points 1 year ago (1 children)

The problem with Stellaris is that they simulate every individual even if nothing changed about them. If nothing changes on a planet or species then they shouldn't recalculate employed pops.

[–] Nibodhika@lemmy.world 2 points 1 year ago (1 children)

How would you know if nothing changed unless you're simulating them?

[–] AlexWIWA@lemmy.ml 1 points 1 year ago* (last edited 1 year ago) (2 children)

Easy, event driven updates. Populations would all have a flag "should_update" which defaults to false.

When a population update event occurs, like constructing a building on a planet, you mark should_update for all the pops on that planet to be reevaluated.

Unemployed pops would have should_update until they are employed.

Changing a species would should_update for every pop that got gene modded.

Then every day you only run updates for pops with should_update set to true instead of every pop in the galaxy.

Late game performance would be on par with early game because a lot of planets have been forgotten about

In order to reshuffle pops to make sure they're in the best jobs, there could be a timer per planet, based on things like the size of the planet, time since last migration, etc to trigger a should_update for the whole planet.

It'd be even better to just trigger the updates during the event and completely get rid of the polling loop, but that would require a lot more work in the paradox engine

[–] ChairmanMeow@programming.dev 2 points 1 year ago (1 children)

That's literally what the game already does. But it can't have all the effects you believe it should have, because there are a lot of events that can change a modifier that would require a recalculation.

Also marking thing as "should_update" (like you called it here) the way you describe it would cause terrible performance issues. You can't mark large amount of pops for an employment update, because employment calculations are some of the more expensive ones to do, and doing it for large amounts of individual pops at a time would cause severe lag spikes.

[–] AlexWIWA@lemmy.ml 1 points 1 year ago (1 children)

Oh they finally added that? Nice. The community has been asking for event driven since 2019 so it's nice to know they added it. I'm gonna reinstall

[–] ChairmanMeow@programming.dev 1 points 1 year ago

That was always in there, but the degree of optimization varied of course.

[–] Nibodhika@lemmy.world 1 points 1 year ago

Like I said I haven't played Stellaris in a while and never got into modding it so I'm not sure how the engine works, so correct me if I'm wrong. It's my understanding that pops have a "life", i.e. they get educated, they develop traits, they join factions, etc. those are not things that can be simulated only when something changes on a planet, otherwise crime/unrest would never change on a planet, traits wouldn't be added/removed and factions wouldn't grow/shrink or have demands unless you do something on that planet. Also there's the migration from one planet to another, and the growth of pops and several other things that have to be simulated all the time and can't be triggered by an event since they're slow growing (and the slow growth is the simulation that happens every frame). Also, even on late game there should be probably a few thousand pops in the entire galaxy, right? If most of the time nothing was happening that would be a very fast loop, the fact that it's not should be evidence that there is some calculation happening for every pop at every frame, because while you're correct that an event system is much better for large amounts of data points, a few thousand is not that big, which is to say that a loop that checks all of these conditions and only does something heavy when one of them is true should not be as slow as you're describing, sure it's not optimal, but should only become a problem when you get to several million pops.

[–] Zellith@kbin.social 2 points 1 year ago (1 children)
[–] CrazyEddie041@kbin.social 3 points 1 year ago

Colossi fix it.