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

À la suite de ma question concernant la première installation , j'ai remarqué que Steam stocke les fichiers DirectX et vcredist etc individuellement dans chaque répertoire de jeux. Cela signifie que ceux parfois jusqu'à 100 Mo sont téléchargés et stockés maintes et maintes fois perdant de l'espace et du temps de téléchargement.

Est-il impossible à Steam de recharger et de dupliquer les exigences du jeu comme DirectX à plusieurs reprises?

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

Crédit à mordi2k pour trouver l'article
Voici un lien vers le forum sur Steam. Le texte est cité ci-dessous.

FYI, ce n'est pas une question de s'assurer que votre installation DirectX globale soit à jour. Microsoft dispose d'une bibliothèque auxiliaire 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 librairie D3DX pour D3D9 seul, et beaucoup plus pour D3D10 et 11. Chaque jeu qui utilise la bibliothèque auxiliaire D3DX est lié à une version spécifique. En tant que tel, le jeu doit exécuter la version correcte du programme d'installation D3D qui a été spécifiquement compilée pour s'assurer que les binaires existent. Même si une version ultérieure de la binaire est déjà installée, cette version ne peut pas être utilisée, et même si votre installation DirectX est à jour car vous avez exécuté une version plus récente du programme d'installation qui n'est pas garanti pour avoir installé tout Versions précédentes. Pire encore, si une version est installée pour x86, elle ne garantit pas que la même version soit installée pour x64, donc les jeux de 64 bits et de 32 bits devront exécuter la même version d'installation exacte, mais ciblant différentes plates-formes lorsqu'elles sont exécutées. En outre, les termes de licence de Microsoft empêchent toute personne de distribuer directement les fichiers, la seule façon de les distribuer est d'exécuter le programme d'installation, c'est aussi la seule méthode prise en charge par Microsoft pour vérifier que la version correcte est installée. Essayer de vérifier manuellement les versions correctes est extrêmement compliqué car il existe de nombreux fichiers qui doivent tous être présents et que les options individuelles de configuration du système, comme les chemins de recherche dll, compliquent la situation. En outre, les dépendances et les contrôles requis peuvent changer dans chaque nouvelle version du temps d'exécution D3DX. Le code pour vérifier correctement et réparer les installations brisées existe dans le programme d'installation et l'exécution est une garantie que les binaires corrects existent lorsque vous exécutez le jeu et prévient beaucoup de cas mal où un jeu ne parviendrait pas à lancer avec une erreur obscure si un L'installation de Windows manquait la version correcte ou corrompait dans le passé.

Les jeux qui n'utilisent pas les assistants D3DX (tels que les jeux de moteur source) ne nécessitent pas d'exécuter l'installateur ennuyeux lors du premier lancement car ils dépendent uniquement des versions majeures d3d9 / 10/11 installées. Cependant, les jeux qui utilisent D3DX doivent l'exécuter, car c'est la seule façon Microsoft a permis de distribuer et de vérifier les informations de version sur les fichiers.

C'est pourquoi nous le faisons pour de nombreuses installations de jeux. Nous ne pouvons pas arrêter, il est nécessaire en raison d'un mauvais programme de version / emballage ainsi que de mauvais termes de licence de redistribution sur les bibliothèques D3DX.

La seule chose qui pourrait être améliorée de notre côté, c'est que Steam pourrait être assez intelligent pour savoir si une version exacte de l'installateur dx est déjà téléchargée et que vous partagez ce contenu afin de ne pas le télécharger à chaque jeu. Étant donné que l'installateur est relativement petit par rapport à la plupart des installations de jeux, ce qui ne constituerait pas une énorme victoire et nécessiterait une bonne complexité pour les partenaires dans la façon dont ils regroupent leurs jeux et gèrent les dépendances d'installation. Vous finirez également avec de nombreuses versions différentes de l'installateur, car, comme cela a été mentionné ci-dessus, ils ciblent souvent différentes versions de D3DX et, en tant que tels, sont nécessaires. En tant que tel, toute amélioration pour éviter les doublons n'est pas une priorité immédiate, mais nous pourrons peut-être l'améliorer légèrement à l'avenir.