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.34k stars 502 forks source link

Game compatibility/configuration database #1237

Open JosefNemec opened 5 years ago

JosefNemec commented 5 years ago

What is this about

The idea is to create database of game configurations and fixes to help people run games that don't run natively anymore or are emulated. Similarly to what Lutris does with their database of installation/compatibility scripts.

Use case

Specific issue examples examples

Old Windows game doesn't run properly

To make the game run again you may need to:

Old Windows game doesn't even install

Some games don't even install properly on new systems (old Need for Speed titles come to mind), but can be installed from original media using alternative methods.

Emulated game

Some games require specific emulator settings or hacks to be applied for game to run properly.

Implementation proposition

Fixes

Playnite could apply fixes for mentioned issues automatically using multiple methods, preferably these two:

"Game fix" format would be used for cases where writing a script would be unnecessary work. For example if you need to just write/change value in file/registry you would define that easily in game fix file by just naming the path and value to change (probably something based on YAML with predefined actions).

Database

Management of actual games list would be handled via 3rd party (most probably IGDB). This means that all data not directly related to game fixes would not be stored by us, and would be taken from that 3rd party. The similar way Twitch does it by creating game directories based on data from GiantBomb database. This means that we would have large database of games instantly.

Creating our own database is simply not worth the effort since there are already established solutions with large user bases updating them.

In the end we would create website that would display combination of data from 3rd party database (general game details) and our data (game fixes).

Possible roadblocks

Technically speaking this should be pretty straightforward to implement and I currently don't see any technical issues blocking this idea.

The biggest problem would be community engagement. This would most definitely stand and fall completely on how many people are actually contributing and maintaining fixes in our database. We could probably import some fixes from other sources (like PCGamingWiki or emulator databases if their content license allows it), but in long term this will be sustainable only if there's big enough interest from community.

Someone65 commented 5 years ago

For a ton of old Windows games, I ended up not using a lot of community patches and tweaks because DXWnd exists which is a program whose sole purpose is to allow running very old Windows games, especially those that only work in XP or under and those that use old DX versions. Would it be possible to add integration with it? Configs per game can be exported from DXWnd so users can pass the file to other DXWnd users which makes sharing configs easy.

Would integrating third party software like this (and maybe others like GameRanger for multiplayer, etc) be in the scope of this project?

JosefNemec commented 5 years ago

The idea is to provide general enough solution that would add ability to integrate "fixes" using any application, including DXWnd. I don't want to directly support applications since that would be very hard to maintain in long term.

doublah commented 5 years ago

I think scripts similar to lutris' format would be best and the ability to edit and fork scripts through the website or program works well. (Sidenote: if Playnite does end up on Linux someday implementing scripts from lutris itself would handle all the game libraries.)

ghost commented 5 years ago

So a more interactive version of the PC Gaming wiki?

DennoCoil commented 5 years ago

So a more interactive version of the PC Gaming wiki?

Not necessarily. Take a look at these. https://pcgamingwiki.com/wiki/Grand_Theft_Auto:_San_Andreas https://pcgamingwiki.com/wiki/S.T.A.L.K.E.R.:_Shadow_of_Chernobyl https://pcgamingwiki.com/wiki/Fallout:_New_Vegas

The amount of fixes you need, files to host on a website, knowing which version\fix you need, and how it would interact with Playnite would be a huge undertaking. It's not cheap to host either, especially with Playnite's growing user base. There's also potential issues with copyright law that some of these publishers would smack you down for.

If only PCGamingWiki actually hosted some of these files\scripts, instead of just some manual instructions and pointing to 3rd party site, it wouldn't be a problem.

The most exciting thing about this idea though, is making an easy "all-in-one" 3rd party patch of what is essentially an EPUB (it's a zip file with a custom header). Except it's got a custom extension like GFX(R?) "gamefixer" or SPT(C?) "software patcher". Just download the patch from the website or from an API, it opens up in Playnite or any other compatible program to read what it does, what options it can do, or allow you to change some parameters before hitting GO! Then it does all the work for you.