C++ : comment Electronic Arts standardise les builds avec Visual Studio Build Tools
lun, 30/06/2025 - 07:43
Harmoniser les builds et compilations multiplateforme n'est pas toujours facile surtout avec des équipes de centaines de développeurs travaillant sur Windows et Linux. Electronic Arts, géant du jeu, utilise depuis de nombreuses années Visual Studio pour gérer les projets et faire du multiplateforme. Pour fluidifier le système de builds, l'éditeur mise sur Visual Studio Build Tool. Le but est de déployer la même version de toolchain partout et être certain que tout le monde utilise la même version de Visual Studio et des extensions.
Visual Studio Build Tools SKU est activé pour tous les développeurs C++ et garantit que le même outil de build est disponible dans l'éditeur, la CLI et les systèmes de CI. Comme Linux est une des plateformes de build, les équipes s'assurent que sur les systèmes Linux aient la bonne toolchain. Et que l'ensemble soit synchronisé. Cette chaîne est disponible pour le moteur Frosbite. Frosbite est un moteur développé par Electronic Arts. Il consiste en un code C# avec une large pipeline de données en C++ et un runtime en C++. Une version spécifique de Visual Studio a été configurée pour supporter Frostbite et qui est déployée aux développeurs, même si Electronic Arts autorise une certaine souplesse dans la version de Visual Studio. Pour éviter des conflits entre les versions et les versions de MSVC, un package spécifique MSVC a été créé contenant la bonne toolchain et les bons chemins de build.
Même si la plupart des développeurs travaillent sous Windows pour générer les projets Frostbite, la disponibilité des outils C++ pour Linux a facilité le support de Linux dans les projets Electronic Arts. Les outils Linux sont directement dans le package MSVC. Ainsi, les développeurs peuvent générer les projets depuis un Linux avec le même niveau de toolchain.
Post d'origine : https://developer.microsoft.com/en-us/games/articles/2025/06/case-study-electronic-arts-visual-studio-build-tools/
Post spécifique sur le support de Linux dans Visual Studio : https://devblogs.microsoft.com/cppblog/ea-and-visual-studios-linux-support/