protonscr

Provide a "Proton Compatibility Kit" for Game Devs to use to make their game work with Proton

protonclosed Feature Request
ValveSoftware/Proton#1694 · opened 2018-10-05 by ShannonVanWagner · updated 2022-10-25 · 10 comments · github
SShannonVanWagner 2018-10-05 github

Feature Request

Please rovide a "Proton Compatibility Kit" to help Game Devs easily make their game work with Proton

I confirm:

  • [x] that I haven't found another request for this feature.
  • [X] that I have checked whether there are updates for my system available that
    contain this feature already.

Description

Provide a set of tools and a guide for game developers to retrofit their windows-based game and make it work with Proton. This would be for those that may not know how or where to start with making their windows-based game work on Linux with Proton. Maybe this could be a software tool the Dev could run to easily check if their game will work with Proton. The tool could suggest any changes that would be needed to make their game work with Proton.

Justification

This tool would help to get more games to work with Proton.

Nnoraj 2018-10-08 github

Make your game using vulkan API, make your game natively supported by linux, instead of wanting your game compatible with a tool that will emulate windows environment into linux.

Llegluondunet 2018-10-08 github

@noraj ok for the graphic API, bit what about the others? (video, audio, controller...).

Ddreamer 2018-10-09 github

@legluondunet if not using an engine, that supports Linux (such as Godot, Unity or Unreal Engine 4) then use SDL for cross-platform gaming-related APIs (it's bundled in steam runtime).

Nnoraj 2018-10-09 github

@legluondunet Vulkan was an example. @dreamer completed my answer. Targeting an emulator instead of native support is a non-sense, providing an API for proton is an error Valve hasn't made.

FFerk 2018-10-10 github

@noraj Wine (and so, Proton) is a (not fully compliant) reimplementation of the Windows APIs, it's more of a compatibility layer not an emulator.

I agree that of course it's better for portability if the devs target from the start a compatibility layer that has a well-defined API like SDL (yes, SDL is also a compatibility layer). But only if they do it right.

The issue is that a lot of games are not designed with portability in mind and porting to Linux is more of an afterthought, which makes it more complex than it should. I've seen very shitty native ports using a ton of compatibility layers to call the native APIs and do a much worse job at doing so than when running the Windows version with Wine (which is also a compatibility layer that calls the native APIs.. except that it's open source and community maintained, rather than closed and frozen in time with not a lot of maintenance after launch, which is sometimes the situation with proprietary game ports to Linux).

I'd much prefer (by a long shot) a game that is patched up to be proton compatible than a bad port that tries to shoe-horn itself into Linux native libraries it was not designed for and that has poorer performance as a result.

I think it would be a good idea to document as best as possible what are the specific problems that Wine has in its implementation of the Windows API, to which extent are the APIs implemented, what works and what doesn't. And what does give the best performance (we do know using Vulkan is one of those things, and it was already advertised by Valve, the question is what other things are to be had in consideration to get the game to work reliably).

Nnoraj 2018-10-10 github

@Ferk That's a better explanation. Thx.

Rryao 2018-10-12 github

Here is the #1 thing. Do not use anticheat software that requires a kernel module. Better yet, do not use anticheat software and if you must use it, then use VAC.

?ghost 2018-10-12 github

The store filter has an option for VAC. I'm wondering if it be worth having an option to filter out 3rd party DRM games too or would that be overkill?

RRabcor 2018-10-23 github

Make your game using vulkan API, make your game natively supported by linux, instead of wanting your game compatible with a tool that will emulate windows environment into linux.

Baby steps my friend, baby steps. A lot of devs are using pre-existing directx dependent game engines, it's a bit too much to ask them to rewrite the entire rendering engine just to support Linux. That is often going to be too much work. Besides tehre's also the matter of existing games that do not work on proton yet.

Some games aren't going to get full linux ports, I think providing a middle ground for those games is important.

I also think it's important valve works with developers of anti-cheat and drms like denuvo and easyanticheat to support proton better.

Ggwhizoftv 2022-10-25 github

I was sent here 4 years later (I guess by a bot) Where is this discussion these days... on a different GIThub Issue, or? I sadly cannot use the Steam client, but would like to use Proton. Is it no longer possible to use Proton without steam client?

Nothing extracted yet.