• schizo@forum.uncomfortable.business
    link
    fedilink
    English
    arrow-up
    14
    ·
    3 days ago

    Basically every one of them made in the past 4 or 5 years?

    Some are better than others - CP2077, for example, will happily use all 16 threads on my 7700x, but something crusty like WoW only uses like, 4. Fortnite is. 3 or so, unless you’re doing shader compilation where it’ll use all of them, and so on - but it’s not 2002 anymore.

    The issue is that most games won’t use nearly as many cores as Intel is stuffing on a die these days, which means for gaming having 32 threads via e-cores or whatever is utterly pointless, but having 8 cores and 16 threads of full-fat cores is very much useful.

    • skibidi@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 days ago

      Many games use multiple threads, but they don’t do so very effectively.

      The vast majority of games use Unreal or Unity, and those engines (as products) are optimized to make the developer experience easy - notably NOT to make the end product performant.

      It is pretty common that there is one big thread that handles rendering, and another for most game logic. This is how Unreal does it ‘out of the box’. It also splits the physics calculations off into multiple threads semi-automatically, and the standard default setup will have render and game logic on separate threads.

      Having a lot of moving characters around is taxing because all the animation states have to go through the main thread that is also doing pathfinding for all the characters and any AI scripts that are running… often you can’t completely separate these things since where a character wants to move may determine whether they walk/run/jump/fly/swim and those need different animations.

      This often leads to the scenario where someone with an older 8+ core chip is wondering why the game is stuttering when ‘it is only using 10% of my cpu’ - because the render thread or game logic thread is stuffed and is pinning one core/thread at 100%.

      Effective concurrency requires designing for it very early, and most games are built in iterative refinements with the scope and feature list constantly changing - not conducive to solving the big CS problem of splitting each frame’s calculations into independent chunks.

      • Leuthil@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        3 days ago

        Unreal is trying to move animation off the main thread but it will take a while to become standard. You can do it today but it’s not the default.

        It’s definitely a hard problem to solve as an “out of the box” solution.