hydralauncher / hydra

Hydra is a game launcher with its own embedded bittorrent client
MIT License
10.6k stars 2.47k forks source link

[REQUEST] Integration with Heroic Games Launcher #505

Open krasmazov483 opened 4 months ago

krasmazov483 commented 4 months ago

Is your feature request related to a problem? Please describe.

Currently Hydra have some integration with Lutris that works sometimes. I think an integration with Heroic Games Launcher could also be beneficial.

Describe the solution you'd like

Heroic allows games to be added (called sideload in the launcher) very easily. The window for adding a game automatically fetches artwork from SteamGridDB according to the game's name and allows the user to run an executable before finishing up, which is helpful for installing GOG games and repacks.

Heroic will, by default create a prefix and use the Wine/Proton version that was set up in its configuration page, so it's a very straight forward process to add a game there after first configuration by the user.

The best solution would be for Hydra to be able to use Proton and to be able to set a path for a prefix so the user can do everything on Linux in the launcher, but I do believe Heroic is a good alternative, specially since it's easier for managing games when compared to Lutris.

Describe alternatives you've considered

No response

Additional context

No response

scrlkx commented 4 months ago

We are still not capable of run games on Linux but we do have a PR that aims to add it by calling Lutris: #155.

And to be honest I think that it's the best we can do right now. I would love to have all "game setup" inside of Hydra, so we would not need an extra tool like Lutris or Heroic. However it would require a lot of work and maintenance and I don't think we can do that by now.

When choosing between Lutris and Heroic, I see Lutris as a more mature and well grounded tool, with better resources to set new games. So, having the Lutris PR merged (#155) I would have enough.

Maybe if we create a plugin system we could have a hook that "share" new games with Heroic though.

Another idea would be to have a setting that allow users to choose strictly between Lutris and Heroic.

zamitto commented 4 months ago

Hey @scrlkx, thanks for bringing #155 to attention. I will try to test it and fix the conflicts later today

krasmazov483 commented 4 months ago

I see. And I agree that Lutris is more mature, but it is also more complex to add a game to.

Another idea would be to have a setting that allow users to choose strictly between Lutris and Heroic.

That's more what I was thinking about, having an option to use either one in the launcher.

About the complexity I mentioned, Just for comparison:

To add a game to Lutris the user has to input the title, choose the runner, choose the executable, the path where the prefix will be created and which Wine/Proton version to use, all of this in three different tabs, and after all that the game will be added to Lutris without any artwork.

This process is much more simplified if the user has to run an installer since it will setup everything including artwork, but if the user installed the game outside the prefix, after installation they'll need to open the game's configuration in Lutris and point it to the game's executable.

On Heroic all you have to do is click Add Game in the Library, input a name, which will then automatically fetch artwork for the title, click the button to run an installer first if the game needs to be installed, then point to the game's executable, and you're done, all in the same window. If the user wants there's also the option of pointing the prefix to a different path and changing the Wine/Proton version to use, also on that same add game/sideload window.

The disadvantage of the Heroic method is that you cannot install the game inside the prefix, since the prefix will only be created on launch, but overall I think it's much more straight forward and easier to do, specially for less experienced users. It's also closer to the way Steam install games, by having it separate from the prefix.

I think it would improve the experience on Linux for Hydra to have both integrations. Tho it would probably be a good idea to also have this info somewhere so the user knows these options exist and how it works/integrates with the launcher.

scrlkx commented 3 months ago

@krasmazov483 have you ever tried umu-launcher (I think that's the name)? It seems be a fit for us I was wondering if you guys have any opinions about it

krasmazov483 commented 3 months ago

have you ever tried umu-launcher (I think that's the name)? It seems be a fit for us I was wondering if you guys have any opinions about it

I did actually. It's what I use for online-fix games on Heroic. I made a script that launches the game with umu-launcher and added it to Heroic instead of manually adding the game to Steam, that way I keep it in a separated library.

Here's an example of how I use it:

GAMEID=480 WINEPREFIX="/path/to/prefix/" PROTONPATH="/path/to/proton/" WINEDLLOVERRIDES="OnlineFix64=n;steam_api64=n;winmm=n,b" umu-run "/path/to/the/game/executable/"

There is only one issue. It needs a clean prefix to be made by Steam first to be able to work, at least for online-fix, I haven't tested otherwise. This post on Reddit details it.

EDIT: Tested it on another game that doesn't need online-fix, it works fine if you set the correct GAMEID and correct WINEDLLOVERRIDES for that specific game, it doesn't need a clean prefix to be created by Steam first.