Skip to content

Support *extremely rare* games using the GOG Linux SDK #33

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

Closed
cybik opened this issue Jul 11, 2024 · 12 comments
Closed

Support *extremely rare* games using the GOG Linux SDK #33

cybik opened this issue Jul 11, 2024 · 12 comments
Labels
enhancement New feature or request

Comments

@cybik
Copy link

cybik commented Jul 11, 2024

Is your feature request related to a problem?
No, it is only to bring attention to a very rare edge-case: some GOG games obtained through GOG may be bunding the "steam runtime" native Linux variant of the Galaxy libraries.

The ONE example I have of this is Indivisible. I know of it because I'm the one who bundled it for all platforms, and I insisted on having the Linux native libraries in place "just in case CDPr ever launched Galaxy on Linux". We can all guess how that turned out.

Describe the solution you'd like
If necessary, a native GalaxyCommunication "service" binary for Linux would be nice.

Describe alternatives you've considered
This ticket is only to raise the issue. I haven't considered anything.

Additional context
The current state of the Linux Native bits will require someone to have access to GOG DevPortal.

@cybik cybik added the enhancement New feature or request label Jul 11, 2024
@kevin-wijnen
Copy link
Contributor

kevin-wijnen commented Jul 11, 2024

Hey there - have you seen the current (for Windows version of games) solution here already?

This seems similar to your raised issue - except for this case focusing on Linux-native binaries. Some Windows games (i.e. Cuphead) rely on a very old SDK of GOG that needed a dummy Communication Service binary to get Comet working. Although most Windows games (and even few Linux native ones - like Stardew Valley and Crypt of the NecroDancer) work fine without the dummy service at the moment.

Not sure if there's any way to adopt the information @imLinguin learned for the Windows dummy binary could be used for a Linux native binary.

Are there any other known games that have the same situation as Indivisible?

(Also - thanks for packaging Indivisible back then for all platforms and keeping Linux support in mind. 🫡)

@imLinguin
Copy link
Owner

Thanks for bringing this up!
Like @kevin-wijnen said we had some luck with native games here. To the mentioned list I'd like to add Streets of Rage 4.

I've researched this topic a bit, the requirement for having a GalaxyCommunication service. In fact the feature of SDK actually checking for that service was introduced in newer versions and is there to reduce delays in game launch when there nothing listens on the communication port.

As far as I know it's no longer possible to access Linux native stuff through DevPortal.
Out of curiosity I'll test the Indivisible

@cybik
Copy link
Author

cybik commented Jul 11, 2024

Hey there - have you seen the current (for Windows version of games) solution here already?

@kevin-wijnen I pointed it out in the ticket description, but basically, yes it would:

If necessary, a native GalaxyCommunication "service" binary for Linux would be nice.

@imLinguin re:

As far as I know it's no longer possible to access Linux native stuff through DevPortal.

That's not what I'm seeing. Somehow my creds are still valid, and going under "GOG Galaxy Components" and into SDK, steam-runtime is present. It's quirky and they're being VERY coy about Linux binaries, like, existing, but the binaries are there. The issue here is whether they do anything at all or are mere shims - I never tested that.

@cybik
Copy link
Author

cybik commented Jul 11, 2024

For the record (can't believe I'm opening the data after all this time), the GOG variant was intended to be DRM-free.

In other words, if the GOG Galaxy desktop client (or its replacement) isn't there, the game code goes "meh" and plays the game all the same, but it does try to initialize GOG via the galaxy library.

So in a way, we don't need the shim service (I updated OP to point out if necessary just now); I mostly opened this ticket to make sure that the rare instances of native Linux games with native Linux Galaxy libs would not be forgotten.

@imLinguin
Copy link
Owner

For the record (can't believe I'm opening the data after all this time), the GOG variant was intended to be DRM-free.

In other words, if the GOG Galaxy desktop client (or its replacement) isn't there, the game code goes "meh" and plays the game all the same, but it does try to initialize GOG via the galaxy library.

Yes, that makes sense, that's the whole idea behind GOG after all. Such failure needs to be treated differently for games that involve any type of multiplayer to disable/limit it.

So in a way, we don't need the shim service

That's right, I can't imagine how would they replace the logic for finding and running GalaxyCommunication service on Linux.

@cybik
Copy link
Author

cybik commented Jul 11, 2024

Came back to add:

At the very least, comet as it is right now can actually yell achievements back to GOG and Indivisible successfully hooks up to it. I just checked!

@kevin-wijnen
Copy link
Contributor

That's great! Definitely consider filling out a Game Compatibility form to get it on the list!

@imLinguin
Copy link
Owner

Checked that as well, was able to unlock 2 achievements
obraz

@cybik
Copy link
Author

cybik commented Jul 11, 2024

On my side it didn't manage to track play time. Not sure why.

@imLinguin
Copy link
Owner

Playtime isn't handled by comet unfortunately. At the moment Heroic Games Launcher does the tracking

@imLinguin
Copy link
Owner

Created a wiki page for game developers to refer to in regards of Linux native SDK
https://github.com/imLinguin/comet/wiki/For-Game-Developers

@cybik
Copy link
Author

cybik commented Oct 28, 2024

All right then, at this point I think I can consider this closed.

And good stuff on the presentation at Ubuntu Summer '24!

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

No branches or pull requests

3 participants