Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for "launching" plugins #52

Open
cprecioso opened this issue Aug 19, 2019 · 1 comment
Open

Add support for "launching" plugins #52

cprecioso opened this issue Aug 19, 2019 · 1 comment

Comments

@cprecioso
Copy link

cprecioso commented Aug 19, 2019

For any given game and platform, there are multiple ways of launching it. For example, a Steam game might be installed and launched through all these means:

  • Local Steam client (the regular way)
  • Locally installed Wine emulator
  • Remotely played via Steam Link
  • Streamed from the cloud through services like Vortex or GeForce NOW

All these ways of launching the game are all backed by the same library, but each has a different availability or platform support, and obviously a different way of running the game.

Currently the GOG Galaxy API only allows for each plugin to implement running a game in a single way. However, allowing access to playing games in an alternative way would be desirable (or the only way to play them - e.g. a Windows game on a Mac computer). This could also allow an emulated game to be launched through a number of different emulators a user might have installed.

Therefore, I propose that the plugins be split in two: a "library" plugin which would check which games you owned, and retrieve stats; and a "launcher" plugin which would implement one of the ways of launching the game (also checking if it's possible).

This way, two possibilities become available:

  • A single plugin could offer a single "library" plugin and multiple "launcher" plugins
  • Each plugin only offers a single "library" and "launcher" plugins, but the user has the possibility of adding more independent "launcher" plugins for a given library.

This is indeed a complex subject UX-wise, but it definitely would be an advanced feature that only people familiar with these topics would seek out; so IMO it's allowed to be a bit obscure.

The current way the API is structured, multiple plugins providing the same platform would have to be installed, adding confusion, duplication of code and having to log in to the same website multiple times. I'm not even sure if the client allows loading multiple plugins for the same platform id, or how it deals with them.

This would be quite an elaborate architecture change probably, but just wanted to pitch it.

Thanks for the awesome app!

@apawlowskij
Copy link
Contributor

Thank you for your proposal.
Different options to launch a game is an interesting idea. I have some doubts regarding splitting the plugins into parts, parametrizing the launch method seems to be easier, but that's a matter of the implementation.
We're glad you like it! There will be more cool stuff coming with the next update, so stay tuned ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants