Vì sao game nào cũng cài DirectX vào máy bạn khi mà Windows đã có sẵn?
Duy Luân
5 nămBình luận: 150
Vì sao game nào cũng cài DirectX vào máy bạn khi mà Windows đã có sẵn?
DirectX là một thứ có sẵn trong Windows, nó là thư viện được các game và app dùng để hiển thị hình ảnh 3D và thực hiện nhiều chức năng khác về âm thanh, hình ảnh, dựng hình. Vấn đề là khi cài game, rất nhiều game vẫn cài thêm DirectX dù rõ ràng Windows đã đi kèm theo thư viện này rồi. Vì sao lại có chuyện mắc cười như thế?

DirectX là gì?

DirectX là một thứ có sẵn trong Windows. Nó bao gồm một tập hợp các hàm lập trình (API) để lập trình viên sử dụng cho những tính năng liên quan đến đồ họa 3D, chơi video, phát nhạc hay kết nối với những phụ kiện chơi game. Mỗi tính năng này có một số hàm API riêng và tên của chúng cũng bắt đầu bằng chữ "Direct", ví dụ như Direct3D cho đồ họa ba chiều, DirectMusic cho hiệu ứng nhạc, DirectSound cho các âm thanh phát ra trong game... Sau này, Microsoft cũng dùng tiếp chữ X cho dòng máy chơi game Xbox để cho thấy rằng máy sử dụng công nghệ của DirectX. Trong số các hàm của DirectX, Direct3D được biết đến nhiều nhất và sử dụng rất rộng rãi nên nhiều người cũng gọi Direct3D là DirectX luôn tuy đây chưa phải là cách gọi đúng. Không chỉ game mà các ứng dụng khác cũng có thể dùng DirectX, ví dụ phần mềm CAD / CAM dùng nó để hiển thị hình ảnh 3D.

Nếu các nhà phát triển không sử dụng DirectX, họ có thể sử dụng một số bộ hàm API khác cũng nổi tiếng không kém như OpenGL và mới đây có thêm Vulkan. Các hàm API đó tương thích nhiều nền tảng nên thường được các nhà phát triển chọn để tiết kiệm công sức khi cần đem game lên hệ điều hành hay các hệ máy khác.

DirectX 11 được đính kèm sẵn trong Windows 7, lên đến Windows 10 thì đi kèm DirectX 12. Khi các nhà phát triển bắt đầu làm game, họ sẽ chọn phiên bản DirectX mà họ muốn sử dụng. Đây cũng là lý do mà một game viết cho DirectX 11 không thể chạy trên Windows Xp vốn chỉ hỗ trợ tối đa DirectX 9 mà thôi.

Quảng cáo


Bạn có thể kiểm tra phiên bản DirectX trên máy mình bằng cách nhấn Command + R, gõ chữ "dxdiag" rồi nhấn Enter. Trong hộp thoại mới xuất hiện, bạn sẽ thấy dòng DirectX Version.

Direct_X_installer_Windows_2.png

Nếu DirectX đã có sẵn trong Windows, vì sao game lại cài thêm vào?

Khi anh em cài game, rất nhiều lần anh em để ý thấy rằng ngoài việc cài các file của chính mình, game cũng cài luôn cả DirectX vào máy tính của anh em nữa. Ủa kì vậy, nếu Windows đã có sẵn thì cần gì phải cài thêm? Câu trả lời ngắn gọn: việc cài đặt DirectX quá lộn xộn.

Như đã nói ở trên, DirectX có nhiều bản khác nhau, vậy nên khi sử dụng các thư viện con như Direct3D thì lập trình viên cũng phải chọn một phiên bản nhất định để viết game. Ngay cả khi bạn đã chọn DirectX 10 để bắt đầu làm game nhưng các bản cập nhật mới hơn đôi khi cũng không hoạt động.

Ví dụ dễ hiểu như sau: Nếu lập trình viên viết game ABC dựa trên các hàm API chứa trong file thư viện d3ddx10_40.dll, game sẽ không thể chạy nếu máy tính của bạn chỉ có file d3ddx10_41.dll. Game đã được "target" vào đúng phiên bản 10.40, và chỉ phiên bản này mới được chấp nhận mà thôi bằng không game sẽ không chạy được. Chưa hết, game 32-bit cần các file DLL 32-bit, và game 64-bit cũng cần các file 64-bit riêng.

Direct_X_installer_Windows_1.png

Ngay cả khi bạn download bộ cài DirectX mới nhất từ trên mạng về, không có gì đảm bảo rằng nó sẽ cài đủ các phiên bản cũ hơn vào máy tính. Microsoft cũng không đính kèm tất cả những file Direct cần thiết vào Windows nữa. Chúng cần phải được cài đặt bởi ứng dụng nào cần sử dụng. Như lời Microsoft ghi trong tài liệu dành cho nhà phát triển: "Windows Update và Windows Service Pack không cung cấp bất kì thành phần tùy chọn nào của DirectX".

Tính trạng này cũng diễn ra với thư viện Microsoft Visual C++ Redistributable và cũng là lý do vì sao bạn thấy thư viện này cứ được cài đi cài lại bởi rất nhiều ứng dụng mặc dù bản thân Windows cũng có chứa một số file liên quan.

Nhưng vì sao game nào cũng phải cài DirectX?

Quảng cáo


Giả sử bạn cài game A, nó đã cài đúng thư viện d3ddx10_40.dll cần thiết, và game B cũng cần sử dụng d3ddx10_40.dll thì tại sao B phải cài lại đúng không nào, cứ thế mà chơi thôi?

Không. Sự thật là không có một cách nào đơn giản và chắc chắn để kiểm tra xem thư viện DirectX đang cài trên máy có phải là bản mà game cần hay không. Như kho game Steam có cảnh báo, bộ cài DirectX của Microsoft là cách chính thức duy nhất hỗ trợ kiểm tra xem file DirectX cần thiết đã được cài hay chưa. Chính vì thế, game thường phải chạy bộ cài DirectX để cài thêm các file bị thiếu, file nào có rồi thì bỏ qua, và file nào có vấn đề thì sửa chữa.

Direct_X_old.jpg

Bộ cài DirectX cũng là cách duy nhất Microsoft cho phép nhà phát triển phân phối các file này. Lập trình viên không thể chỉ đơn giản là copy những file cần thiết vào thư mục System32 vì như vậy sẽ vi phạm thỏa thuận bản quyền với Microsoft. Và nếu họ tự copy file kiểu đó, khả năng cao là game cũng không chạy được do bị lỗi. Đây là lý do vì sao chẳng lập trình viên nào dại mà đi copy file thủ công cả, chạy DirectX installer chẳng phải sướng hơn hay sao?

Tất nhiên, không phải game nào cũng chạy bộ cài DirectX khi bạn chạy nó ở lần đầu tiên. Những game dùng OpenGL hay Vulkan đương nhiên không cần đến DirectX rồi. Một số game chỉ dùng phiên bản DirectX chính, ví dụ như bản 11, 10 hay 9, cũng không cần cài thêm do không sử dụng bất kì chức năng nào khác.

Bạn có thể xóa bớt file DirectX cho nhẹ máy không?

Không, bạn không nên xóa bất kì file DLL nào của DirectX nói riêng và không nên đụng đến bất kì file nào trong hai thư mục System32 hay SysWOW64. Tất cả những file DLL trong này được sử dụng bởi chính Windows hoặc bởi nhiều phần mềm khác trên máy tính của bạn, xóa đi là gặp lỗi và không còn chạy được nữa. Cũng không có cách nào an toàn để biết file nào trên máy bạn đang được sử dụng bởi app hay game nào nên tốt nhất là đừng đụng vô.

Quảng cáo


Nếu cần giải phóng dung lượng, mời anh em xem bài này: Thủ thuật - các cách dọn dẹp máy tính Windows.

Phải làm gì khi có vấn đề về DirectX?

Như đã nói ở trên, DirectX cài phải được cài tùy theo game, nên khi bạn gặp rắc rối vói game nào thì hãy chạy lại bộ cài của chính game đó chứ đừng download file từ Microsoft về do phiên bản DirectX khác nhau. Bạn cũng có thể tìm trong thư mục cài game, tìm thử xem có file nào đuôi EXE dùng để cài DirectX hay không thì chạy lại. File này thường có tên là DXSETUP.exe.

Tham khảo: HowtoGeek
home_Direct_X_Windows_installer_cai_dat.jpg
cover_Direct_X_Windows_installer_cai_dat.jpg
150 bình luận
102girlsCom
ĐẠI BÀNG
5 năm
Lâu lắm rồi chưa chơi game 😃
@102girlsCom Vậy Thì Chơi Đế Chế Thôi 😁 Game chiến thuật thời gian thực hay nhất mọi thời đại :D
Link Tải
http://sinhvienit.net/forum/download-game-de-che-3-age-of-empires-iii-full-......492467.html
ufdb
CAO CẤP
5 năm
@102girlsCom chỉ chơi mỗi g... :p
Himanxim
TÍCH CỰC
5 năm
Thanks mod [emoji7]. Bữa mình chơi pikachu nó cũng bảo cài thêm directX mà ko biết là cái j. [emoji51]

Sent from Dubai using Bê Phôn Gold
@Himanxim pikachu mà cũng cài directX à ? -_-
ntnam1972
TÍCH CỰC
5 năm
Cái hình chủ đề là của game gì vậy Luân ơi? tks
Razor11
CAO CẤP
5 năm
@ntnam1972 Sniper Ghost Warrior 1
@ntnam1972 Link tải Full Carck đây 😃
http://fullcrackpc.com/sniper-ghost-warrior-1-full-...../
Đây chính là điểm yếu kém về sự quản lý hệ thống lỏng lẻo của Microsoft đã gây ra sự phân mảnh quá lớn, tính luôn cả hệ điều hành Windows luôn chứ ko riêng gì DirectX. Trong khi Apple lại làm rất tốt việc này khi quản lý version cho hệ điều hành và các hàm API rất tốt. Ví dụ tương tự như ở iOS có các bộ SpriteKit, SceneKit, Metal, hay mới đây là ARKit, những bộ API kit này có sẵn trong hệ điều hành luôn và các app cứ thế tận dụng, chả bao giờ các app phải cài tới cài lui, chồng chéo đủ thứ file búa xua như bên Windows.
@Methylamine không phải game trên mac hình ảnh cùi quá, không so nổi với windows nên không ai chơi hết hả.
Nội chương trình dựng hình 3ds Max không hổ trợ Mac Os là hỉu rùi
Mà bợn chắc không hiểu design dựng hình 3D, nội thất, ngoại thất, dựng hình game.... là việc gì đâu
@BLACKBERRY__7290 Mỗi hệ máy có 1 sứ mệnh riêng của nó, t đố m dùng Windows mà lập trình được app cho iPhone đấy
@Methylamine Vậy thi từ ban đầu đừng bảo ngta yếu kém thì ai nói gì. Ngta nói cho rồi giờ lại bảo "Mỗi hệ máy có 1 sứ mệnh riêng của nó"... Chê này chê nọ rồi cuối cùng chốt câu nghe ngứa.
@Matrixxh T chê nó quản lý yếu kém thì liên quan mẹ gì đến sứ mệnh, yếu kém thì thừa nhận yếu kém, còn ráng mà cãi cùn
Từ hồi chuyển qua mac mình bỏ game luôn, vì mấy cái game hay chơi ko có trên mac, mà lại lười restart máy để qua bootcamp
Mà nói thật, mac chỉ để làm việc chứ khoản game chán quá
Nhờ mac mà mình ko nghiện game nữa, chuyển sang nghiện phim 😁
npdong1994
TÍCH CỰC
5 năm
@shinkt Bạn nói chuẩn không cần chỉnh.
@shinkt Mình đánh lol thì có trên mac không nhể :D
@shinkt Mình cũng giống bạn mà vẫn còn bị dính thằng 3dsMax nên cứ phải bootcamp Win, không thì cứ Mac mà sử dụng sướng cái thân.
@shinkt mac thua windows do thiếu bộ DirectX này thôi, DirectX của MS quá bá đạo OpenGL, Vuikan không so được.
Làm 3D mà chạy Mac thì chỉ chết
ufdb
CAO CẤP
5 năm
@alakazam1994 lol phiên bản NA thì có nhe bạn, chứ chơi qua garena như VN thì ko có bản mac
Vậy là món này chỉ có trên mt ak, bé đến h toàn chơi trên dế 0 à😔;)
Cơ mà tải về dt mà cứ phải giải nén, vậy là s ak? Ths
Aduckuba sign
oRecycle
ĐẠI BÀNG
5 năm
Game thủ thời 2007-2010 như mình thì mấy chuyện này đã rõ từ thuở ấy.
Razor11
CAO CẤP
5 năm
Hồi trước cài game cũng hay bị thiếu file .dll, lâu rồi ko bị nữa
Cài riết nặng máy ghê gớm...kkk
Ngày xưa mỗi lần cài game là nó bắt cài dx chỉ bt là nó hỗ trợ audio và video cho game thôi
Cài mới đc chơi thì phải cài thôi
Mod sai bét tè lè nhè . DirectX là kiến trúc GPU của Windows . Không thể thay thế hay biến mất . Android thì có kiến trúc GPU là Open GL và MacOS thì lại là Pro X . Đơn giản thế thôi :p:p:p:p:p:p
@minhthuvc cái này ng ta trả lời từ lâu rùi, gg search ra cả cọc, e có trả lời thì cũng lặp ý thui, bác muốn thì cư gg search thì ra, dễ mà😃
kudo_108
ĐẠI BÀNG
5 năm
@minhthuvc nói sai còn nói lớn
@kudo_108 Có câu trả lời hay hơn à . Nói luôn đi . Ko nói đc tjif
@minhthuvc Người ta trả lời ở trên rồi đó bác, bác cứ đi bắt bẻ mấy ng khác làm gì, trả lời câu hỏi ở trên kia kìa
nói đơn giản là..Đầu nào mình đó..không thể thấy đầu thằng này gắn vào cơ thể thằng kia @@
Lâu lắm rồi ko bật máy tính nữa
Windows của Mi là đám rừng.. lâm tặc dễ hack và đốt đền.
@Tminh3232 osx mà lên được 30% xem. chả bị hack cho vỡ mồm
@daoluong1991 Ít ng dùng quá sắp khai cmn tử rồi, ở đấy mà đòi kêb 30%
Chơi mỗi cái trò lol đi đâu thấy cũng chơi dc, hồi trước nhớ hay cài game từ đĩa mua ngoài hàng với cài kéo game từ torrent về chơi, cài xont launch game báo thiếu mấy cái dll lại lên google search xem down về bỏ vào window/system gì gì ấy. Giờ bỏ chơi game off rồi nên không còn gặp tình trạng này nữa 😁
linhatm
TÍCH CỰC
5 năm
sao vào contron panel/ad remove progame, nó nhiều mục "microsoft visual c ++" thế, xóa bớ đi dc kg ace???
@linhatm Được nhưng khi chơi game thì nó đòi thành phần game thì lúc đó đợi nó tải lâu lắm
Cơ mà wdp là hdh đóng hay mở nh?
Aduckuba sign
phongpt.neu
ĐẠI BÀNG
5 năm
Chuyển qua mac cũng được 2 năm rồi và từ ngày chuyển qua thì không muốn về windows một chút nào mặc dù vẫn có mấy cái máy khác để vọc vạch windows.
@phongpt.neu từ ngày chuyển qua thì không muốn về windows một chút nào => câu này nghe nhiều rồi bạn, nhưng tùy công việc bạn ơi! làm 3D mà chạy mac, chỉ có chết
Kal-el119
TÍCH CỰC
5 năm
@phongpt.neu làm văn phòng thì đúng
chạy file này "dxwebsetup.exe " là đủ full rồi.

nó sẽ check và download toàn bộ file DirectX các phiên bản về

nhưng cần phải có mạng internet

DirectX là rào cảng lớn nhất để các game, phần mềm dựng hình 3D có thể chạy trên mac, linux


Thằng MS nó mà mở DirectX cho các nền tảng khác thì tốt quá rồi.

Khi đó không chỉ có game mà các phần mềm khác như 3Ds Max,...Vray... chạy tốt trên mac, linux

Các nền tảng khác có opengl, vukan....nhưng không tốt bằng DirectX

Mac chơi game không tốt, không tương thích game tốt, do Mac không có được bộ DirectX của Ms, mà mấy game hay toàn dùng DirectX không mới ác
_LION_kinG_
ĐẠI BÀNG
5 năm
@BLACKBERRY__7290 Tại sao nó phải mở 1 thư viện nó tốn bao nhiêu công sức phát triển cho đối thủ sử dụng?








  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2022 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02862713156
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019