lutris / agora

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

[Feature Request] Splitscreen multiplayer tool #102

Open RasmusRendal opened 4 years ago

RasmusRendal commented 4 years ago

Nucleus Co-op is a Windows Application, which essentially lets the user play online co-op games locally as splitscreen multiplayer. It is, however, Windows exclusive, and no Linux version seems to exist. But that could be Lutris.

Essentially, what Nucleus does is it starts the application multiple times, and tries to circumvent all mutexes that try to stop the user from doing it. Besides that, each instance will get absolute control over one of the controllers, by being provided a patched version of the controller library. Subsequently, the user can use the LAN features to connect the separate game instances. While of course more resource-intensive than having a real implementation in the game, it does seem to work.

Similar functionality could be super cool to have in Lutris. I do not know if this is outside of the scope of the project, but I have been unable to find any past discussion on it.

dairefagan commented 4 years ago

+1

Hiradur commented 3 years ago

Here is a list of games supported by Lutris: https://www.reddit.com/r/nucleuscoop/comments/fjdqid/list_of_new_supported_games_and_faq/

With so many supported games and strong community support, choosing Nucleus Coop over an original implementation for Lutris might be a good idea. One could also develop a compatible solution instead.

strycore commented 3 years ago

It may be possible to achieve such a thing with containers. Valve is also working in that direction and we do have the Asgard project that can run old Loki games in Docker. I'm going to move this to Agora for now because I don't think this is something that would be implemented in the client. Actually, if someone wants to play around with Asgard and see if it's possible to have a proof of concept on an old Linux game, that would be a huge step in the right direction.

Hiradur commented 3 years ago

Another way might be to use firejail. Excerpt from its man-page:

   --private-home=file,directory
        Build a new user home in a temporary filesystem,  and  copy  the
        files and directories in the list in the new home. All modifica‐
        tions are discarded when the sandbox is closed.

         Example:
         $ firejail --private-home=.mozilla firefox

I think that a lot of configuration specific to each game would be required for things such as proper window size, resolution and aspect ratio as well as controller support, if desired. How these things can be configured depends on the game, some require ini edits while others work with command line arguments and there are some where resizing the windows is enough so they adjust resolution and aspect ratio automatically.

This is why I suggested to make a solution that is compatible with NucleusCoop scripts, to benefit from all the work the community has already done.

strycore commented 3 years ago

I have plans for a project that would allow such things like local splitscreen multiplayer. It's still a draft and there is no proof of concept at the moment but I am thinking about possible solutions.