18 votes

Comment empêcher Steam de télécharger un milliard de copies de DirectX?

En tant que suite à ma question concernant l'installation pour la première fois, j'ai remarqué que Steam stocke les fichiers DirectX, vcredist etc individuellement dans le répertoire de chaque jeu. Cela signifie que ces fichiers, parfois jusqu'à 100 Mo, sont téléchargés et stockés à plusieurs reprises, gaspillant à la fois de l'espace et du temps de téléchargement.

Est-ce que Steam peut être empêché de re-télécharger et dupliquer les exigences du jeu comme DirectX à plusieurs reprises?

19voto

Dave McClelland Points 15405

Le problème a été discuté sur les forums de Steam. Le problème est que chaque jeu doit avoir une version binaire identique des redistribuables vc++. Comme les jeux se lient à différentes versions de ces bibliothèques, Steam les installe toujours la première fois en tant que protection.

Crédit à mordi2k pour avoir trouvé le post
Voici un lien vers l'article de support de Steam à ce sujet (le post du forum n'est plus disponible). Le texte est cité ci-dessous.

Pourquoi DirectX s'installe-t-il avec chaque jeu?

Lancer l'installateur DirectX ne vise pas à s'assurer que votre installation globale de DirectX est à jour. Microsoft a une bibliothèque d'aide avec D3D appelée D3DX. Vous trouverez des binaires pour cela, comme d3dx9_43.dll, dans votre dossier Windows\system32. Il existe plus de 40 versions différentes de la bibliothèque D3DX pour D3D9 seul, et beaucoup plus pour D3D10 et 11 également. Chaque jeu qui utilise la bibliothèque d'aide D3DX est lié à une version spécifique. Ainsi, le jeu doit exécuter la version correcte de l'installateur D3D avec laquelle il a été spécifiquement compilé pour garantir que les binaires existent.

Même si une version ultérieure du binaire est déjà installée, cette version ne peut pas être utilisée, et même si votre installation DirectX est à jour parce que vous avez exécuté une version plus récente de l'installateur, cela ne garantit pas avoir installé toutes les versions précédentes. Qui plus est, si une version est installée pour x86, cela ne garantit pas que la même version est installée pour x64, donc les jeux 64 bits et 32 bits peuvent avoir à exécuter la même version exacte de l'installateur mais en ciblant des plates-formes différentes lors de l'exécution.

De plus, les termes de licence de Microsoft empêchent quiconque de distribuer directement les fichiers, la seule façon de les distribuer est d'exécuter l'installateur, c'est aussi la seule méthode supportée par Microsoft pour vérifier que la bonne version est installée. Essayer de vérifier manuellement les bonnes versions est extrêmement compliqué car il y a de nombreux fichiers qui doivent tous être présents et les options de configuration système individuelles comme les chemins de recherche de dll compliquent la situation. De plus, les dépendances et les vérifications requises peuvent changer dans chaque nouvelle version du runtime D3DX. Le code pour vérifier correctement et réparer les installations défectueuses existe dans l'installateur et l'exécuter garantit que les binaires corrects existeront lorsque vous exécutez le jeu et empêche de nombreux cas où un jeu échouerait à démarrer avec une erreur obscure si une installation de Windows manquait de la bonne version ou était d'une manière ou d'une autre corrompue dans le passé.

Pourquoi les jeux Source Engine de Valve ne lancent-ils pas l'installateur DirectX?

Les jeux qui n'utilisent pas les aides D3DX (comme les jeux Source engine) n'ont pas besoin d'exécuter l'installateur au premier lancement car ils dépendent uniquement des versions majeures de d3d9/10/11 installées. Cependant, les jeux qui utilisent D3DX doivent l'exécuter car c'est la seule façon autorisée par Microsoft de distribuer et de vérifier les informations de version des fichiers.

4 votes

0 votes

@mordi C'est exactement ce que je cherchais. Merci!

1 votes

J'ai réussi à m'en débarrasser partiellement en exécutant un outil de recherche de liens physiques en double. Cela n'a pas empêché Steam de télécharger d'abord, mais au moins cela ne gaspille pas d'espace inutilement...

2voto

Lemon Points 9167

Depuis août 2014, il existe désormais le package Steamworks Common Redistributables, qui remplace l'ancien système d'installation DirectX par jeu.

Le contenu de ce package sera téléchargé en fonction des jeux nécessitant VC++, DirectX, XNA, .NET, OpenAL ou PhisX, puis sauvegardé ultérieurement dans C:\Program Files (x86)\Steam\steamapps\common\Steamworks Shared\_CommonRedist pour qu'ils puissent être utilisés à l'avenir.

Jusqu'à présent, seuls les installateurs suivants sont disponibles dans le package commun, ce qui signifie que d'autres jeux nécessitant d'autres programmes ou versions devront toujours conserver les redistribuables par jeu :

  • VC 2005 Redist (5,61 Mo)
  • VC 2008 Redist (9,24 Mo)
  • VC 2010 Redist (18,37 Mo)
  • VC 2012 Redist (13,11 Mo)
  • VC 2013 Redist (13,06 Mo)
  • VC 2015 Redist (28,38 Mo)
  • VC 2017 Redist (28,29 Mo)
  • VC 2019 Redist (28,06 Mo)
  • DirectX Jun 2010 Redist (98,16 Mo)
  • .NET 3.5 Redist (231,50 Mo)
  • .NET 3.5 Client Profile Redist (255,55 Mo)
  • .NET 4.0 Redist (48,11 Mo)
  • .NET 4.0 Client Profile Redist (41,01 Mo)
  • .NET 4.5.2 Redist (66,76 Mo)
  • .NET 4.6 Redist (59,14 Mo)
  • .NET 4.7 Redist (80,06 Mo)
  • .NET 4.8 Redist (111,94 Mo)
  • XNA 3.0 Redist (7,61 Mo)
  • XNA 3.1 Redist (7,32 Mo)
  • XNA 4.0 Redist (6,73 Mo)
  • OpenAL 2.0.7.0 Redist (791,10 Ko)
  • PhysX System Software 8.09.04 (49,39 Mo)
  • PhysX System Software 9.12.1031 (25,49 Mo)
  • PhysX System Software 9.13.1220 (39,27 Mo)
  • PhysX System Software 9.14.0702 (57,26 Mo)

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X