

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Résoudre les problèmes de compatibilité sur Proton
Résoudre les problèmes sur Proton

 Au cours de cette étape, vous allez configurer Proton sur votre propre machine afin de résoudre les problèmes de compatibilité entre votre application Amazon GameLift Streams et Proton. L'exécution de votre application dans un environnement simulé sans le serveur Amazon GameLift Streams peut vous aider à identifier les problèmes spécifiques à votre application et à votre environnement d'exécution. 

## Prérequis

+  Ubuntu 22.04 LTS avec pilotes GPU installés. Pour obtenir des instructions, reportez-vous à [Configuration d'une machine locale](troubleshoot-compatibility-setup-local.md) ou[Configuration d'une machine distante](troubleshoot-compatibility-setup-remote.md). 

## Installez Proton


Pour installer Proton sur votre machine Ubuntu 22.04 LTS, utilisez le script suivant pour cloner, compiler et configurer la version de Proton que vous souhaitez tester à partir du [ GitHub référentiel Proton](https://github.com/ValveSoftware/Proton/).

1. Copiez et collez le code suivant dans un fichier appelé `proton-setup.sh` sur votre machine Ubuntu 22.04 LTS.

   ```
   #!/bin/bash
   # This is a script to build Proton. The default build is a tag from the 
   # experimental_9.0 branch of Proton, but can be changed as a parameter to this script.
   #
   # Usage: ./proton-setup.sh [optional proton_branch_name {default: experimental-9.0-20241121b}]
   set -e
   
   sudo apt install -y podman make git
   
   # clone proton from github, recurse submodules
   # if no proton git link is supplied, use a default tag from the experimental_8.0 branch
   PROTON_BRANCH=${1:-"experimental-9.0-20241121b"}
   PROTON_BUILD_DIR=protonBuild
   PROTON_DIR=$(pwd)/proton
   if git clone https://github.com/ValveSoftware/Proton.git --recurse-submodules --branch $PROTON_BRANCH proton;
   then
   	echo "Successfully cloned Proton and its submodules."
   else
   	echo "Warning: a proton directory/repository already exists. It is recommended to delete this folder and re-run this script unless it is a valid repository with initialized submodules."
   fi
   
   if [ -d $PROTON_BUILD_DIR ];
   then
   	echo "Error: protonBuild directory already exists. Delete this folder first to create a fresh build of Proton before re-running this script."
   	exit 1
   fi
   mkdir $PROTON_BUILD_DIR
   cd $PROTON_BUILD_DIR
   $PROTON_DIR/configure.sh --enable-ccache --container-engine=podman
   
   # build proton
   echo "Building Proton"
   make
   echo "Done building Proton!"
   
   # prepare proton for execution
   cd dist
   mkdir compatdata
   if [ -e ./dist ]; then
     PROTON_FILES=dist
   elif [ -e ./files ]; then
     PROTON_FILES=files
   fi
   cp version $PROTON_FILES/
   echo "Finished installing proton. Proton binary location: $(pwd)/proton"
   echo "STEAM_COMPAT_DATA_PATH: $(pwd)/compatdata"
   echo "STEAM_COMPAT_CLIENT_INSTALL_PATH: anything"
   ```

1. Au cours de cette étape, vous allez exécuter le script de configuration de Proton pour cloner et installer Proton et d'autres dépendances. Le script accepte comme argument le tag ou le nom de branche de la version de Proton que vous souhaitez installer. Pour simuler l'une des versions personnalisées de Proton fournies par Amazon GameLift Streams, suivez les instructions relatives à cette version, ci-dessous.
**Note**  
 Attendez-vous à ce que le clonage GitHub prenne un certain temps. Il existe de nombreux sous-modules à télécharger, pour un total de plusieurs gigaoctets.

    Dans votre terminal, exécutez le `proton-setup.sh` script et spécifiez la branche de version Proton : 
   +  **Versions Proton intégrées** 
     + [Pour Proton 9.0-2 (`PROTON-20250516`), utilisez experimental-9.0-20241121b.](https://github.com/ValveSoftware/Proton/tree/experimental-9.0-20241121b)

       ```
       proton-setup.sh experimental-9.0-20241121b
       ```
     + [Pour Proton 8.0-5 (`PROTON-20241007`), utilisez experimental-8.0-20240205.](https://github.com/ValveSoftware/Proton/tree/experimental-8.0-20240205)

       ```
       proton-setup.sh experimental-8.0-20240205
       ```

       En général, aucun code source supplémentaire n'est nécessaire. [Toutefois, si vous rencontrez des problèmes avec Electra Media Player (un plugin Unreal Engine), nous vous recommandons d'utiliser les correctifs trouvés dans https://github.com/ValveSoftware/ wine/pull/257.](https://github.com/ValveSoftware/wine/pull/257)
**Note**  
 Pour Proton 8.0-2c (`PROTON-20230704`), Amazon GameLift Streams utilise une version propriétaire, qui n'est pas disponible pour la génération locale. 
   +  **Version personnalisée recommandée de Proton** 

      Pour une version personnalisée de Proton, nous recommandons d'utiliser la branche Proton experimental\$18.0. 

     ```
     proton-setup.sh experimental_8.0
     ```
   +  **Autres versions personnalisées de Proton** 

      Pour les autres versions de Proton, utilisez un nom de branche ou de tag exact répertorié dans les [versions de Proton](https://github.com/ValveSoftware/Proton/releases). 

     ```
     proton-setup.sh branch-or-tag-name
     ```

    Si l'installation est réussie, le résultat de votre terminal doit être similaire à ce qui suit : 

   ```
   ...
   Done building Proton!
   Finished preparing proton. Proton binary location: /home/test/protonBuild/dist/proton
   STEAM_COMPAT_DATA_PATH: /home/test/protonBuild/dist/compatdata
   STEAM_COMPAT_CLIENT_INSTALL_PATH: anything
   ```

    Prenez note des variables suivantes dans la sortie, car vous en aurez besoin pour exécuter Proton à l'étape suivante : 
   + Emplacement binaire du proton
   + `STEAM_COMPAT_DATA_PATH`
   + `STEAM_COMPAT_CLIENT_INSTALL_PATH`

## Exécutez votre application sur Proton


 Les étapes suivantes supposent que le fichier exécutable de l'application se trouve dans`path/myapplication/bin/application.exe`. Remplacez-le par le chemin et le nom de fichier de votre application. 
+ Dans un terminal, accédez au dossier dans lequel se trouve le fichier exécutable de votre application.

  ```
  cd path/myapplication/bin/application.exe
  ```
+ Exécutez votre application sur Proton. Utilisez l'emplacement binaire Proton et les variables d'environnement que vous avez obtenues à l'étape précédente.

  ```
  STEAM_COMPAT_DATA_PATH=/home/test/protonBuild/dist/compatdata STEAM_COMPAT_CLIENT_INSTALL_PATH=anything /home/test/protonBuild/dist/proton run application.exe
  ```

 L'application devrait maintenant tenter de démarrer. Si l'application démarre localement, mais pas sur Amazon GameLift Streams, cela peut être dû à un problème de configuration lors de l'appel à Amazon GameLift Streams APIs. Vérifiez que les paramètres d'appel d'API sont corrects. Sinon, passez à l'étape suivante pour le débogage. 

## Déboguer l'application via des fichiers journaux


 Si votre application rencontre des problèmes d'exécution dans l'environnement Proton local, consultez le journal de sortie. Le journal contient les résultats de votre application et de votre environnement d'exécution. Repérez les domaines dans lesquels votre application ne parvient pas à détecter les problèmes du côté de l'application. 

 Pour transférer la sortie du journal dans un fichier texte, par exemple`proton.log`, utilisez la commande suivante : 

```
STEAM_COMPAT_DATA_PATH=/home/test/protonBuild/dist/compatdata STEAM_COMPAT_CLIENT_INSTALL_PATH=anything /home/test/protonBuild/dist/proton run application.exe &>proton.log
```

 Proton indique également si le problème est dû à un plugin Wine, à une fonction non implémentée, à des DLL manquantes, etc. Pour plus d'informations, consultez le guide [Debugging Wine de Wine HQ](https://wiki.winehq.org/Wine_Developers_Guide/Debugging_Wine). Si vous trouvez une erreur Proton ou Wine dans les journaux que vous ne pouvez pas corriger du côté de l'application, contactez votre responsable de AWS compte ou posez une question dans [AWS Re:post](https://repost.aws/tags/TAOU7EpUOuTQSSWmIHCfb2fQ/amazon-gamelift-streams) pour obtenir de l'aide pour poursuivre le débogage. 