jaydenmilne / steamsync

Tool to automatically add games from the Epic Games Launcher to Steam
GNU Affero General Public License v3.0
157 stars 17 forks source link

Support adding games from itch.io app #8

Closed idbrii closed 3 years ago

idbrii commented 3 years ago

Works a lot like egs support, but instead of a central repository for game manifests they have a install directory where each game contains a manifest. If you use multiple itch.io install directories, you'll have to run steamsync once for each directory.

Moved GameDefinition to another module so the itch module can reference it.

Not sure that tags work properly, but updated that to ensure we set the appropriate tag for itch.io games.

Test

Caveat: I'm not sure how to test this works as an installed python package.

jaydenmilne commented 3 years ago

Wow - thanks for all this work you’ve done!

I’ve been pretty busy but should have time this weekend to review your PRs, sorry about the delay.

jaydenmilne commented 3 years ago

Overall, thanks for adding this! I think we just need to tweak the exe selection algorithm to match itch.io's convention and some minor plumbing/ui things, and I'll get this merged.

I'll take care of updating the GUI since that's my spaghetti code anyway and release. Make sure you are running the black code formatter too.

jaydenmilne commented 3 years ago

Final thoughts for merge, to be more explicit:

If you want to avoid managing 3 PRs, feel free to consolidate on your final PR.

idbrii commented 3 years ago

I've reworked this PR. I'll get to the others eventually.

For your three main points, the only thing is the way we each interpret the itch's algorithm. See my comments above.

I've tested this new version with a few games made with different engines (good time to catch up on the GMTK game jam top 10) and they launch and run and work with steam input remapping:

Thanks for the thorough code review feedback on the PRs! It's been a while since I've had a good review.

jaydenmilne commented 3 years ago

Thanks for re-working this, looks good to me!

If I don't see any activity on the other branches in couple weeks or so I'll release as-is, but I'll give you some time to work on those so it can all be one big release.