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

Created on 5 Oct 2018  路  9Comments  路  Source: ValveSoftware/Proton

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.

Feature Request

Most helpful comment

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.

All 9 comments

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.

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

@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).

@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.

@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).

@Ferk That's a better explanation. Thx.

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.

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?

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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AwesamLinux picture AwesamLinux  路  3Comments

AwesamLinux picture AwesamLinux  路  3Comments

AwesamLinux picture AwesamLinux  路  3Comments

lucifertdark picture lucifertdark  路  3Comments

ghost picture ghost  路  3Comments