I think if you do that then you need to be able to tie uploads to users’ accounts so you can allow people to rectify any mistakes and update their game, as well as being able to block users who do anything malicious (which is unlikely to happen, but always a possibility).
Making the loader a webpage would be hard because there’s no standard solution for giving webpages control of serial connections (as far as I’m aware). Someone made one that works with Chrome, but it was relying on Chrome-specific functionality, and I don’t think the ‘official’ game loader should only work for people with a specific browser.
Yeah, that should definitely be an optional feature.
(Personally I think all file type associations made by all programs should be optional. I’ve spent a lot of time in the past trying to rectify file type associations that I don’t want. Sometimes command line wasn’t enough and I had to go registry diving.)
In fairness it’s quite uncommon these days for files to be corrupted when downloaded.
It’s probably only ever happened to me once.
Some other suggestions:
I think if there’s going to be an official repo of Arduboy games, it might be good to have a REST API so people can use custom clients that pull from the official repo. If you link that to a user id or a per-client id you can also employ rate-limiting to prevent the repo from being overrun by requests.
I think maybe it would also be good to publish hashes of the hex file for the sake of extra security.
Then if you’ve got a client-side loader you can make it check the hash for you, or if you’ve got a command-line utility you can use that.
Personally I’d prefer something client-side that’s portable (i.e. you just unzip it and it works wherever you put it), but I respect that some people might prefer an installer and some people might want something browser-based.
(Also, if it’s only installer-based, it would be nice if it gave people a warning if it’s going to edit any registry keys or put files anywhere outside of its designated area (other than in the temp folder), even if that’s only available through ‘advanced setup’ to avoid scaring beginners. Letting people choose where it’s installed is a given.)
Some of the more obvious things:
Definitely stick to
.arduboy files, and have a UI to help fill in the data.
Make sure the repo supports https, TLS and whatever other security features that are considered viable.