If we downloaded one large file and then found out it was corrupt it would be far more complex to recover from without downloading that whole file again. If we happened to have any, repeating that request has a minimal impact.
The Epic Games Launcher then can figure out which of these individual pieces we need to download in order to turn the version of Paragon you currently have on disk, into the latest version you currently need.Īnother bonus of splitting into smaller parts, means we can check each of these for data corruptions. Idea being that only new pieces of data get saved out and uploaded to our hosting each time we run a build.
This kind of behaviour allows the system to be constantly trying to stream in the patch data to memory, while concurrently writing the new data to disk for files that are being updated, and also allows us to not have to download the entire new files for the new build if we are patching.Įach chunk we download is a piece of data saved out by the BuildPatchTool program we develop for UE4. We spread our downloads over a few connections, each making individual http requests like you say, of a small chunk.