Miks paigaldab iga arvutimäng DirectXi enda koopia?
DirectX on osa Windowsi operatsioonisüsteemist. Miks tundub, et iga Steam, Origin või mujal installitud arvutimäng paigaldab oma DirectXi koopia?
Mis on DirectX?
DirectX on osa Microsoft Windowsist. See on rühm API-sid (rakenduste programmeerimisliideseid), mida arendajad saavad kasutada 3D-graafika, video, multimeedia, heli ja gamepadi funktsioonide jaoks Windowsis. Paljud Windowsi mängud kasutavad graafika jaoks DirectXi Direct3D-d. Kui nad seda ei tee, kasutavad nad selle asemel platvormiülest OpenGL või Vulkani API-sid. Muud mitte-mängu rakendused võivad kasutada DirectX funktsioone, näiteks 3D graafikat.
Windows 7 sisaldab DirectX 11 ja Windows 10 sisaldab DirectX 12. Kui arendajad arendavad mänge, valivad nad DirectX versioonid, mida nad soovivad sihtida. Näiteks ainult DirectX 11 jaoks kirjutatud mäng ei töötaks Windows XP-s, kus uusim saadaval olev versioon on DirectX 9.
DirectXi versiooni saate vaadata oma süsteemis, klõpsates nuppu Start, tippides otsingukasti “dxdiag” ja vajutades nuppu Enter. Kui ilmub DirectX diagnostika tööriista aken, näete versiooni numbrit, mis ilmub “DirectX versiooni” parempoolses osas jaotises “Süsteemi teave”.
Kui see on Windowsiga kaasas, siis miks on installitud mängud?
Nii et kui DirectX on osa Windowsist, siis miks mängud mängud isegi esmalt installivad? Lühike vastus on, et DirectX-i paigaldamine on segadus.
Ei ole ainult üks DirectX Direct3D raamatukogu mängud sõltuvad või isegi käputäis. Mängu arendajad peavad sihtima Direct3D abistajaraamatukogu täpset versiooni. Raamatukogu uuemat versiooni ei saa kasutada. Näiteks kui mängu arendaja on oma mängu sihtinud d3ddx10_40.dll, ei saa mäng d3ddx10_41.dll kasutada. See vajab versiooni 40 ja ainult seda faili.
Need failid leiate teie süsteemi C: Windows System32 kaustast. 64-bitises süsteemis asuvad 64-bitised raamatukogud C-s: Windows System32 ja 32-bitised raamatukogud asuvad C: Windows SysWOW64.
Isegi kui teil on uusim DirectX-i installer, siis pole mingit garantiid, et see installib teie süsteemis kõik DirectXi raamatukogude vanad väiksemad versioonid. Samuti on Microsoft otsustanud mitte siduda neid Direct3D-raamatukogufaile ka Windowsiga. Isegi enne Windows 10 avaldamist loodud Direct3D-raamatukogud ei ole Windows 10-sse kaasatud. Neid tuleb installida rakendus, mis neid vajab. Kuna Microsoft märgib mänguarendajatele mõeldud dokumentides, „Windows Update ja Service Pack ei paku ühtegi DirectXi valikulist komponenti”.
See muutub isegi keerulisemaks. 32-bitised mängud vajavad raamatukogufaili 32-bitisi versioone ja 64-bitised mängud vajavad 64-bitist raamatukogu.
See on sarnane Microsoft Visual C ++ Redistributable'i raamatukogudega. Erinevad rakendused sõltuvad raamatukogude erinevatest versioonidest ja teil on vaja installida palju erinevaid versioone. Samuti on hea võimalus, et teie arvutisse on paigaldatud ka palju neid.
Aga miks iga arvuti mäng peab selle uuesti installima?
Okei, seega peab iga mäng paigaldama DirectX-i raamatukogude täpse väiksema versiooni. Aga kui olete juba selle DirectX-raamatukogu selle konkreetse versiooni juba installinud, ei pea kindlasti mängima DirectX-i installer-paremat?
Vale. Mängud ei saa lihtsalt kontrollida, kas õiged DirectX-raamatukogud, mida nad vajavad, on installitud. Steami tugiteenuste saidi märkimisel on Microsofti DirectX-i paigaldaja ainus ametlikult toetatav viis kontrollida, kas õiged DirectX-failid on praegu installitud. Mängud käivitavad DirectXi paigaldaja, tihti taustal, mis paigaldab kõik vajalikud raamatukogud ja parandab kõik süsteemi probleemid.
DirectXi paigaldaja on ka ainus viis, kuidas Microsoft võimaldab arendajatel neid faile levitada. Arendajad ei saa proovida olla otsesed, kui otseselt DirectX-i raamatukogud kukutatakse ja installija vahele jätta või nad purustavad MIcrosofti tarkvaralitsentsi. Nad sattuksid tõenäoliselt ka erinevatesse vigadesse, isegi kui nad seda proovisid. Sellepärast keegi ei tee seda.
Muidugi ei pea kõik mängud DirectX-i installijat käivitama, kui neid esmakordselt käivitate. Mängud, mis kasutavad OpenGLi või Vulkani, mitte DirectXi Direct3D, ei pea seda käivitama. Mõned mängud sõltuvad ainult DirectXi suurematest versioonidest nagu DirectX 11, 10 või 9 ning ei pea otsima DirectX-i paigaldajat, sest nad ei kasuta ühtegi nendest abimeeste raamatukogudest.
Kas ma saan mõned neist raamatukogudest eemaldada?
Te ei tohiks eemaldada ühtegi DirectXi kataloogi oma kaustas System32 või SysWOW64. Kui nad on teie süsteemis olemas, on see tingitud mängust või muust installitud rakendusest. Kui alustate raamatukogu failide eemaldamist, võivad rakendused puruneda. Ei ole võimalik tõesti öelda, millised DirectXi raamatukogu failid on vajalikud teie mängus olevate mängude jaoks, nii et ei ole võimalik teada saada, millised on turvalised eemaldamiseks.
Jäta need üksi! On olemas põhjus, miks neid raamatukogufaile ei ole ametlikult toetatud. Nad ei tekita teie süsteemis probleeme ja neid saavad kasutada ainult need rakendused, mis neid vajavad.
Kui sa oled nende vanade raamatukogude puhastamiseks väga meeleheitlik, siis on parem Windows-i uuesti installida, et saada värske süsteem, mitte raamatukogufailide juhuslikku kustutamist. Kuid pärast mängu installimist hakkavad nad siin uuesti ilmuma. Ära muretse selle pärast.
Mida ma saan teha, kui mul on DirectX probleeme?
Kui näete mängu käivitamisel või installimisel DirectXiga seotud veateadet, siis on võimalik, et mängu installer ei käita oma kaasasolevat DirectX-i levitatavat installerit korralikult. Te ei saa lihtsalt alla laadida DirectXi installerit Microsofti veebisaidilt, kuigi - peate käivitama paigaldaja, mida mäng ise vajab.
Võimalik, et pääsete oma süsteemi või mängu installikettale mängu kausta, leidke DIrectX installer .exe fail ja käivitage see probleemi lahendamiseks. Seda faili nimetatakse üldiselt DXSETUP.exe.
Tavaliselt saate probleemi lahendamise kohta rohkem teavet, tehes veebiotsingu mängu või rakenduse nime ja konkreetse DirectXi veateate kohta, mida näete.