Защо всеки PC игра инсталира своя собствена копие на DirectX?
DirectX е част от операционната система Windows. Защо тогава изглежда, че всяка компютърна игра, която инсталирате от Steam, Origin или другаде, инсталира свое собствено копие на DirectX?
Какво е DirectX?
DirectX е част от Microsoft Windows. Това е група от API (интерфейси за приложно програмиране), които разработчиците могат да използват за 3D графики, видео, мултимедия, звук и геймпад в Windows. Много игри на Windows използват Direct3D за графики. Ако не го направят, те използват вместо платформата OpenGL или Vulkan. Други неигрови приложения могат да използват DirectX за функции като 3D графика.
Windows 7 включва DirectX 11, а Windows 10 включва DirectX 12. Когато разработчиците разработват игри, те избират DirectX версиите, които искат да насочат. Например, игра, написана само за DirectX 11, няма да работи на Windows XP, където последната налична версия е DirectX 9.
Можете да проверите версията на DirectX, налична във вашата система, като щракнете върху бутона Старт, въведете “dxdiag” в полето за търсене и натиснете Enter. Когато се появи прозорецът на инструмента за диагностика на DirectX, ще видите, че номерът на версията се появява вдясно от „Версия DirectX“ в „Информация за системата“.
Ако е включен в Windows, защо са го инсталирали игри?
Така че, ако DirectX е част от Windows, защо игрите дори го инсталират на първо място? Краткият отговор е, че DirectX инсталацията е бъркотия.
Има не само един DirectX Direct3D библиотека игри зависи от, или дори само една шепа. Разработчиците на игри трябва да се насочат към точната версия на помощната библиотека на Direct3D. Не може да се използва по-нова версия на библиотеката. Например, ако разработчик на игри е насочил играта си към d3ddx10_40.dll, играта не може да използва d3ddx10_41.dll. Нуждае се от версия 40 и само този файл.
Ще намерите тези файлове в папката C: Windows System32 на вашата система. В 64-битова система 64-битовите библиотеки се намират в C: Windows System32 и 32-битовите библиотеки се намират в C: Windows SysWOW64.
Дори ако сте стартирали най-новата инсталация на DirectX, няма гаранция, че ще инсталирате всички стари малки версии на DirectX библиотеките във вашата система. Microsoft също така е избрала да не включва тези Direct3D библиотечни файлове в самия Windows. Дори Direct3D библиотеки, създадени преди Windows 10, например, не са включени в Windows 10. Те трябва да бъдат инсталирани от приложение, което се нуждае от тях. Както отбелязва Microsoft в документацията, предназначена за разработчиците на игри, „Windows Update и сервизните пакети не предоставят нито един от допълнителните компоненти на DirectX“.
Тя дори става по-сложна от това. 32-битовите игри се нуждаят от 32-битови версии на библиотечния файл, а 64-битовите игри се нуждаят от 64-битова библиотека.
Това е подобно на ситуацията с библиотеките за разпространение на Microsoft Visual C ++. Различните приложения зависят от различни версии на библиотеките и трябва да имате инсталирани много различни версии. Има голям шанс да имате много от тези, инсталирани на вашата система, също.
Но защо всеки компютър игра трябва да го инсталирате отново?
Добре, така че всяка игра трябва да инсталира точната малка версия на DirectX библиотеките, която тя изисква. Но ако вече сте инсталирали тази конкретна версия на DirectX библиотека, със сигурност играта няма нужда да стартира правото на инсталатора на DirectX?
Грешен. Няма начин игрите лесно да проверяват дали са инсталирани правилните DirectX библиотеки, от които се нуждаят. Както отбелязва сайтът за поддръжка на Steam, DirectX инсталационната програма на Microsoft е единственият официално поддържан начин за проверка дали са инсталирани правилните DirectX файлове. Игрите изпълняват инсталатора на DirectX, често във фонов режим, който инсталира всички необходими библиотеки и ремонтира всички проблеми в системата.
Инсталаторът DirectX е единственият начин, по който Microsoft позволява на разработчиците да разпространяват тези файлове. Разработчиците не могат да се опитат да бъдат умни, като директно пуснат DirectX библиотеките във вашата система и пропуснат инсталатора, или биха нарушили софтуерния лиценз на MIcrosoft. Също така вероятно биха се сблъскали с различни грешки, дори ако са опитали това. Ето защо никой не го прави.
Разбира се, не всички игри всъщност трябва да стартират инсталатора на DirectX, когато ги пуснете за първи път. Игрите, които използват OpenGL или Vulkan, а не Direct3D, няма да се налага да го изпълняват. Някои игри също зависят само от основните версии на DirectX като DirectX 11, 10 или 9 и не е необходимо да се обаждате на инсталатора на DirectX, защото не използват някоя от тези помощни библиотеки.
Мога ли да премахна някои от тези библиотеки?
Не трябва да премахвате никоя от библиотеките на DirectX във вашата папка System32 или папка SysWOW64. Ако са налице във вашата система, това е така, защото една игра или друго приложение, което сте инсталирали, се нуждаеше от тях. Ако започнете да премахвате библиотечни файлове, приложенията могат да се счупят. Няма начин да разберете кои библиотечни файлове на DirectX се изискват от кои игри в системата ви, така че няма начин да знаете кои са безопасни за премахване.
Остави ги на мира! Има причина, поради която няма официално поддържан начин за деинсталиране на тези библиотечни файлове. Те няма да причинят проблеми във вашата система и ще се използват само от приложения, които ги изискват.
Ако сте наистина отчаян да почистите тези стари библиотеки, по-добре е да преинсталирате Windows, за да получите нова система, вместо да изтривате произволно библиотечните файлове. Но те ще започнат да се появяват тук след като инсталирате игри. Не се безпокойте за това.
Какво мога да направя, ако имам проблеми с DirectX?
Ако виждате съобщение за грешка, свързано с DirectX, докато се опитвате да стартирате или инсталирате игра, е възможно инсталационната програма на играта да не изпълнява включената инсталация за разпространение на DirectX. Не можете просто да изтеглите инсталатора на DirectX от уебсайта на Microsoft, въпреки това - трябва да стартирате инсталационната програма, която самата игра изисква.
Може да успеете да влезете в папката на играта на вашата система или на инсталационния диск на играта, намерете инсталационния файл .exe на DIrectX и да я стартирате, за да решите проблема. Този файл обикновено се нарича DXSETUP.exe.
Обикновено можете да получите повече информация за това как да разрешите проблема, като извършите търсене в мрежата за името на играта или приложението и конкретното съобщение за грешка в DirectX, което виждате.