Dlaczego każda gra na PC instaluje własną kopię DirectX?
DirectX jest częścią systemu operacyjnego Windows. Dlaczego więc wydaje się, że każda gra na PC instalowana przez Steam, Origin lub gdziekolwiek indziej instaluje własną kopię DirectX?
Czym jest DirectX?
DirectX jest częścią systemu Microsoft Windows. Jest to grupa API (interfejsów programowania aplikacji), którą programiści mogą używać do grafiki 3D, wideo, multimediów, dźwięku i funkcji gamepada w systemie Windows. Wiele gier w systemie Windows korzysta z Direct3D DirectX do grafiki. Jeśli nie, używają międzyplatformowego API OpenGL lub Vulkan API. Inne aplikacje niebędące grami mogą korzystać z DirectX do takich funkcji, jak grafika 3D.
Windows 7 zawiera DirectX 11, a Windows 10 zawiera DirectX 12. Kiedy programiści opracowują gry, wybierają wersje DirectX, na które chcą trafić. Na przykład gra napisana tylko dla DirectX 11 nie działa w systemie Windows XP, gdzie najnowszą dostępną wersją jest DirectX 9.
Możesz sprawdzić wersję DirectX dostępną w twoim systemie, klikając przycisk Start, wpisując "dxdiag" w polu wyszukiwania i naciskając Enter. Kiedy pojawi się okno narzędzia diagnostycznego DirectX, zobaczysz numer wersji po prawej stronie "wersji DirectX" w "Informacje o systemie".
Jeśli jest dołączony do systemu Windows, dlaczego gry go instalują?
Więc jeśli DirectX jest częścią systemu Windows, dlaczego gry instalują go w pierwszej kolejności? Krótka odpowiedź brzmi, że instalacja DirectX to bałagan.
Nie istnieje tylko jedna biblioteka gier DirectX Direct3D, a jedynie garstka. Twórcy gier muszą kierować się dokładną wersją biblioteki pomocniczej Direct3D. Nie można użyć nowszej wersji biblioteki. Na przykład, jeśli twórca gier kieruje swoją grę pod d3ddx10_40.dll, gra nie może użyć d3ddx10_41.dll. Potrzebuje wersji 40 i tylko ten plik będzie działał.
Pliki te znajdziesz w folderze C: \ Windows \ System32 w systemie. W 64-bitowym systemie 64-bitowe biblioteki znajdują się w C: \ Windows \ System32, a 32-bitowe biblioteki znajdują się w C: \ Windows \ SysWOW64.
Nawet jeśli uruchomiłeś najnowszy instalator DirectX, nie ma gwarancji, że zainstaluje on wszystkie stare, niewielkie wersje bibliotek DirectX w twoim systemie. Microsoft zdecydował się również nie łączyć tych plików biblioteki Direct3D z samym systemem Windows. Nawet biblioteki Direct3D utworzone przed wydaniem Windows 10 nie są na przykład dołączone do systemu Windows 10. Muszą być zainstalowane przez aplikację, która ich potrzebuje. Jak zauważa Microsoft w dokumentacji przeznaczonej dla twórców gier: "Windows Update i Service Pack nie zapewniają żadnych opcjonalnych komponentów DirectX".
To nawet staje się bardziej skomplikowane. Gry 32-bitowe wymagają 32-bitowych wersji pliku biblioteki, a gry 64-bitowe wymagają biblioteki 64-bitowej.
Jest to podobne do sytuacji w bibliotekach redystrybucyjnych Microsoft Visual C ++. Różne aplikacje zależą od różnych wersji bibliotek i trzeba zainstalować wiele różnych wersji. Istnieje duża szansa, że masz wiele zainstalowanych w twoim systemie.
Ale dlaczego każda gra na PC musi ją ponownie zainstalować?
Okej, więc każda gra musi zainstalować dokładną wersję biblioteki DirectX, której wymaga. Ale jeśli już raz zainstalowałeś tę konkretną wersję biblioteki DirectX, z pewnością gra nie musi uruchamiać programu instalacyjnego DirectX?
Źle. Nie ma możliwości łatwego sprawdzenia, czy zainstalowane są odpowiednie biblioteki DirectX, których potrzebują. Jak zauważa serwis wsparcia Steam, instalator DirectX Microsoftu jest jedynym oficjalnie obsługiwanym sposobem sprawdzania, czy aktualnie są zainstalowane poprawne pliki DirectX. Gry uruchamiają instalator DirectX, często w tle, który instaluje dowolne wymagane biblioteki i naprawia wszelkie problemy w systemie.
Instalator DirectX jest również jedynym sposobem, w jaki firma Microsoft umożliwia programistom dystrybucję tych plików. Programiści nie mogą starać się być sprytni, upuszczając biblioteki DirectX bezpośrednio z systemu i pomijając instalator, lub złamaliby licencję oprogramowania MIcrosoft. Prawdopodobnie napotkaliby różne błędy, nawet gdyby spróbowali tego. Dlatego nikt tego nie robi.
Oczywiście, nie wszystkie gry muszą uruchamiać instalator DirectX po ich pierwszym uruchomieniu. Gry korzystające z OpenGL lub Vulkan, a nie DirectX DirectX nie będą musiały go uruchamiać. Niektóre gry zależą tylko od głównych wersji DirectX takich jak DirectX 11, 10 lub 9 i nie wymagają wywoływania instalatora DirectX, ponieważ nie używają żadnej z tych bibliotek pomocniczych.
Czy mogę usunąć niektóre z tych bibliotek?
Nie należy usuwać żadnej z bibliotek DirectX w folderze System32 lub folderze SysWOW64. Jeśli są obecne w systemie, to dlatego, że potrzebna im gra lub inna zainstalowana aplikacja. Jeśli zaczniesz usuwać pliki biblioteki, aplikacje mogą się zepsuć. Nie ma sposobu, aby naprawdę powiedzieć, które pliki biblioteki DirectX są wymagane przez gry w twoim systemie, więc nie ma sposobu, aby dowiedzieć się, które są bezpieczne do usunięcia..
Zostaw ich w spokoju! Istnieje powód, dla którego nie ma oficjalnie obsługiwanego sposobu odinstalowania tych plików biblioteki. Nie spowodują żadnych problemów w systemie i będą używane tylko przez aplikacje, które ich wymagają.
Jeśli naprawdę chcesz wyczyścić stare biblioteki, lepiej przeinstalować system Windows, aby uzyskać nowy system zamiast losowego usuwania plików bibliotecznych. Ale i tak zaczną się tutaj ponownie pojawiać po zainstalowaniu gier. Nie przejmuj się tym.
Co mogę zrobić, jeśli mam problemy z DirectX?
Jeśli zobaczysz komunikat o błędzie związany z DirectX podczas próby uruchomienia lub instalacji gry, możliwe jest, że instalator gry nie obsługuje prawidłowo dostarczonego instalatora redystrybucyjnego DirectX. Nie możesz jednak pobrać instalatora DirectX ze strony Microsoftu - musisz uruchomić instalator, którego wymaga gra.
Możesz znaleźć się w folderze gry na swoim systemie lub na dysku instalacyjnym gry, zlokalizować plik .exe instalatora DIrectX i uruchomić go, aby rozwiązać problem. Ten plik nazywa się ogólnie DXSETUP.exe.
Zwykle można uzyskać więcej informacji o tym, jak rozwiązać problem, wykonując wyszukiwanie w sieci dla nazwy gry lub aplikacji oraz określonego komunikatu o błędzie DirectX, który jest wyświetlany.