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

Allow multiple executables per game #52

Closed
keenanweaver opened this issue Apr 2, 2023 · 4 comments
Closed

Allow multiple executables per game #52

keenanweaver opened this issue Apr 2, 2023 · 4 comments
Labels
enhancement New feature or request wontfix This will not be worked on

Comments

@keenanweaver
Copy link

Is your feature request related to a problem? Please describe.
No issue has been opened on this previously.

Describe the solution you'd like
If a user wishes to add the same game (or associated program) multiple times, they have to create new entries and label them accordingly. It would be useful to associate multiple executables to a single game in Cartridges and the user can choose which one to launch. (Maybe take the user to the 'game screen' like when you click on a cover and show the executable list.) To be user friendly, it'd probably need the option to label executables.

Describe alternatives you've considered
As said above, duplicate entries for the same game, but labeled to distinguish.

Additional context
As an example, if I want to add Duke Nukem 3D, its source ports, plus a DOSBox one, and the various Steam releases, that'd be like seven different entries for one game.

@keenanweaver keenanweaver added the enhancement New feature or request label Apr 2, 2023
@Arcitec
Copy link
Contributor

Arcitec commented Apr 2, 2023

That would be a big architecture change for Cartridges. Right now it creates one JSON file per SOURCE (like Steam, Bottles and Heroic) and does not attempt to merge the same game from multiple sources in any way.

It would be very hard to do this well, too, because we get the game titles from each individual library. Imagine that a game is called the following"

  • Steam: "TETRIS(R): Connect"
  • Heroic (Epic): "TETRIS(R) Connect"

Even such a small difference would make to completely impossible for us to merge two games into one.

There is literally nothing else we could use to identify the games either. Cover art comes from every individual launcher's own cache files and have nothing in common with each other.

Merging games would also be a nightmare logistically, having every importer somehow be aware of the unified game JSON file that they all need to import into.

My personal gut feeling is that this is way out of scope for the simplistic concept of Cartridges. But @kra-mo would have to give his ultimate thoughts as the project leader.

Edit: One potential workaround is to allow users to manually drag and drop games onto each other to group them, asking the user for a group name when creating a new group like that, and then adding some property to their individual JSON files which tells the GUI to render those games as part of that group, with a popup-chooser to pick the exact version to launch. I dunno if it's worth the hassle though. But it's a potential solution at least.

Edit: That being said, there are much more important things to do before we would have time left over for any rewrites/GUI expansions like that.

If you want more complicated and more powerful launchers, things like GameHub already exist, keep that in mind. Cartridges aims to be light and simple.

@kra-mo
Copy link
Owner

kra-mo commented Apr 2, 2023

The backend stuff would be relatively painless to implement without any major structural changes. There are several ways we could do it without messing up existing installations.

But I agree that from a user experience point of view, it would be more confusing than anything as auto-merging games would be near-impossible without a ton of accidental merges. It would also need to be exposed to all users even though not many people would actually use it. So I'm closing this as wontfix.

@kra-mo kra-mo closed this as not planned Won't fix, can't repro, duplicate, stale Apr 2, 2023
@kra-mo kra-mo added the wontfix This will not be worked on label Apr 2, 2023
@Arcitec
Copy link
Contributor

Arcitec commented Apr 2, 2023

@kra-mo I also noted that we are in good company. Playnite, the most advanced and strongest launcher on Windows, has had an open request for "merging duplicates" since 2018, so half a decade so far:

JosefNemec/Playnite#408

On the other hand, GameHub handles merging, because I found this ticket with some screenshots of what the merge looks like:

tkashkin/GameHub#259

It would be interesting to learn how they merge things. If it's automated or manual or both.

Their code is here:

https://github.com/tkashkin/GameHub/search?q=Merge+in%3Afile&type=

They seem to have a separate database that contains a list of all game ids (in our case it would be the ids of the JSON files) that should be merged with each other. That way the individual game source files don't need any metadata in them.

It could be easy to add similar code in the future if it ever becomes interesting.

But personally, if someone wants to install and run 7 different versions of the same game, I would direct people to GameHub instead because that's more suited for such advanced usage. Cartridges aims to be light, simple and beautiful.

@keenanweaver
Copy link
Author

Thanks for considering! When I opened this request, what I had in mind was just adding multiple executables to a game, not auto-merging entries.

Yeah, I've been a GameHub user in the past, but it's not quite the same in what I was hoping--it merges from sources but doesn't really let you combine multiple manually added games. I migrated from Windows a while ago, but I really miss LaunchBox, which has no equivalent or alternative on Linux in terms of functionality. It's pretty messy with a lot of options, but the end result allows users to do pretty much whatever they want. However, that's probably the opposite of light & simple.

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

No branches or pull requests

3 participants