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.
- 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
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
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
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
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.
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.
But what if you imported a save from a later part of the game?
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.
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
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.
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.
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.
Oh really? I’ve never played runescape, but that’s interesting that this feature has been around longer than I realized.
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/).
That’s interesting, thanks for the info!
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.
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.
About 75% of a games file size are the optional higher res textures for higher graphics settings.(25% for “high” and 50% for “ultra” generally) You can start playing with only the lowest couple of resolution textures to start with in games that use texture streaming. Texture streaming also serves as a LOD system. As in textures further away from you only load the lowest level of detail version until you get closer anyway, then they swap on the fly one by one up to whichever highest degree of fidelity you picked in settings as it gets closer and closer.
The way they stream in sort of hides the transition, at least if the game was well designed. Similar to how a good LOD system for geometry works. It should ideally be imperceptible. The models should look almost identical at the distance they are being swapped at. Same thing with textures, if you notice them change, they likely tried to be too aggressive with it to lower performance cost more than a comfortable/seamless amount.
That’s not how it works at all, what are you even talking about?
Most games that offer this feature download a limited set of the game files. For example the first few areas of the game (but with full quality, no low resolution bullshit). The idea is that as you play it keeps downloading the rest. Though if you play too fast or load in a save you might hit a wall where the game forces you to wait and download the rest.
Other games like Guild Wars 2 (an MMO) does it differently. It downloads all the assets it needs and the starting zones. But you can actually go into end-game zones too with a partial download, but then you have to wait in a loading screen while the game only downloads the zone you want to go to.
The big game sizes are usually sounds and overall content (cinematics, also textures but you don’t have to load all of them, only the ones needed for now), if 99% of players are in the starting area of the game while downloading you can take your sweet time to download endgame areas for example.
I guess we have experienced it in different games, the only ones I have experienced it with have been either phone games that do it your way because of the 100 mb limit Google puts on free apk downloads or computer games that do it my way because of 4k texture file sizes and texture streaming systems. I hadn’t seen it in a computer game before texture streaming.
I have only seen a “play as you finish downloading” in 4 computer games and in those 4 cases it was all due to texture streaming. I had never experienced it for any other reason on a computer game. And of course a game with texture streaming is going to have larger texture files, otherwise they wouldn’t have felt the need to stream them. It’s the whole point of that system. So textures can be much larger without impacting performance.
good breakdown of the system but it has been a while since textures were the issue at large. You can cut ~1/3 the filesize of starfield by uninstalling language packs you aren’t using because lossless audio is HUGE. Most LoD effects are just rendering a distant model with reduced detail and update rate. Even if you look at “good” lod models they often move in a jerky way in practice because they aren’t at the same framerate as things within the “detail” draw distance (easy to observe in every souls title).
Yeah, lots of different games have different ways, I personally have only seen it in games where it was the 4k texture assets with a texture streaming system. I haven’t yet played a computer game where it was done for a different reason. Most computer games don’t have a ton of audio in a ton of languages, that would indeed make for large file sizes.
I know mobile games generally do it the piecemeal route, but felt that was out of context for this thread.
I have seen games where the LOD models run at half frame rate, I have a hard time playing those and in my opinion I would not consider it a “good” LOD system. To me a good system is where any performance gain it gives is by only removing stuff as imperceptibly as possible, anything more aggressive than that and it better be possible to toggle that excessive feature in options.
I have only seen 4 games with play as you download on computer, and in each of those 4 cases it was done due to having implemented texture streaming, and a texture streaming system also coincidentally tends to be implemented to allow much larger textures to be possible without performance drops, so they will indeed be games with much higher texture file sizes than other games. I didn’t even know there was other games that allow play as you finish downloading for different reasons.
Oh OK that makes sense. So I would guess that feature caters more towards ppl who have lower end gpus who aren’t going to use the higher res textures anyway.
I think it’s more that you can play the game with low res textures while all the high red ones download.
That and I’m sure they order the download so level 1’s textures download first too so you’ll probably not end up reaching the areas being downloaded until they’re available.
Hmm, that much for textures, really? Did this change in the recent years with the rise of 4K gaming? I always thought raw media files like video/audio were the main culprits.
Audio is still somewhat of a culprit at times, depends on the game and the amount of exposition. Videos are rarely the main share of the game filesize anymore and usually it is mainly textures and likely bloat from really crap usage/optimization of those textures.
Yeah, this is only since 4k textures and the ability to do texture streaming. I had not seen a computer game with the play as it finishes downloading and installing feature before that. I had previously only seen it on phone games, which do it the other way.
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.