Code Monkey home page Code Monkey logo

Comments (4)

Arcitec avatar Arcitec commented on May 17, 2024

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.

from cartridges.

kra-mo avatar kra-mo commented on May 17, 2024

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.

from cartridges.

Arcitec avatar Arcitec commented on May 17, 2024

@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.

from cartridges.

keenanweaver avatar keenanweaver commented on May 17, 2024

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.

from cartridges.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.