• AlexWIWA@lemmy.ml
    link
    fedilink
    English
    arrow-up
    35
    arrow-down
    5
    ·
    1 year ago

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

    • Neshura@bookwormstory.social
      link
      fedilink
      English
      arrow-up
      24
      ·
      1 year ago

      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
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        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
          link
          fedilink
          English
          arrow-up
          1
          ·
          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?

          • AlexWIWA@lemmy.ml
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 year ago

            I don’t think they’d have to rewrite half. Just the main population update loop. The graphics performance is fine.

    • SkyeStarfall@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      18
      ·
      1 year ago

      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
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 year ago

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

    • Nibodhika@lemmy.world
      link
      fedilink
      English
      arrow-up
      12
      ·
      1 year ago

      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
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        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.

          • AlexWIWA@lemmy.ml
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            1
            ·
            edit-2
            1 year ago

            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

            • 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
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 year ago

                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

                  • AlexWIWA@lemmy.ml
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    1 year ago

                    When the community researched the issue back in 21 it definitely seemed like there wasn’t any optimization because the monthly load was consistent and the major slowdowns appeared around pop job computing.

                    We may have been wrong because we were using profilers and decomps, which can lead to bad assumptions, but that’s what we saw.