Phalcode / gamevault-backend

Backend for the self-hosted gaming platform for drm-free games
https://gamevau.lt
Other
221 stars 19 forks source link

Game Manifest/Metadata/Config file for detailed instructions and configurations in an optional folder system, that supports grouping coherent files #148

Open ChaosTherum opened 1 year ago

ChaosTherum commented 1 year ago

Is your feature request related to a problem? Please describe. I want a way to install games directly through the client in a fashion similar to steam.

Describe the solution you'd like I propose a packaging format similar to things I have seen in package repos.

The top level idea would be to have some sort of scriptable package description maybe a file named something like GameVaultPackage.json or something like that. That could be inside the archive. This package would have fields to describe how to handle installation of the game. If it doesn't exist just handle them the same as they are currently. With the amount of effort that already goes into organizing for this application a couple minutes spent either repackaging into an installerless package, or writing a simple batch command to install wouldn't be too much of a stretch. Here is a solid example of something along these lines from a tool called Portmod which is a modding tool for Morrowind based on Portage. Of course you wouldn't need the download urls and whatnot, but this could give you a basic idea. It could pass some basic arguments through commands and whatnot. https://portmod.readthedocs.io/en/stable/dev/repo/package-files.html

Describe alternatives you've considered There really isn't al alternative for this other than just going with the current install method.

Additional context Add any other context or screenshots about the feature request here.

Alfagun74 commented 1 year ago

We Considered something like that and while it isnt your exact proposed solution, we still found a much more comfortable way we decided to implement for now: Have you had a look at https://github.com/Phalcode/gamevault-app/issues/18 ?

ChaosTherum commented 1 year ago

I found that right after posting this feature request, though I do think there is space for something along these lines just to add some flexibility. For example if you wanted to have mods as were requested in another ticket you could list the main game as a dependency and then it could install the dependency then follow the installer script after that.

I do like the current proposal as a simple way of handling games that don't have any sort of descriptor but I think there could also be a place for some sort of metadata, for instance it could list the run executable, or if the game has a soundtrack where that could be accessed in the folder structure, save location, etc. There are a lot of potential uses for a packaging format.

I understand if it feels outside the scope but in my mind it feels like it could be a nice future stretch goal.

Alfagun74 commented 1 year ago

we will keep this idea in mind, but i cant promise anything.

ChaosTherum commented 1 year ago

Another thing that I thought of that this feature could be really helpful for, is storing a back up of metadata from the database in this or another file. So if for some reason your db was lost you wouldn't have to rescrape everything.

This would also help a lot with GOG installers that have DLC. You could have a DLC folder then list all executables in the package that need to be ran in order to get a game fully installed, or just a simple install script field.

Alfagun74 commented 1 year ago

Waiting for #149