Prečo každá hra s PC nainštaluje vlastnú kópiu DirectX?
DirectX je súčasťou operačného systému Windows. Tak prečo sa zdá, že každá hra počítača, ktorú inštalujete z Steam, Origin alebo inde, nainštaluje vlastnú kópiu DirectX?
Čo je DirectX?
DirectX je súčasťou systému Microsoft Windows. Je to skupina rozhraní API (aplikačné programovacie rozhrania), ktoré vývojári môžu používať v systéme Windows pre funkcie 3D grafiky, videa, multimédií, zvuku a gamepadu. Mnoho hier v systéme Windows používa technológiu Direct3D Direct3D pre grafiku. Ak tomu tak nie je, používajú namiesto toho platformové OpenGL alebo Vulkan API. Iné aplikácie, ktoré nie sú určené na hranie, môžu používať rozhranie DirectX pre funkcie ako 3D grafiku.
Windows 7 obsahuje DirectX 11 a Windows 10 obsahuje DirectX 12. Keď vývojári vyvíjajú hry, vyberajú verzie DirectX, ktoré chcú zacieliť. Napríklad hra napísaná iba pre DirectX 11 by sa nemala spustiť v systéme Windows XP, kde najnovšou dostupnou verziou je DirectX 9.
Môžete skontrolovať verziu DirectX dostupnú vo vašom systéme kliknutím na tlačidlo Štart, zadaním "dxdiag" do vyhľadávacieho poľa a stlačením klávesu Enter. Keď sa zobrazí okno s nástrojom na diagnostiku DirectX, uvidíte číslo verzie vpravo od "DirectX Version" pod "Systémové informácie".
Ak je zahrnuté v systéme Windows, prečo sú hry inštalované?
Ak je teda DirectX súčasťou systému Windows, prečo hry nainštalujú na prvom mieste? Stručná odpoveď je, že inštalácia DirectX je neporiadok.
Neexistuje len jedna hra na knižnicu DirectX Direct3D, ktorá závisí od nejakej hrsti. Herní vývojári musia zacieliť presnú verziu knižnice pomocníkov Direct3D. Nedá sa použiť novšia verzia knižnice. Ak napríklad vývojár hry zameral svoju hru na d3ddx10_40.dll, hra nemôže používať d3ddx10_41.dll. Potrebuje verziu 40 a iba tento súbor bude robiť.
Tieto súbory nájdete v priečinku C: \ Windows \ System32 vo vašom systéme. V 64-bitovom systéme sa 64-bitové knižnice nachádzajú v systéme C: \ Windows \ System32 a 32-bitové knižnice sú umiestnené v systéme C: \ Windows \ SysWOW64.
Aj keď ste spustili najnovší inštalačný program DirectX, neexistuje záruka, že nainštaluje všetky staré drobné verzie knižníc DirectX na vašom systéme. Spoločnosť Microsoft sa tiež rozhodla, že tieto súbory knižnice Direct3D nebudú zviazané so samotným systémom Windows. Dokonca aj knižnice Direct3D vytvorené predtým, ako boli vydané Windows 10, nie sú všetky súčasťou systému Windows 10. Musia byť nainštalované aplikáciou, ktorá ich potrebuje. Ako uviedla spoločnosť Microsoft v dokumentácii určenej vývojárom hier, "Windows Update a Service Pack neposkytujú žiadne voliteľné súčasti rozhrania DirectX".
Dokonca to ešte komplikuje. 32-bitové hry potrebujú 32-bitové verzie súboru knižnice a 64-bitové hry potrebujú 64-bitovú knižnicu.
Toto je podobné situácii s knižnicami Redistribuovateľných Microsoft Visual C ++. Rôzne aplikácie závisia od rôznych verzií knižníc a musíte mať nainštalovanú veľa rôznych verzií. Je tu dobrá šanca, že máte aj veľa inštalovaných na vašom systéme.
Ale prečo musí každá hra PC znova nainštalovať?
Dobre, tak každá hra musí nainštalovať presnú menšiu verziu knižníc DirectX, ktoré vyžaduje. Ak ste však už raz nainštalovali túto konkrétnu verziu knižnice DirectX, určite nemusí hra spustiť inštalátor DirectX?
Zle. Hry nemôžu ľahko skontrolovať, či sú nainštalované správne knižnice DirectX, ktoré potrebujú. Ako poznámky k lokalitám spoločnosti Steam, inštalačná služba Microsoft DirectX je jedinou oficiálne podporovanou cestou, ako skontrolovať, či sú aktuálne nainštalované správne súbory DirectX. Hry spustiť inštalačný program DirectX, často v pozadí, ktorý nainštaluje všetky požadované knižnice a opravuje akékoľvek problémy v systéme.
Inštalačný program DirectX je tiež jediný spôsob, ktorý umožňuje vývojárom distribuovať tieto súbory. Vývojári sa nemôžu snažiť byť šikovný tým, že zrušia priamo knižnice DirectX vo vašom systéme a vynechajú inštalátora, alebo by porušili softvérovú licenciu spoločnosti MIcrosoft. Pravdepodobne by sa dostali do rôznych chýb, aj keby to skúšali. To je dôvod, prečo nikto nevie.
Samozrejme, nie všetky hry musia vlastne spustiť inštalačný program DirectX pri prvom spustení. Hry, ktoré používajú OpenGL alebo Vulkan namiesto Direct3D DirectX, nebudú musieť spúšťať. Niektoré hry závisia len od dôležitých verzií DirectX, ako je DirectX 11, 10 alebo 9, a nemusia zavolať inštalačný program DirectX, pretože nepoužívajú žiadnu z týchto pomocných knižníc.
Môžem odstrániť niektoré z týchto knižníc?
Nemali by ste odstrániť žiadne knižnice DirectX v priečinku System32 alebo v priečinku SysWOW64. Ak sa nachádzajú vo vašom systéme, je to preto, že ste im potrebovali hru alebo inú aplikáciu, ktorú ste nainštalovali. Ak začnete odstraňovať súbory knižnice, aplikácie sa môžu prerušiť. Neexistuje žiadny spôsob, ako skutočne povedať, ktoré súbory knižnice DirectX sú vyžadované tým, ktoré hry vo vašom systéme, takže neexistuje žiadny spôsob, ako vedieť, ktoré sú bezpečné odstrániť.
Nechajte ich! Existuje dôvod, prečo neexistuje žiadny oficiálne podporovaný spôsob na odinštalovanie týchto knižničných súborov. Nebudú spôsobovať žiadne problémy vo vašom systéme a budú použité iba aplikáciami, ktoré ich vyžadujú.
Ak ste naozaj zúfalo vyčistiť tieto staré knižnice, je lepšie preinštalovať systém Windows, aby ste získali nový systém namiesto náhodného odstránenia súborov knižnice. Ale po inštalácii sa začnú znovu objavovať. Nebojte sa o to.
Čo môžem urobiť, ak mám problémy s DirectX?
Ak sa počas pokusu o spustenie alebo inštaláciu hry zobrazí chybové hlásenie týkajúce sa rozhrania DirectX, je možné, že inštalačný program hry nesprávne nespúšťa inštalovaný inštalačný program DirectX redistributable. Nie je možné jednoducho prevziať inštalačný program DirectX z webových stránok spoločnosti Microsoft - musíte spustiť inštalátor, ktorý samotná hra vyžaduje.
Môžete sa dostať do zložky hry na vašom systéme alebo na inštalačnom disku hry, nájsť súbor .exe inštalačného programu DIrectX a spustiť ho, aby ste problém vyriešili. Tento súbor sa všeobecne nazýva DXSETUP.exe.
Zvyčajne môžete získať viac informácií o tom, ako problém vyriešiť pomocou vyhľadávania na webe pre názov hry alebo aplikácie a konkrétnu chybovú správu DirectX, ktorú vidíte.