• Nibodhika@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    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.

    • AlexWIWA
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      You are correct. When the community researched the issue we found it was mainly the jobs causing the slow down though.

      The research may have been wrong because we were mostly using profiling tools and inspecting the memory, but that’s what we found.

      It was especially bad when the ai was allowed to gene mod because the ai likes to make a lot of species.