>Game disc only contains 1GB of data (In some regions it has even less data on disc) forcing you to download a 40+GB patch (at launch) and another 40GB of data packs in order to play the game.
https://www.doesitplay.org/game/Call%20Of%20Duty%3A%20Modern...
These aren't even new games that it is reasonable to expect to be patched. Re-releases like "Spyro Reignited Trilogy" require a download which is just a cost saving exercise.
If a day1 patch is required, then it can’t leak until that patch is available?
example: https://www.gamedeveloper.com/business/why-you-should-want-d... (Only linking this article for it’s referencing them as day one patches)
another example: https://en.wikipedia.org/wiki/Glossary_of_video_game_terms#d...
but that’s ok, the next console will likely have a re-re-release.
I assume that the game downloading ecosystem uses something that’s actually cost-effective. At AWS prices, it seems like it would be basically impossible to be a profitable publisher of multi-gigabyte games at any scale.
They often have some kind of proof-of-ownership (like a license ticket) required to download game data or updates, too.
Unless they track literally every single DVD variant perfectly, which ain’t happening.
And that is ignoring that many disks are basically just a hardware license dongle, and don’t actually have a full playable version of the game.
If you need to lookup patches by pre-patched hash of the source file, you could, for example, precompute hashes and store them on the disc.
The ways to optimize/‘solve it’ all require degrees of rigor in information control and tracking that aren’t realistic given the market conditions and supply chains.
At least unless people stop being okay with paying for $40+ games that download 40G patches anyway. Which would require severe changes in trajectory of bandwidth availability, which isn’t likely.
You’re not reading my comment, or thinking about the game distribution problem.
MS can get benefit from reading all the files, verifying hashes, etc.
And in a typical OS update scenario, MS can trust that a files contents haven’t been updated since the hash was checked. Which reading from a DVD/BluRAY, scratches are a problem and it isn’t that simple.
Games typically don’t, especially those on a DVD or BluRAY. Because they are slow, and have terrible seek times.
So, like I pointed out - it doesn’t make sense to do the work you need to do in info theory to actually apply a delta patch in these scenarios.
Also, windows updates take forever - as you’ve probably noticed.
And preferably, if you’re just reading hashes off the disk, that none of the actual data on the disk is corrupted or doesn’t match the hashes.
And then, due to the reality of the way games are distributed, downloading 90%+ of the game anyway.
Or just download the full version, which is simpler and likely the same amount of bandwidth, and faster since you’re not having to read/check the slow disks for more than basic ‘is it this game’ checking.
But I will push back a little and say that a zsync-like differential update scheme would still be totally feasible. BD read speeds are going to be in the 100s of megabits per second, and the compute for the hash is free (ie. It’s I/O bound). You can parallelize and start downloading blocks before you’re done hashing every block on the disc. It seems likely to me that you’d still end up better off with this scheme if you have slower than gigabit download speeds (which is true for the vast majority of the US). Zsync is fairly coarse and flexible, and essentially looks like BitTorrent between two peers over HTTP if you squint. If you assume the download speed and network reliability is the bottleneck that outweighs things like disc I/O and compute, it essentially degrades gracefully to just downloading the entire update in the case that there are zero matching blocks.
Edit: I should mention that another key aspect of the setup is that there are a small number of printed disc revisions, and a small number of target download (most people will get the same game files for a given region). This means that a CDN cache will quickly find the hot blocks to serve, even without any precomputation of the diff between source and target.
So possible? Sure, almost anything is possible with enough work and tradeoffs. It just isn't economical or likely actually faster given current bandwidth constraints and how they're distributed.
Especially if you consider that if there is network play, they'll have to be up to date anyway or most games won't let them connect, so 'offline' play is going to be a relatively rare situation. So why optimize for it?