Linux : présentation
Steam pour Linux est désormais disponible pour toutes les personnes qui utilisent Steam. C'est le moment de porter votre jeu sur Linux : le catalogue des jeux compatibles ne cesse de s'élargir et la communauté Steam pour Linux est particulièrement active.
Développer un jeu Linux pour Steam peut s'avérer complexe pour les équipes de développement habituées à un environnement Windows et macOS. Les informations suivantes vous aideront à porter votre jeu sur Linux pour Steam.
Démarrage
Pour porter votre jeu sur Linux, voici ce dont vous aurez besoin.
- Une machine de développement disposant d'une version de Linux entièrement à jour. Il peut s'agir d'une machine avec un double démarrage, d'une machine Linux dédiée, ou même d'une machine virtuelle tournant sous Linux. De plus, le développement est possible sur les distributions Linux 32 et 64 bits. La distribution Linux recommandée est la dernière version d'Ubuntu LTS ; il s'agit de celle qui est la plus testée par Valve et la communauté Linux. Cliquez ici pour télécharger Ubuntu.
- Le client Steam pour Linux.
- Le kit de développement de base pour Linux (par exemple, g++, gcc et un logiciel make) contenu dans le package de build essentiel. Installez ce package soit en utilisant la logithèque Ubuntu ou depuis une fenêtre de terminal ouverte à l'aide de la commande apt-get suivante : sudo apt-get install build-essential.
- La dernière version de l'environnement d'exécution Steam pour Linux (Steam Linux Runtime), qui comprend les outils et un ensemble complet de bibliothèques nécessaires à la publication de vos jeux Linux sur Steam. Vous trouverez des instructions sur l'utilisation du module d'exécution dans le fichier README.md du référentiel.
Si vous avez des questions générales à propos de Steamworks pour Linux, ou si vous souhaitez signaler des problèmes liés à l'environnement d'exécution, rejoignez le groupe de développement Steamworks et posez vos questions sur les forums de discussion Linux.
Outils Linux
Il existe un grand nombre d'outils de développement pour Linux, comme des interfaces en ligne de commande ou des IDE avec une interface graphique. Les informations suivantes sont basées sur l'expérience de l'équipe Linux de Valve.
Pour les équipes de développement habituées à Windows, le moyen le plus simple de développer pour Linux est d'utiliser Visual Studio sur Windows avec
WinGDB, une extension pour Visual C++ qui permet le débogage à distance de processus Linux à l'aide de l'interface de débogage de Visual Studio.
Pour développer sous Linux, l'équipe Linux de Valve a utilisé les outils suivants.
- QtCreator : débogueur et IDE avec des raccourcis clavier similaires à ceux de Visual Studio.
- SlickEdit : éditeur de texte avec une interface graphique basique et configurable, et qui offre la possibilité de définir des raccourcis.
- gdb : débogueur en ligne de commande populaire.
- cgdb : encapsuleur de gdb qui fournit une vue en écran partagé de l'emplacement actuel dans le code source pendant l'exécution.
- Eclipse : autre IDE qui peut être configuré pour le développement sous Linux. Disponible sur Windows,
macOS et Linux.
- vim : éditeur de texte en ligne de commande basique.
En outre, l'équipe Linux de Valve a aussi utilisé les outils de débogage et de suivi suivants.
- QtCreator : voir plus haut.
- Symbol Servers.
- PerfStudio : débogueur complet pour la composition des images,
capable de tracer les appels d'API pour les jeux qui tournent sur des cartes graphiques AMD. Disponible sur Windows.
- Telemetry : profileur complet pour les jeux qui tournent sur des cartes graphiques. Disponible sur
Linux, Windows et macOS.
- gDEBugger : débogueur qui permet de déboguer, profiler et analyser du code OpenGL. Il a été abandonné au profit de CodeXL.
- perf : outil en ligne de commande avec diverses fonctionnalités relatives aux performances. Disponible sur Linux.
- NVIDIA Nsight : extension pour Visual Studio destinée au débogage des jeux qui tournent
sur des cartes graphiques NVIDIA.
- lTTng : outil de traçage Linux.
- apitrace : ensemble d'outils destiné au traçage et à la répétition d'appels OpenGL et OpenGL ES depuis votre jeu.
- Zoom : profileur de CPU disposant d'une interface puissante et simple d'utilisation.
API pour Linux
Vulkan est la bibliothèque de choix pour de bonnes performances de rendu graphique. Il s'agit de l'équivalent open source de DirectX12 et de Metal.
OpenGL était l'ancien standard pour le rendu graphique. La plupart des jeux appellent directement OpenGL, mais il existe d'autres jeux qui utilisent une méthode de traduction où le code de rendu d'origine est traduit en appels OpenGL. C'est l'approche utilisée par les anciens jeux Valve utilisant Source, tels que Team Fortress 2 ou Counter-Strike: Source. Si vous choisissez OpenGL, nous vous recommandons d'utiliser les fonctionnalités principales d'OpenGL 3.0 dans votre jeu.
La version 2.0 de Simple DirectMedia Layer (SDL) permet, parmi bien d'autres choses, un accès de bas niveau à l'audio et au fenêtrage. L'utilisation d'OpenGL assure la prise en charge du rendu en 3D. Vous trouverez les instructions d'installation
ici. Pour plus d'informations et de documentation, consultez le
wiki de SDL. Chez Valve, c'est ce que nous utilisons dans Steam et dans la plupart de nos jeux pour gérer le fenêtrage. C'est également ce qui fournit l'infrastructure qui implémente l'API
Steam Input.
Les bibliothèques suivantes assurent une prise en charge d'autres aspects du développement de jeux.
- FreeType : rendu de polices (vectorielles et bitmap) sur Linux.
- Fontconfig : configuration et personnalisation de l'accès aux polices d'écriture.
- Miles Sound System : moteur audio en middleware pour le développement sous Linux.
- Bink Video : codec vidéo conçu pour les équipes de développement de jeux.
- WebM : format ouvert de fichier média, utilisé pour l'enregistrement des vidéos de Team Fortress 2 à la place de QuickTime.
Référentiels GitHub
Les référentiels suivants sont publics et sont utilisés pour les projets liés à Steam pour Linux.