• mindbleach@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    42
    arrow-down
    7
    ·
    9 months ago

    GPUs have been general-purpose many-core processors for like fifteen years now. Please stop designing simulations that run exclusively on CPU… and especially stop tying your simulation speed to the goddamn renderer.

    I’ve written a 60 Hz renderer for a game that’s allowed to chug while you glide smoothly through it, and I’ve written a 60 Hz physics engine for a game that gets fractional frames per second, and I’m just some schmuck. What is your excuse? What kind of NP-hard nightmare did you design for yourselves, instead of identifying bottlenecks and faking the hell out of them? SimCity could run on 8-bit microcomputers. You cannot possibly be struggling to reach an acceptable minimum complexity, using hardware that’s forty years newer and ten thousand times faster.

    • Cethin@lemmy.zip
      link
      fedilink
      English
      arrow-up
      14
      ·
      edit-2
      9 months ago

      I’m pretty confident the game isn’t tied to framerate, and also the game is almost always GPU bottlenecked from what I’ve heard. From what I’ve watched of the game, it has a ton of compute shaders and other shader work. In particular, weather is apparently a large cause of framerate issues, particularly temperatures. That’s because (I’m betting) the game is computing temperatures on the GPU and using that to draw snow and other things on the terrain and also structures. I’m pretty sure they know what they’re doing. They just did too much, and now they need to try to optimize it.

    • sl3dge@programming.dev
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      1
      ·
      9 months ago

      They don’t work on a custom engine. So they don’t have engine programmers so they don’t know how or probably can’t (i don’t know how you would do that in Unity). That’s the price you pay for ease of development

      • mindbleach@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        10
        arrow-down
        4
        ·
        9 months ago

        If Unity is so dodgy that a team of professionals can’t figure out how to spread a workload over time, they should have written it off immediately. The nature of their game was not a surprise. They’re not naive in this genre - it’s a direct sequel.

        • Cethin@lemmy.zip
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 months ago

          Unity has its issues, especially lately, but the engine is perfectly capable of doing what they want to do. Most of the GPU load is likely just HLSL that’ll run pretty much (if not exactly) identically no matter what engine you’re using. UE would be a horrible choice for the game, especially 5. They could make their own engine, but no way they do that and don’t have to cut at least half of the features of the game.

          The issue is just they did too much without enough time to optimize. They said they’re working on it and they aren’t happy with where it is. They’ve earned my trust, so I’ll take their word that it’s being worked on. Don’t just assume they’re telling the truth, but give it time.

          • mindbleach@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            1
            arrow-down
            2
            ·
            9 months ago

            They could make their own engine, but no way they do that and don’t have to cut at least half of the features of the game.

            As opposed to now, where they also can’t handle the features of the game.

            Unity being famously jam-packed with features relevant to a cutting-edge city simulator.

            No kidding they’re going to make it better, over time, but there is no way this snuck up on them.

            • Cethin@lemmy.zip
              link
              fedilink
              English
              arrow-up
              1
              ·
              9 months ago

              Am engine is just a set of tools stuck together. If they have to write their own rendered, editor, interpreter/compiler, and everything else, that’s a ton of investment that you then can’t spend on game features. You don’t do that unless you have very good reason. You are also required to maintain them yourself. You don’t just get upgrades essentially for free as the engine updates.

              Unity actually does have a lot of features that are useful for a city builder, like ECS. I don’t know if you’re trying to be sarcastic.

              The performance probably didn’t “sneak up on them” but they almost certainly didn’t know how it’d end up. There’s likely still a lot of optimization left in there and a lot of optional things that can be enabled/disabled. There’s no way to know how the end product is going to look until you’re nearing the end and all the pieces come together and time starts running out.

              • mindbleach@sh.itjust.works
                link
                fedilink
                English
                arrow-up
                1
                ·
                9 months ago

                “This commercial engine cannot handle our game” is a pretty good reason.

                However well ECS does its thing - it’s obviously not doing enough, for this game. Even if this somehow came on by degrees, and performance got just the tiniest bit worse day after day, the time to stop tolerating that and pursue performance was a year ago. That doesn’t rule out bugfixes. That doesn’t rule out new systems. That doesn’t rule out major changes.

                But they’ve surely been fighting Unity for a long damn while and this is the best they could do.

                • Cethin@lemmy.zip
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  9 months ago

                  “This commercial engine cannot handle our game” is a pretty good reason.

                  The “engine” isn’t at fault. You can continue to add things that consume resources and you eventually use up too many resources. That’ll happen on any engine.

                  However well ECS does its thing - it’s obviously not doing enough, for this game.

                  I believe you’re wrong here actually. By all accounts I’ve heard, it’s GPU bottlenecked even with increased entity counts over C:S1. It’s likely just too many shaders doing too much work too frequently. Weather and temperature are both apparently big hogs, which to me looks like the perfect opportunity for shaders to handle a lot of the work and I’m sure that’s what’s happening.