ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.36k stars 2.29k forks source link

Auto update downloads over metered connections #29749

Closed Electrenator closed 1 month ago

Electrenator commented 2 months ago

Type

Game behaviour

Bug description

On windows the game auto updates without checking if someone is on a metered connection. Downloading this could get quite expensive for people sometimes playing while traveling. Noticed it while traveling within a country that I gladly didn't have any data roaming charges for.

Would expect the game to only update manually when the "Metered connection" setting of a WiFi network is enabled.

Screenshots or videos

No response

Version

2024.817.0 (so might possibly have been fixed by #28743)

Logs

compressed-logs.zip Of which logs from the 1725667215 timestamp and onward are relevant.

smallketchup82 commented 2 months ago

Please give Velopack a try

Velopack has much more efficient delta management vs Squirrel. In a nutshell, Velopack will download highly compressed "patches" for new versions instead of the entirety of a new release. In my experience, these patches are quite small, sometimes just a couple megabytes.

Update checking shouldn't take too much storage either. Velopack will read the releases.win.json from the latest release to determine if it's time to update or not. This file, in the latest release, is only 347 Bytes. It will be doing this every 30 minutes, making for 694 Bytes every hour, making for 16kb total if you keep lazer open for 24 hours nonstop.

Even though Velopack shouldn't use up too much internet, if you're still interested in completely turning off updates, I can see what I can do. Not sure if we'd want that osu-side or velopack-sided, but I can look into implementing it in a more user friendly manner vs the current environment variable method.

catuhana commented 1 month ago

Please give Velopack a try

Velopack has much more efficient delta management vs Squirrel. In a nutshell, Velopack will download highly compressed "patches" for new versions instead of the entirety of a new release. In my experience, these patches are quite small, sometimes just a couple megabytes.

Update checking shouldn't take too much storage either. Velopack will read the releases.win.json from the latest release to determine if it's time to update or not. This file, in the latest release, is only 347 Bytes. It will be doing this every 30 minutes, making for 694 Bytes every hour, making for 16kb total if you keep lazer open for 24 hours nonstop.

Even though Velopack shouldn't use up too much internet, if you're still interested in completely turning off updates, I can see what I can do. Not sure if we'd want that osu-side or velopack-sided, but I can look into implementing it in a more user friendly manner vs the current environment variable method.

I'd say the issue is not checking the updates, but downloading them. Velopack's delta is already a good step towards smaller and faster updates/update files, but I don't think that fits the purpose of this issue. Roaming data is expensive for some countries (a megabyte is $0.5 in Turkey for most carriers, for example).

I'd also say this could be implemented for downloading maps etc.

Electrenator commented 1 month ago

I'd say the issue is not checking the updates, but downloading them.

Exactly! Mostly try to avoid unexpected data charges as an end user. I love auto updates but try to avoid them when traveling.
Would nice if downloading the updates could be manually delayed on a metered connection. Allowing someone to search out a place without network charges where they can update while still allowing them to play with counted scores.

Please give Velopack a try

Definitely am going to use it. Mostly trying to avoid hitting my monthly data limit or unexpected charges when randomly playing on the go.

Though an alternative might be to disable internet myself and fully play offline for those few plays out & about.

JacksonChen666 commented 1 month ago

Also on auto-updates (related to metered connections): You can't cancel them. There is a cancel button which doesn't work. Neither right click. Seemingly the only option is to rapidly quit lazer (not tested, and it's pressing Command-Q or Alt-F4, 2 or 3 times. Also not sure if this should be a separate issue). (Deltas also don't seem to be working either, macOS and Linux from 2024.906.1 to 2024.906.2)

smallketchup82 commented 1 month ago

I'm still not sure what direction to head here. I can get that this might be a pressing issue but wonder how it should be fixed.

From my own thoughts:

I'd like some input from the core team before I proceed with this.

peppy commented 1 month ago

The only valid change would be checking the system connection for "low data mode", a user setting on both windows and mac.

No other solution is required or valid.

Also deltas are small and always have been. I feel like this is a complaint without rationale and can be considered low priority.