Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

> both butler and itch-setup try to connect

Here's what they both do:

  • butler starts an http server that's only available locally (on the loopback interface) - the itch app then connects it to it to make RPC (remote procedure calls)
  • butler handles all itch.io API calls, so it does need to connect to the itch.io server. It also handles all downloads, so it'll connect to our CDN, or to wherever the game is hosted
  • itch-setup also contacts a server of ours, https://broth.itch.ovh/ , to make sure you have the latest itch app version, and to download any updates.

About saved logins: when a log-in fails, the app shows the username/password form, assuming that the API key was revoked (if it was a saved login), or that the username/password was wrong (if it was a username/password login). It copies the username so it gives you a chance to enter the correct password again. However, the saved logins are not lost.  You can still click "Saved logins" and see the list:


Re shortcuts in the sidebar: icon versions could work! I've opened an issue to track that: https://github.com/itchio/itch/issues/2126

I'm hesitant to change Downloads/Preferences to open in tabs instead, because I'm not sure what would happen if you disabled tabs then? Technically both of these are implemented as "tab contents", they just don't show an address bar, but that also means you wouldn't be able to navigate away from them without clicking on a shortcut. I'll keep thinking about it.

I'm glad the tray icon works for you now! And it's possible that Windows 7 has different scroll/select behavior. Are you seeing the same in other applications?

Connection:
Yeah that's clear. So itch-setup just checks for client updates which is fine, but what if Butler can't connect on launch? Will it try again when it's needed or will it give an error? Gonna wait a see what it does at the next update so no need to worry about this one for now I guess.

Saved login:
Yes, sorry I forgot to mention that that was only a problem in an earlier version where it seemed to have forgotten my saved logins if I tried to use them and they still failed(GlassWire was buggy at the time and did things like that if the path had special characters like Á in my case.).
Later on they worked I just mentioned that that was the reason why I had problems.

Sidebar:
Cool! Thanks, hope they'll find it a useful idea. :)

Also yeah I just mentioned changing to tabs IF the dev team thinks it makes it cleaner or something and only meant the tabs IF tabs are actually enabled.

Scroll selecting:
Well anything that's based on Chromium seems to do that so that's why I thought it was in the base engine if that's what you are using for it, but maybe it's about Firefox being the one that allows "slide scrolling" without selecting things unlike others.
Still don't have a Win10 system at hand to test it, but maybe later we'll see.


Thanks for all the info!

(+1)
So itch-setup just checks for client updates which is fine, but what if Butler can't connect on launch? Will it try again when it's needed or will it give an error? Gonna wait a see what it does at the next update so no need to worry about this one for now I guess.

I would expect an "ask questions first, shoot later" Firewall to make the connection attempt "hang" until you've decided what to do with it. If that's what it does, then it should work fine.

If it doesn't, then.. you'll probably see the same thing you would if the API key was revoked or if you used a wrong password, so you'd have to switch back to saved logins and use again. I could maybe implement some retry logic if I knew what error we got when the firewall blocks the connection attempt!

(+1)

Well the firewall is just the one built into Windows and GlassWire is just a monitoring and handling system for it so there's no "hang time". If Windows blocks something I think it's simply like there's no internet connecttion for those processes and it's all up to them if they try to reconnect from time to time or when they are meant to use the network.

Well if Butler tries to connect again when I try to log in then sure, but my first thought was that it retries if it needs to do something AND detencts that there's no connection instead of a periodical rety while there's no connection, but I'd say go with whichever is the easiest and most stable approach for the dev team. :)

Might actually try and block all the Itch connections to see what the client does. Not sure why I didn't think of that yet since it's just a flip of a button in GW.
Gonna get back to you if I tried it after work(I'm in Hungary so that'll take a few hours).

Okay I did some tests.


The client caught me off guard a bit, but it makes sense. If it's blocked from the network it can still log in just fine with the saved logins(Why re-authenticate offline when it can't mess with user data, right?) and it even has my Library and Collections lists cached so I can use those at least and obviously only the browser part seems to be not working.
Tries to reconnect every time anything is requested.

Basically the auto-installer is self explanatory. It just won't fetch updates, acts like there are no updates and the client works fine.
Tries to reconnect when updates are checked.

The Butler only seems to give an error when a product page is opened and it tries to fetch data for the "installation bar" at the bottom, but doesn't seem to hinder anything else.
Tries to reconnect each time a product page is open.


So the client seems to work well enough in "offline mode" even if the network goes out completely and if it's just a "first attempt blocked" case it tries again each time anything is needed so there won't be any real problems it seems.

The only problems left for me are the icons that I have to change at an update and the fact that each version of each .exe will have a separate firewall rule that I'll need to remove manually(GW still doesn't have a "scan for unused rules" feature), but I'll manage those.


So thanks for all the info and hope I wasn't a burden. At least now this behavior is properly documented for anyone who has the same questions. :)

Keep up the great work!