lutris / agora

Public discussion space for the community
11 stars 0 forks source link

Runner Personalisation Feature #44

Open yangzu888 opened 4 years ago

yangzu888 commented 4 years ago

I made a post about this on the forums and I was told to post this idea here.

I think more customization when it comes to organizing your games. I find many of the runners are good for non-technical people, however I know how to use Linux and how to run things with scripts. And to run anything including wine games steam games, or an emulator it can be done with a bash script. I would like to setup Lutris in a way that will allow me to organize my games without using the predefined runners but to be able to choose each games platform, emulator. For example…

CSGO Platform: Linux Runner: Steam

SuperTuxKart Platform: Linux Runner: Linux

Tomb Raider: Underworld Platform: Windows Runner: Wine

Mario Kart: Double Dash Platform: Nintendo Gamecube Runner: Dolphin

Mario Kart 64 Platform: Nintendo 64 Runner: Libretro

Instead of using all of the runners that come with Lutris which will organise the games as such, I would to make my own runners easily which will be a Linux runner except I can set the custom runner platform name, platform icon, runner name and runner icon. More options on building your own Lutris library without using predefined runners were the name and the icon of the platform and runner are unchangeable.

https://forums.lutris.net/t/create-custom-runner/7395

LeXofLeviafan commented 4 years ago

Alternate suggestion: allow the user to override game platform value set by installer.

I imagine it would work like so: a drop-down list of platforms in the game config (perhaps with a button/toggle to switch between default & custom, like the identifier field), and a section in Lutris preferences to add/customize these platforms (with ability to change displayed platform labels and icons, IDs being fixed/generated on creation). It’d also be nice to actually see what’s selected right now (currently it’s only visible if you filter by a runner, and only because of action icons).

trymeouteh commented 4 years ago

I like both suggestions but If we allow overriding the game platform and emulator platform I would like to have this settings available in any games setting itself, not the runner settings only.

LeXofLeviafan commented 4 years ago

@trymeouteh My suggestion is to set it per game. Per runner version already exists (it's what Lutris doing now). Though come to think of it, this could also be added as an option in installers (so an install script for a Proton game could set the game platform ID as windows, for example).

tannisroot commented 4 years ago

IMO I think we should instead just implement new runners. Otherwise people will use custom runner option for everything. @strycore i want to close this but I am not 100% sure you feel the same way about this

telanus commented 4 years ago

IMO I think we should instead just implement new runners

they'll just get removed again: https://github.com/lutris/lutris/commit/bffa37968a3c8a5c17809d2ce18b0f95a2914270

tannisroot commented 4 years ago

Well they wont be as long as build scripts get implemented as well.

telanus commented 4 years ago

Still think @LeXofLeviafan Idea is the best. Also like Those removed. Redream is closed source. And the other's buils scripts (tic-80 and melonDS) I tried but gave up as I could never get it to work

telanus commented 4 years ago

Also there is a tic-80 build script: https://github.com/lutris/buildbot/tree/master/runners/tic80

LeXofLeviafan commented 4 years ago

IMO I think we should instead just implement new runners.

While expanding the list of supported runners is all well and good, it wouldn't remove the core issue brought up here: lack of grouping customization. For instance, I prefer to run flash games using standalone flashplayer binary (as opposed to browser plugin), and to play interactive fiction in Gargoyle, but unless you have runners for them, these games will only be found in the Linux category/platform. And since I'm sure this list is potentially endless, there will always be a point at which you'll stop adding new runners (or rather, you'll have to be selective in what you're going to add, at least to some extent). Thus, some kind of personalisation feature to that end would be nice to have.

trymeouteh commented 4 years ago

I would like to be able to create custom runners or be able to edit a game so the platform and emulator is different than the runner.

A good arguement for custom runners is to allow people to create runners for closed source emulators such as ePSXe. I requested ePSXe as a runner recently and it was rejected since it is closed source. This will allow me and others to manually add ePSXe into Lutris.

telanus commented 4 years ago

@trymeouteh Think the idea that @LeXofLeviafan gave is the best answer, and might be the easiest to implement.

The other way would be have "supported" runners that would come with Lutris, and selection hidden under "advanced" settings, that gives users the ability to add "unsupported" runners, where the user needs to supply the runner's executable. But doubt @tannisroot or @strycore will support such an endeavor, especially since it means more code that needs to be maintained.

The code is always there, so you can copy a core and create one that you can add to your local lutris install, but there is no support if you go that route.

LeXofLeviafan commented 4 years ago

@telanus Would it be feasible to implement using a .desktop file for game startup instead of a binary (simply taking binary name/args from it when running)? This could be a decently user-friendly alternative to custom runners that is mostly external to Lutris, at least in conjunction with the platform selection option (though I they may want a dialog listing share/applications to go with it).

yangzu888 commented 4 years ago

If it is possible to create a game using the Linux runner and being able to change the games platform and being able to set the emulator to anything even when it is using a linux runner, that is all I ask for. That is all I can ask for

trymeouteh commented 4 years ago

Any word on this?

LeXofLeviafan commented 4 years ago

Well, there's lutris/lutris#345 (custom categories) which is marked as done, but it's in its own code branch and it's set for v0.6 milestone (which is overdue for a month by now but somehow has at least four more milestones that logically would have to be reached before it).

As for this particular feature, it's set for Limbo milestone, which to my understanding means "someday, maybe".

strycore commented 4 years ago

I would like to deprecate some runners that are very basic in functionality and migrate them to a declarative format, likely json. Runners like ags, frotz, osmose have no real logic inside, just a mapping of lutris options to emulator arguments. Proof of concepts are welcome, that would make the feature ship faster.