Examples: diablo 4 on blizzard client will let you play it before the full game is installed. The ps5 also let’s you do this when installing a new game. But I’ve never seen this option on steam games.

  • cerement@slrpnk.net
    link
    fedilink
    arrow-up
    95
    ·
    9 months ago
    • the launcher starts with updating itself and grabbing the most recent file manifest
    • launcher then prioritizes the game engine itself before starting on the data files
    • data files (textures, models, maps, etc.) are then prioritized by what the developer thinks you are most likely to encounter first (ie. starter towns, main cities, new content, etc.)
    • once the game engine is ready and some certain amount of base data is downloaded, the game will be marked as playable
    • most likely you will never notice anything but if you zone into an area where the data hasn’t been downloaded yet then you’ll get some lag and texture flickering as the game tries to shove that content to the front of the queue
    • RvTV95XBeo@sh.itjust.works
      link
      fedilink
      arrow-up
      36
      ·
      9 months ago

      Diablo also leans heavily into cinematic cut scenes which can be streamed (at lower resolution) if you encounter those before they finish downloading

      And low resolution textures / compressed audio can be downloaded first while you wait for the higher resolution content

      • glimse@lemmy.world
        link
        fedilink
        arrow-up
        15
        arrow-down
        1
        ·
        9 months ago

        That’s like…the only good use of online functionality in a single player game I’ve ever heard. But I hope it doesn’t catch on lol

  • WraithGear@lemmy.world
    link
    fedilink
    arrow-up
    32
    ·
    9 months ago

    Its just how the installer prioritizes the data. You start with the frame work, and you then install first level dependent data. As long as the player does not out pace the dependencies, there is no problem

    • zurohki@aussie.zone
      link
      fedilink
      English
      arrow-up
      11
      ·
      9 months ago

      You can also do things like using the smaller models and textures from the games low quality mode and switch to the big, high quality ones later when they’ve downloaded.

  • Zarxrax@lemmy.world
    link
    fedilink
    arrow-up
    19
    ·
    9 months ago

    Because when you are in level 1, you don’t need all the assets from level 10, and it can just download what you need first.

      • eric@lemmy.world
        link
        fedilink
        arrow-up
        7
        ·
        9 months ago

        Then you’d most likely be told that part isn’t downloaded yet, but thats quite an edge case since there will be very few people downloading the game that have a previous save point from any point in the game, let alone the later part.

        But if the game devs wanted to plan for that edge case, they might check your account for save points and prioritize content after your save point first.

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

      I don’t think this is true, because you can max out your character, uninstall the game, reinstall it, and still start early. Plus, the MMO-esq nature of D4, you could easily join a party with someone who is L10, doing L10+ content. It’s more about preloading things at low resolution, then improving as new resources download

      • Zarxrax@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        9 months ago

        I’m not referring to Diablo in particular. I am just using “level” as the standard video game nomenclature to mean separate areas or content.

      • PapstJL4U@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        9 months ago

        What he described was done multiple times. In MMOs and single player games. The low res loading is in addition.

        Jumping ahead of the designed game experience can indead force additional loading screens.

  • Dark Arc@social.packetloss.gg
    link
    fedilink
    English
    arrow-up
    12
    ·
    9 months ago

    It’s worth noting … RuneScape has done this for decades 🙂

    You would basically have to write your engine to be friendly to the idea that an asset isn’t complete, and set up a non-complete (possibly absent or just low quality) and complete state.

    You download everything to the point where it’s suitably non-complete… Then you keep downloading things in the background to complete the install, prioritizing things the player is likely to or is encountering.

    • WeebLife@lemmy.worldOP
      link
      fedilink
      arrow-up
      3
      ·
      9 months ago

      Oh really? I’ve never played runescape, but that’s interesting that this feature has been around longer than I realized.

      • Dark Arc@social.packetloss.gg
        link
        fedilink
        English
        arrow-up
        5
        ·
        9 months ago

        Yup! They might be the first game that became large scale to do it honestly. Because their game was getting quite big but they were a Java applet they (speculating a bit) wanted to maintain the fast load times as they added more and more content and get new players into the game quickly.

        Plenty of innovation out of Jagex back in the day (sadly not so much now). The founders sold their shares and left the company, the founding programmer started a company where he’s been working on a new game engine concept that’s supposed to make multiplayer as easy as single player to program for, I try my best to keep an eye on it (https://www.fenresearch.com/).

  • BombOmOm@lemmy.world
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    1
    ·
    edit-2
    9 months ago

    There are two main ways they accomplish this. The first is by downloading low resolution textures first. Most games use low-res textures when you are far away from an object and use higher res textures as you get closer, which get swapped out in real time. By utilizing this system that is already in the game, they can simply not load the higher res texture if you don’t have it downloaded yet. Textures generally account for a VERY LARGE portion of the total game download. Code is small, textures are large.

    The second way is by not downloading assets that are only used in other maps. It can download the core assets for the game and not worry about assets that are used on maps you aren’t in. However, if you do enter one of those areas before the content there is downloaded, they need to add a system to either download that area’s assets first or tell you to run the downloader longer.

  • AChiTenshi@sh.itjust.works
    link
    fedilink
    arrow-up
    4
    ·
    9 months ago

    It will depend on how the game is packaged. On your two examples that let you play before finishing download the clients will have multiple downloads that will prioritize everything needed to play early content. This will allow you to play for a bit and by the time you are far enough into the game the rest should have downloaded.

    I am not entirely sure how steam manages downloads but I suspect it compresses the whole game as a single download and decompresses and installs it once the download is done. This would mean that nothing is playable until the entire game has been downloaded. It’s something they could potentially change with their download process but not many developers would take advantage of it so it’s likely a low priority thing.

  • dan1101@lemm.ee
    link
    fedilink
    arrow-up
    1
    ·
    9 months ago

    I did this on Kingdom Come Deliverance on EA/Origin and the beginning of the game was messed up, the plot made no sense and I realized I had missed a whole section. Maybe they have worked out the bugs by now.