Skip to content

Commit

Permalink
docs: improve info about linux native build of the sdk (#51)
Browse files Browse the repository at this point in the history
* docs: improve info about linux native build of the sdk

* docs: avoid language-specific gog.com links

* docs: remove inaccurate information
  • Loading branch information
HKayn authored Oct 8, 2024
1 parent eeb36e1 commit e60b2e6
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 36 deletions.
2 changes: 1 addition & 1 deletion docs/steamdeck/USAGE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Using with the Steam Deck

Using Comet with Valve's Steam Deck (running SteamOS) is possible in both Desktop and Game Mode. Comet will only function with games that do support [GOG Galaxy's achievement system](https://www.gog.com/en/games?features=achievements) or any other online related functionality like Leaderboards. **If your game does not work out of the box, check Known Issues below.**
Using Comet with Valve's Steam Deck (running SteamOS) is possible in both Desktop and Game Mode. Comet will only function with games that do support [GOG Galaxy's achievement system](https://www.gog.com/games?features=achievements) or any other online related functionality like Leaderboards. **If your game does not work out of the box, check Known Issues below.**

Using `comet_shortcut.sh` will simplify the process of launching GOG games from Heroic or Lutris with Comet in the background. That script works in both Modes.

Expand Down
63 changes: 30 additions & 33 deletions docs/wiki/For-Game-Developers.md
Original file line number Diff line number Diff line change
@@ -1,63 +1,60 @@
> [!IMPORTANT]
> This is **not** an official page affiliated with GOG. These are my findings while I was looking into SDK client libraries that GOG provides.
> While the libraries disclosed below have proven to work in production there **no one guarantees** that.
> Nevertheless I encourage you to at least try linking your game against and see the results
> This is **not** an official page affiliated with GOG. These are my findings while I was looking into the SDK client libraries that GOG provides.
> While the libraries disclosed below have been proven to work in production, **there is no guarantee.**
> Nevertheless I encourage you to at least try linking your game against them and see the results.
## You made it here!

If you are seeing this page then you are probably considering shipping a Linux native build of your game on GOG.
Excelent choice! If you've researched the topic of GOG Galaxy SDK then you probably know that GOG claims such thing is not supported on Linux.
If you're seeing this page, then you're probably considering shipping a native Linux build of your game on GOG.
Excellent choice! If you've researched the GOG GALAXY SDK then you've probably discovered that it appears to not be available for Linux.

**But, don't leave yet** while this is what GOG claims, it's not necessairly true (I guess they don't want to commit to supporting Linux fully).
It was proven to work by games like
**But don't leave yet!** It is still possible to use the GOG GALAXY SDK on your Linux build to enable achievements and other online features, and it may even save you some general effort in the process.
This has already been proven to work by several games, including:

- Stardew Valley
- Indivisible
- Streets of Rage 4
- Crypt of the NecroDancer
- [Crypt of the NecroDancer](https://www.gog.com/game/crypt_of_the_necrodancer)
- [Indivisible](https://www.gog.com/game/indivisible)
- [Stardew Valley](https://www.gog.com/game/stardew_valley)
- [Streets of Rage 4](https://www.gog.com/game/streets_of_rage_4)

## How to get native library
## How to get the native Linux library

In the developer portal in `Galaxy Components` > `SDK` you'll see the section with downloads
In the Developer Portal in `Galaxy Components` > `SDK`, you'll see the following download section:

![image](https://github.com/user-attachments/assets/3bdc9728-ad09-4bd4-83c4-09c745433a8a)

The `Steam-runtime` is what you are looking for. Pick an appropriate bitness and link your app against that.
This build is up-to date like the rest of SDK packages.
This build is up-to date like the rest of the SDK packages.

> [!NOTE]
> There is no GalaxyPeer library for Linux, it seems to be statically linked within the provided libGalaxy.so library.
> There is no GalaxyPeer library for Linux. Instead, it seems to be statically linked within the provided libGalaxy.so library.
## Why bother?

Going out of your way to use the library that GOG is too shy (⁄ ⁄>⁄ ▽ ⁄<⁄ ⁄) to talk about may feel weird but there are advantages.

1. DLC Discovery https://docs.gog.com/sdk-dlc-discovery
- GOG encourages you to build your own solution for DLC Discovery on Linux, because normally this is something that SDK client handles
Going out of your way to use the library that GOG is curiously neglecting to mention may feel weird, but there are significant advantages.

2. Multiplayer
- Having SDK client library is required to be able to provide multiplayer functionality and user identity features. (this still has to be optional - remember about the [DRM free nature](https://docs.gog.com/sdk/#drm-and-sdk) of GOG)
1. DLC Discovery via GOG GALAXY SDK: https://docs.gog.com/sdk-dlc-discovery
- GOG normally encourages you to build your own solution for DLC Discovery on your Linux build, but now you can continue using the dedicated GOG GALAXY SDK method, just as you would on your Windows build.

3. Less work (potentially)
- It can be tedious to support multiple store fronts especially when one of them requires you to do platform specific workarounds because they fail to stay consitent with provided feature set.
2. Potentially less work in general
- To ease the burden in supporting multiple storefronts, this library may generally reduce the amount of platform-specific workarounds needed to offset the inconsistent feature sets between platforms on GOG.

3. Multiplayer, Leaderboards & more on Linux
- Just like your other builds, your Linux build can now provide multiplayer functionality and player authentication features. While the GOG GALAXY client is not available for Linux, players can use an equivalent client such as `comet` to pick up your game's API calls.\
*(Remember to keep these online features optional in order for your game to remain DRM-free - see the [DRM and SDK](https://docs.gog.com/sdk/#drm-and-sdk) section of the GOG Dev Docs for more information.)*

## What this comet repo has to do with all this?
## So what is `comet`?

Comet is a drop-in replacement that allows players to leverage "GOG Galaxy-only" functionality (multiplayer, achievements, stats and leaderboards) on every platform.
Comet is a drop-in replacement for the GOG GALAXY client that allows players to leverage "GOG GALAXY-only" functionality (multiplayer, achievements, stats and leaderboards) on every platform that GOG games are available for.

The main goal is to bring this feature set to Linux users and let them use the platform to the fullest.

The project already ships to thousands of users through [Heroic Games Launcher](https://heroicgameslauncher.com/) and soon more Linux clients will follow.
The main goal of this project is to bring the GOG GALAXY feature set to Linux users and let them use the platform to the fullest.

Comet has already shipped to thousands of users through the [Heroic Games Launcher](https://heroicgameslauncher.com/), with more Linux clients soon to follow.

## Not convinced?

Depending on features your game provides not using this lib may be more troublesome than expected, you should evaluate this per your project scope.

However, even if you still don't want to do it, your decision is respected. After all Linux users who will want to access those online features can still use Proton to run Windows build of your game, so not everything is lost.
Depending on the features that your game provides, not using this library may be more troublesome than expected; you should evaluate this per your project scope.

Should you ultimately decide against including the `Steam-runtime` library, your choice will be respected. Linux users who wish to access your game's online features can still use Proton to run the Windows build of your game, so not everything is lost.

*Have a nice day!*
*from Comet developers*
*from the Comet developers*
2 changes: 1 addition & 1 deletion docs/wiki/Game-Compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ While GOG does not officially support GOG Galaxy features (achievements and lead
|[Horizon Zero Dawn Complete Edition](https://gog.com/game/horizon_zero_dawn_complete_edition)|7517962 (1/18/2022)|🔲 Not Available|[commit `c4715bf`](https://github.com/imLinguin/comet/commit/c4715bfa186f9b8955b842d57fd6f17fc5209f26)|🔲 No|🟩 Achievements 🔲 Leaderboard| Achievements do work.|
|[Indivisible](https://www.gog.com/game/indivisible)|42940 (6/22/2020)|🟩 Yes|[version 0.1.0](https://github.com/imLinguin/comet/releases/tag/v0.1.0)|🔲 No|🟩 Achievements 🔲 Leaderboard|Achievements do work.|
|[Kingdom Come: Deliverance](https://www.gog.com/game/kingdom_come_deliverance)|1.9.6-404-504czi3 |🔲 Not available|[version `0.1.2`](https://github.com/imLinguin/comet/releases/tag/v0.1.2)|🟩 Yes|🟩 Achievements 🔲 Leaderboard||
|[Metal Slug](https://www.gog.com/en/game/metal_slug)|Version gog-3 - 26/05/2017|🔲 Not Available|[version `v0.1.2`](https://github.com/imLinguin/comet/releases/tag/v0.1.2)|🔲 No|🟩 Achievements 🟩 Leaderboard|Achievements and leaderboard do work as of `v0.1.2`. Multiplayer not tested yet.|
|[Metal Slug](https://www.gog.com/game/metal_slug)|Version gog-3 - 26/05/2017|🔲 Not Available|[version `v0.1.2`](https://github.com/imLinguin/comet/releases/tag/v0.1.2)|🔲 No|🟩 Achievements 🟩 Leaderboard|Achievements and leaderboard do work as of `v0.1.2`. Multiplayer not tested yet.|
|[Metal Slug 2](https://www.gog.com/game/metal_slug_2)|gog-3 - 26/05/2017|🔲 Not Available|[version `0.1.2`](https://github.com/imLinguin/comet/releases/tag/v0.1.2)|🔲 No|🟩 Achievements 🟩 Leaderboard|Achievements and leaderboard do work as of `v0.1.2`.|
|[Metal Slug 3](https://www.gog.com/game/metal_slug_3)|gog-5 - 26/05/2017|🔲 Not Available|[version `0.1.2`](https://github.com/imLinguin/comet/releases/tag/v0.1.2)|🔲 No|🟩 Achievements 🟩 Leaderboard|Achievements and leaderboard do work as of `v0.1.2`. Multiplayer not tested yet.|
|[Metal Slug X](https://www.gog.com/game/metal_slug_x)|gog-6 - 02/06/2017|🔲 Not Available|[version `0.1.2`](https://github.com/imLinguin/comet/releases/tag/v0.1.2)|🔲 No|🟩 Achievements 🟩 Leaderboard|Achievements and leaderboard do work as of `v0.1.2`. Multiplayer not tested yet.|
Expand Down
2 changes: 1 addition & 1 deletion docs/wiki/steamdeck/Usage.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Using with the Steam Deck

Using Comet with Valve's Steam Deck (running SteamOS) is possible in both Desktop and Game Mode. Comet will only function with games that do support [GOG Galaxy's achievement system](https://www.gog.com/en/games?features=achievements) or any other online related functionality like Leaderboards. **If your game does not work out of the box, check Known Issues below.**
Using Comet with Valve's Steam Deck (running SteamOS) is possible in both Desktop and Game Mode. Comet will only function with games that do support [GOG Galaxy's achievement system](https://www.gog.com/games?features=achievements) or any other online related functionality like Leaderboards. **If your game does not work out of the box, check Known Issues below.**

Using `comet_shortcut.sh` will simplify the process of launching GOG games from Heroic or Lutris with Comet in the background. That script works in both Modes.

Expand Down

0 comments on commit e60b2e6

Please sign in to comment.