Killing Floor 2 no Steam Play

Histórico

Killing floor 2 foi um jogo anunciado para SteamOS/Linux através de um port ainda em maio de 2014, conforme você pode conferir aqui
https://www.gamingonlinux.com/articles/killing-floor-2-fps-announced-with-steamos-linux-support-right-in.3657/
Porém passado um bom tempo (bastante), foi anunciado em fevereiro de 2017 que o jogo estava sendo portado por um estúdio chamado Knockout Games, o que trouxe novamente a esperança de vir mais um bom jogo para a plataforma do pinguim
https://www.gamingonlinux.com/articles/looks-like-killing-floor-2-may-be-coming-to-linux-from-knockout-games.9059
Em agosto do mesmo ano, foi revelado que o jogo poderia realmente não seria portado em tempo algum
https://www.gamingonlinux.com/articles/sounds-like-killing-floor-2-wont-come-to-linux-any-time-soon.10234
Informação confirmada em janeiro de 2018, quando foi anunciado que o port estava literalmente parado
https://www.gamingonlinux.com/articles/killing-floor-2-for-linux-is-indefinitely-on-hold-as-they-cant-find-a-developer.11024

Eis então que surge o Proton/Steam Play e após algumas versões, é finalmente possível executar este ótimo game de ação. Como fazer isto será o foco deste post.

Kernel utilizado: kernel-5.5.8-fsync
Driver Nvidia: 440.64
Modelos de GPUs testadas: GTX 960, GTX 970, GTX 1080
Fedora 31 64 Bits
Proton: 5.0.4
Página no ProtonDB: https://www.protondb.com/app/232090

a) Instalando o game:
Este é um procedimento padrão para quaisquer jogos que sejam instalados via Proton/Steam Play. Clique com o botão direito no game > Propriedades. Na opção Forçar o uso de uma versão específica do Steam Play selecione a versão 5.0.4 (a mais recente no momento em que escrevi este texto), clique em fechar e clique duas vezes no game para iniciar a instalação.

Setando a versão do Proton adequada

b) realizando os tweaks:

Novamente nas propriedades game, na opção Configurar opções do lançador desative o Esync, como na figura abaixo:

Desativando o Esync

Deste ponto, o game já está pronto para funcionar.

Problemas conhecidos e respectivas soluções

Problema 1: Toda vez que o jogo é executado, o .NET Framework é instalado
Solução: Edição de registro

a) Instalando as dependências:

$ sudo dnf install mingw64-wine-gecko wine-core wine-mono

b) Editando o registro

No terminal, entre com o seguinte comando para realizarmos a edição no prefix correspondente ao game:

$ WINEPREFIX=~/.steam/steam/steamapps/compatdata/232090/pfx/ wine regedit

Isso fará com o que o editor de registro seja aberto. Quando isso ocorrer, navegue no seguinte caminho

HKEY_LOCAL_MACHINE/Software/Wow6432Node/Valve/Steam/Apps/CommonRedist/.NET/
Crie uma chave chamada 3.5 e dentro um novo DWORD com o nome 3.5 SP1 e valor 1
Veja na imagem abaixo:

Editor de registro

Desta forma, o jogo não irá mais solicitar a instalação do .NET

Problema 2: O jogo dá crash quando alguém do esquadrão utiliza o chat de voz
Solução: Desativar o VoIP do game
Obs: Talvez esta solução não seja mais necessária a partir do Proton 5.0.3, portanto, verifique se isso continua ocorrendo antes de executar este how-to.

Embora seja algo aparentemente trivial, o jogo simplesmente não oferece a opção de realizar este procedimento nas configurações do jogo, exigindo então edição manual de arquivos.

Os arquivos de configuração do game estão localizados em:

~/.steam/steam/steamapps/compatdata/232090/pfx/drive_c/users/steamuser/My Documents/My Games/KillingFloor2/KFGame/Config

Edite o arquivo KFEngine.ini, na seção VoIP, desative a opção bHasVoiceEnabled, como mostrado abaixo:[VoIP]
bHasVoiceEnabled=false


Agora, no arquivo KFGame.ini, na seção KFGame.KFGameInfo, desative a opção bEnableDeadToVOIP, ative a opção bDisableVOIP e ative a opção bDisablePublicVOIPChannel, como mostrado abaixo:
[KFGame.KFGameInfo]
bEnableDeadToVOIP=False
bDisableVOIP=True
bDisablePublicVOIPChannel=True


E finalmente e não menos importante, dê permissão de somente-leitura aos arquivos, para evitar que o jogo sobrescreva as configurações ao ser aberto. Quando alguém falar durante a partida, você verá a notificação no canto superior esquerdo, mas o jogo não irá mais crashar.

Deixe nos comentários se este post ajudou você, se encontrou algum erro de grafia ou se tem algo a acrescentar ao conteúdo.

Referências:
https://www.protondb.com/app/232090
https://github.com/ValveSoftware/Proton/issues/1328