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

Support Heroic Games Launcher #108

Closed
MattSturgeon opened this issue Sep 16, 2023 · 4 comments · Fixed by #151
Closed

Support Heroic Games Launcher #108

MattSturgeon opened this issue Sep 16, 2023 · 4 comments · Fixed by #151

Comments

@MattSturgeon
Copy link

MattSturgeon commented Sep 16, 2023

Many users prefer to use the Heroic Games Launcher, instead of the various official games launchers it replaces.
This is especially true on Linux, where it is a native & well integrated application, unlike most official launchers.

Heroic makes use of store-specific tools (currently Legendary, gogdl & Nile). These tools can be used separately from Heroic to install & launch games owned on the respective store.
However I don't think those tools keep track of and "manage" installed games, per-se. (Might be wrong about that, I've not used those tools directly).

Heroic can be installed via Flatpak, AppImage, via distro packages or manually from a tarball. This probably won't be too relevant since regardless of Heroic's installation method, users can install games to any location they wish on their system.
Although, Heroic's cache & config will be at a different path when it's installed as a flatpak.

Since users can install games anywhere, would probably need to scan the relevant config/list/database that catalogs installed games.

See also Nexus-Mods/NexusMods.App#1695

@erri120
Copy link
Owner

erri120 commented Jul 22, 2024

Some research notes:

Heroic writes data to app.getPath(userData). A list of installed GOG games can be found in gog_store/installed.json:

{
	"installed": [
		{
			"platform": "windows",
			"executable": "",
			"install_path": "/home/user/Games/Heroic/Treasure Adventure Game",
			"install_size": "105.91 MiB",
			"is_dlc": false,
			"version": "1.0",
			"appName": "1207659013",
			"installedDLCs": [],
			"language": "en-US",
			"versionEtag": "\"1232499704\"",
			"buildId": "51402546720039850",
			"pinnedVersion": false
		}
	]
}

@MattSturgeon
Copy link
Author

Heroic writes data to app.getPath(userData).

Note: when heroic is installed using flatpak, this won't be the same XDG_DATA_HOME that "normal" programs see (~/.local/share by default).

Flatpak gives its sandboxed apps a) an overlayed $HOME directory and b) custom XDG dirs, usually in ~/.var/app/com.heroicgameslauncher.hgl.


When NM.A is installed "normally" it should be trivial to also scan flatpak's sandbox locations from the host environment, however if NM.A ever supports being installed as a flatpak, then accessing the host system (or other flatpaks) becomes more difficult.

Though that's a much wider issue mostly unrelated to this one.

@MattSturgeon
Copy link
Author

MattSturgeon commented Sep 28, 2024

Thanks for tackling this!

Looking over #151, it seems to support only GOG games installed in Heroic. Is that correct, or am I just mis-interpreting some names? Heroic can be used to install games from a few game stores, not just GOG.

@erri120
Copy link
Owner

erri120 commented Sep 28, 2024

Thanks for tackling this!

Looking over #151, it seems to support only GOG games installed in Heroic. Is that correct, or am I just mis-interpreting some names? Heroic can be used to install games from a few game stores, not just GOG.

Only GOG for now. Will add EGS later.

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

Successfully merging a pull request may close this issue.

2 participants