kra-mo / cartridges

A GTK4 + Libadwaita game launcher
GNU General Public License v3.0
575 stars 29 forks source link

Unify Multiple Game Executables #111

Closed VinnyStalck closed 1 year ago

VinnyStalck commented 1 year ago

Problem:

Having different ways of running a game will make you have multiple entries of the same game, filling up the library unnecessarily.

Combining those multiple ways of executing a single game into a unified place would reduce clutter, eliminate potential duplicates and keep together entries that could be in separated places when sorting games in different ways.

Multiple executables examples: executing a game with different emulators (Super Mario Odyssey on Ryujinx or YUZU), an external tool for a game (Modding tools for Skyrim), having the same game from multiple sources (GTA V on Steam and Epic).

Solution:

Can be achieved by separating a game and an executable, meaning that importing games would actually import an executable for a game and add the other info and cover image if none is set or if the game doesn't exist already.

Would be better if combined with an uninstalled games feature that would fade away and separate (like Lutris) games that don't have an executable. Like hidden games, it would have a "Show Uninstalled" option in the main menu. Combining with issue #85 would have auto-removing only remove the game executable and maintaining a game entry.

Alt Solution:

In a playnite addon that I saw, had merging multiple game entries in one as an option. Could work with a manual merging option, that would add an array of references to other games in its .json and hid them.

How Could Work:

Merged games would: Ask which executable to use when calling the play function, if a default is not set. Show the different executables in the game options menu (or have a unique button in the cover). Have a dropdown next to the play button in the details window showing the executables and/or arrows that cycles through the executables available.

Each executable could have an icon to show in the menus, having each source a unique icon that would be added to the icon default. Or have the cover attached to the executables instead of the game, making them change in the details window when cycling through them.

Having a changeable game identifier that merges games that have the same id would help. Better if automatically created from the name of the game, ex: "Super Mario World" name world add super-mario-world as the id. Should have a different name to work with the current game_id (or change the current one to executable_id).

kra-mo commented 1 year ago

Duplicate of #52.