Varför installerar varje PC-spel sin egen kopia av DirectX?
DirectX är en del av Windows-operativsystemet. Så varför verkar det som varje PC-spel du installerar från Ånga, Ursprung eller någon annanstans installerar sin egen kopia av DirectX?
Vad är DirectX?
DirectX är en del av Microsoft Windows. Det är en grupp av API: er (programmeringsgränssnitt) utvecklare kan använda för 3D-grafik, video, multimedia, ljud och gamepadfunktioner på Windows. Många spel på Windows använder DirectX Direct3D för grafik. Om de inte gör det, använder de OpenGL- eller Vulkan-API: erna i plattformen istället. Andra program som inte spelar kan använda DirectX för funktioner som 3D-grafik.
Windows 7 innehåller DirectX 11 och Windows 10 innehåller DirectX 12. När utvecklare utvecklar spel väljer de DirectX-versionerna de vill rikta in sig på. Exempelvis skulle ett spel som endast skrevs för DirectX 11 inte köras på Windows XP, där den senaste tillgängliga versionen är DirectX 9.
Du kan kontrollera vilken version av DirectX som finns tillgänglig på ditt system genom att klicka på Start-knappen, skriva "dxdiag" i sökrutan och trycka på Enter. När DirectX Diagnostic Tool-fönstret visas visas versionsnumret till höger om "DirectX Version" under "System Information".
Om det ingår med Windows, varför installerar det spel?
Så om DirectX är en del av Windows, varför installerar spel det även i första hand? Det korta svaret är att DirectX-installationen är en röra.
Det finns inte bara ett enda DirectX Direct3D-biblioteksspel beroende av, eller till och med bara en handfull. Spelutvecklare måste rikta in en exakt version av Direct3D-hjälparbiblioteket. En senare version av biblioteket kan inte användas. Om en spelutvecklare exempelvis riktar sitt spel på d3ddx10_40.dll kan spelet inte använda d3ddx10_41.dll. Det behöver version 40, och bara den filen kommer att göra.
Du hittar dessa filer i mappen C: \ Windows \ System32 på ditt system. På ett 64-bitarssystem finns 64-bitars bibliotek i C: \ Windows \ System32 och 32-bitars biblioteken finns i C: \ Windows \ SysWOW64.
Även om du har kört den senaste DirectX-installationsprogrammet, finns det ingen garanti att det kommer att installera alla gamla mindre versioner av DirectX-biblioteken på ditt system. Microsoft har också valt att inte buntas dessa Direct3D-biblioteksfiler med Windows själv heller. Även Direct3D-bibliotek skapade innan Windows 10 släpptes, till exempel, ingår inte alla i Windows 10. De måste installeras av en applikation som behöver dem. Som Microsoft noterar i dokumentation som är avsedd för spelutvecklare, tillhandahåller inte Windows Update och Service Packs någon av DirectXs tillvalskomponenter ".
Det blir till och med mer komplicerat än det. 32-bitars spel behöver 32-bitarsversionerna av bibliotekets fil och 64-bitars spel behöver 64-bitars biblioteket.
Det här liknar situationen med Microsoft Visual C ++ Redistributable-bibliotek. Olika applikationer beror på olika versioner av biblioteken och du måste ha många olika versioner installerade. Det finns en bra chans att du har många av dem som installeras på ditt system också.
Men varför måste varje PC-spel installera om det?
Okej, så varje spel måste installera den exakta mindre versionen av de DirectX-bibliotek som krävs. Men om du redan har installerat den specifika versionen av ett DirectX-bibliotek en gång, behöver spelet inte kör RunX Installer-höger?
Fel. Det finns inget sätt för spel att enkelt kontrollera om rätt DirectX-bibliotek de behöver installeras. Som Steams supportwebbplatser är Microsofts DirectX-installationsprogram det enda som är officiellt stöd för att kontrollera om rätt DirectX-filer är installerade. Spel kör DirectX-installationsprogrammet, ofta i bakgrunden, som installerar alla nödvändiga bibliotek och reparerar eventuella problem på systemet.
DirectX-installationsprogrammet är också det enda sättet som Microsoft tillåter utvecklare att distribuera dessa filer. Utvecklare kan inte försöka vara kloka genom att släppa DirectX-biblioteken på ditt system direkt och hoppa över installationsprogrammet, eller de skulle bryta Microsoft Softwares licens. De skulle också troligen gå in i olika buggar, även om de försökte detta. Det är därför ingen gör det.
Självklart behöver inte alla spel köra DirectX-installationsprogrammet när du startar dem först. Spel som använder OpenGL eller Vulkan istället för DirectXs Direct3D behöver inte köra det. Vissa spel beror bara på stora versioner av DirectX som DirectX 11, 10 eller 9 och behöver inte ringa DirectX-installationsprogrammet eftersom de inte använder någon av dessa hjälpbibliotek.
Kan jag ta bort några av dessa bibliotek?
Du bör inte ta bort några av DirectX-biblioteken i mappen System32 eller SysWOW64. Om de är närvarande på ditt system beror det på att ett spel eller annan applikation du installerade behövde dem. Om du börjar ta bort biblioteksfiler kan programmen bryta. Det finns inget sätt att verkligen berätta vilka DirectX-biblioteksfiler som krävs av vilka spel på ditt system, så det finns inget sätt att veta vilka som är säkra att ta bort.
Lämna dem ifred! Det finns en anledning att det inte finns något officiellt stöd för att avinstallera dessa biblioteksfiler. De kommer inte att orsaka några problem på ditt system och kommer endast att användas av applikationer som kräver dem.
Om du är verkligen desperat att städa upp dessa gamla bibliotek, är det bättre att du installerar om Windows för att få ett nytt system istället för att slumpmässigt radera biblioteksfiler. Men de kommer att börja återkomma här efter att du installerat spel, hur som helst. Oroa dig inte för det.
Vad kan jag göra om jag har DirectX-problem?
Om du ser ett DirectX-relaterat felmeddelande när du försöker springa eller installera ett spel kan det hända att spelets installationsprogram inte körs med det medföljande DirectX-omfördelningsbara installationsprogrammet. Du kan inte bara ladda ner ett DirectX-installationsprogram från Microsofts webbplats, men du måste köra installationsprogrammet som spelet själv kräver.
Du kan kanske gå in i spelets mapp på ditt system eller på spelets installationsskiva, leta efter DIrectX installationsprogrammet .exe-filen och köra det för att åtgärda problemet. Den här filen heter generellt DXSETUP.exe.
Du kan vanligtvis få mer information om hur du åtgärdar problemet genom att utföra en webbsökning för namnet på spelet eller programmet och det specifika DirectX-felmeddelandet du ser.