JosefNemec / Playnite

Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.
https://playnite.link
MIT License
9.17k stars 495 forks source link

Multi-PC Data & Experience Harmonization #3239

Open Exergist opened 1 year ago

Exergist commented 1 year ago

Use Case

As PC gaming continues to proliferate I expect more users are going to have situations where they access their gaming libraries on different machines. One example would be having two PCs in one house - one in a desk environment and another in a TV/couch environment. There are even more instances to consider if you add multiple gamers within a household that (often) share library content (example - kid's PC in their room). Maintaining a consistent library experience (metadata, Playnite configuration, plugins, etc.) across these different machines then becomes desirable.

The Request

It would be awesome if a single user could curate his Playnite interface and library content from a single PC and have that "experience and information" (again, including Playnite UI config) be pushed to (or sync-able from) other PCs that contain the same library data (games). This would allow, for example, a game's information to be consistent across all "synced" PCs. Giving the option to have individual synced PCs "deviate" (i.e., un-sync) from the main PC configuration would also be great.

To be clear, I recognize the difficulties associated with (likely) different drive and folder structures between PCs. Also I'm not necessarily suggesting that multiple PCs point to a central data library of games and UI settings (like on a NAS or other shared drive) such that none of the game/settings data is locally stored on the PCs.

This kind of functionality may also pave the way for different Playnite profiles with read/write access to metadata as well as game restrictions.

TLDR Add functionality to "export" and subsequently "import" folder-structure-agnostic Playnite UI & settings as well as game metadata regardless of source/target PC (or some kind of multi-PC data & experience sync).

This would effectively eliminate multi-PC library (metadata) and UI curation and better harmonize the ecosystem-level Playnite experience.

shakeyourbunny commented 1 year ago

The simplest solution is to have Playnite being hosted on a shared folder on one of your computers. The only caveat is that you should not run multiple instances concurrently.

All other models for syncing multiple standalone instances of Playnite is doing a backup of the library and restore it onto another instance. Backups can be automatically be scheduled by Playnite itself.

I think keeping the installed versions in sync is a challenge by itself. This also could be done by a custom plugin or using some synchronization software. An example for this scenario would be Syncthing ( https://syncthing.net ), but YMMV. Be sure to have a working backup copy of your Playnite installation BEFORE doing experiments with that.

shakeyourbunny commented 1 year ago

The only advice for keeping multiple instances in sync is NOT using any sort of cloud for that, because in the background, Playnite does change A LOT of things and this will either clog the upload of your internet connection or you internet data plan for breakfast.

ghost commented 1 year ago

In your specific case, I suggest you to not bother with different Playnite instances and setup Nvidia Gamestream with Moonlight clients (direct, no-relay extremely low latency and incredible quality streaming). If you connect both devices over Ethernet, you won’t even notice any latency at all since all traffic only goes through your LAN. Set up a nice Playnite fullscreen theme and you’re good to go. You can also use Sunshine (open source Nvidia Gamestream server with no telemetry. Not sure how well it works compared to the original but definitely worth a try since it doesn’t have all the bloatware that nvidia has.

As for Playnite syncing and stuff, the best option to do this right now I think is to install all games inside portable Playnite instance in “Games” folder or something and put relative paths in games ({PlayniteDir}\Games\game). This way you won’t have any troubles with different locations. You can then sync the whole Playnite directory (excluding games if you don’t want to have them all on your second PC).

As for multiple gamers in household, I REALLY suggest Playnite to add an ability to create multiple users who share the same library of games, metadata, extensions etc, BUT have unique settings and metadata unsynced (game rating, favorite games, playtime etc etc). Would be really nice to have an option to toggle what syncs and what doesn’t, AND to select what settings are gonna be copied from the main user on new user creation (for example, some extensions provide additional unique metadata tracking, this shouldn’t be copied or synced. But other extensions provide new features with lots of configuration options, this is likely gonna be copied over to the new user, but not synced so that they can change the settings to their liking). There should be also a button in main user’s extension settings to force sync them to other users.

minifluff commented 1 year ago

I would also love to see playnite able to sync with each other. I use playnite as my main interface on 6 computers. Games are added easily enough but having to go to all six just to add the new games to the same filter is a pain.

pgalbraith commented 12 months ago

I have been dreaming of something like this for a long time, as I often play from different computers and invest a lot of time in a curated game selection of older games that run on emulators, as well as playing newer games that can be imported on the fly by existing integrations (e.g. steam, gog, etc.).

What I think I really want is for playnite to support multiple libraries, where one set of games is just the dynamic set of games that is obtained locally on one machine and reflects what steam/gog/ea etc. games you have on that machine, and another set of games is based off of a shared cloud library where you have emulators and game binaries/data stored. The goal is to just load one playnite instance on a machine, (computer A) where you see all the lcoal-installed games, as well as all your 'shared' games, and then be able to move to another machine (computer B) and have the same experience where you still see all your shared/curated games plus games installed locally on computer B, but you wouldn't see computer A's installed games on computer B and vice versa. I hope that makes sense.

Currrently the only way I know to achieve something like this is to essentially run two completely different instances of playnite, one which runs out of a cloud library and another which is local.

Having a 'combined' local + shared view would also make it feasible for people to put together zipped packages of curated emulated games which are able to run out of a relative shared location.

livejamie commented 3 months ago

I agree. I would love to see a feature like this, either supported through a selected cloud provider, or I would be happy to pay Playnite for this functionality. This seems similar to the business model Obsidian uses.

Also, this is similar to one of the oldest requests, #108.