There can't be a update difference because if the user didn't update before and skipped a update you have the new version on the server with the differences already patched and included. The previous unpatched files should then be updated to the latest version also..
i.e:
If I have 1.0.0 and skipped 1.0.1 1.0.2 you should push 1.0.3 (which should include the previous patched files from 1.0.1 and 1.0.2).
And not download 1.0.1 then 1.0.2 and last 1.0.3
As I've said, your method is not 100% reliable, because it doesn't take into account all the following possible outcomes:
- A bad download, maybe of just some files or just a single file.
- A download interrupted with the "Cancel" button, with some files updated and some not. To prevent this we'd need a rollback feature, like doing a backup of every file changed during an update, so it could go back to the previous state if the download was interrupted for any reason, taking an unpredictable amount of extra disk space, depending how large the new files were.
- A correct download, but the file arrived was outdated, because the local cloudflare cache wasn't updated, so the file you got from your local cloudflare node is intact (not a bad download), but it's not the one we have on our server.
- A file you removed by mistake
- A file you changed by mistake
- A file removed by the antivirus
- A file corrupted locally because filesystem problems.
Each and every one of these cases cannot be detected by a saved "version number", but it CAN by checking each and every file individually.
I know exactly what MSFS checks, and it's not all files. Because it's not needed in 99,9% of the time
And that's precisely why we all heard stories of users having to reinstall it from scratch, after an update. Happened to thousands of users.