itchio / itch

🎮 The best way to play your itch.io games
https://itch.io/app
MIT License
2.31k stars 198 forks source link

Confusing update suggestion for app distributed as separate 32-bit and 64-bit builds #2141

Open akien-mga opened 5 years ago

akien-mga commented 5 years ago

I have the 64-bit version of RPG in a Box installed via the itch client, version 0.4.9.22 (latest). screenshot_20180924_230003 screenshot_20180924_230022

Yet, the itch client reports that updates are available, and proposes this confusing selection: screenshot_20180924_230111

I don't want to update to the 32-bit version or to a demo, so none of those proposals is relevant. I can of course decide to skip the update, but it did force me to check whether it was an actual update that I would want to do and was just forgotten to package in 64-bit. So I guess other users might be confused in similar situations.

fasterthanlime commented 5 years ago

Was that version of RPG in a Box imported from a previous version of the itch app? Or installed via v25 directly?

akien-mga commented 5 years ago

It was installed over a year ago, so not with v25 at that time. I can try to uninstall and reinstall with v25 to see if it works better.

fasterthanlime commented 5 years ago

It was installed over a year ago, so not with v25 at that time.

Cool, then this is just an import thing.

I'm going to close this, but here's a complete summary in case you're curious.


It's hard to determine currently "what is an update". The app just sees a list of uploads, like:

And it knows all of these are for Linux. In v23, you could only have one upload per game installed. In v25, each "installed game" maps to a game/upload combo.

When folks use https://itch.io/docs/itch/butler there is no ambiguity for updates - it's the same upload, just a different build. That's my ideal case.

When folks don't use butler, they update by:

Additionally, processor architecture isn't stored as upload metadata, the best shot we have at it is scanning the filename or display name, so we don't trust it too much. Because maybe it's not a 32-bit game, it's just a Ludum Dare 32 entry.

v23, since it only permitted one game install per game, tried to figure out which upload to update to by date. That means if you installed the 64-bit build, and then a 32-bit build got uploaded, it might update your install to the 32-bit build, which at best changes nothing for you, at worst breaks it completely because you're missing some 32-bit libraries.

For v25 I had to figure out a better strategy, since you might have, say, both the full game and the demo installed, and we don't want either to do a "wrong update". So when there's uploads created after the "installedAt" date, it asks you if you want to upgrade to any of them (that's the dialog you saw).

It doesn't look like RPG In a Box got updated too recently (otherwise a new 64-bit upload would be in the list you saw), so I'm assuming the "installedAt" timestamp was wrong when it imported the v23 install, and that's why it prompted you once about it. When you "Skip update", it marks the current date as the new cutoff point, and shouldn't prompt you again until there's actually new uploads for RPG In a Box.


I've been thinking about ways to fix all the above problems, we've discussed them internally (tagging architecture properly, keeping track of update paths), but there's UX challenges there, we need the system to be obvious for folks who upload games, and there's 150K+ games to "migrate" to the new system, so ideally it'd be incremental improvement.

TL;DR that particular mess is not fully cleaned yet, but v25's default behavior is imho the best I can do until we change some of the backend.

Hope that clears things up!