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.
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.
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.
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