“Bom nguyên tử” DirectX, khẩu shotgun của Bill Gates và lời đề nghị khó cưỡng của Gabe Newell

Ngành công nghiệp game rất có thể sẽ không giống như những gì chúng ta đang thấy ngày nay nếu DirectX không ra đời sau một sự kiện gần 26 năm trước đây.

Đó là tháng 11/1994, khi DirectX chưa tồn tại mà chỉ mới có WinG, còn Microsoft đang ráo riết hoàn tất hệ điều hành Windows 95 để tung ra thị trường. Đây là một năm khá đặc biệt của ngành công nghiệp game bởi một loạt sản phẩm kinh điển được ra mắt vào thời kỳ này, chẳng hạn Doom 2, The Elder Scrolls: Arena, Star Wars: TIE Fighter, System Shock, Warcraft: Orcs & Humans… và những game thủ PC đã có một năm tuyệt vời, bởi tất cả chúng đều được phát triển cho PC.

Tuy nhiên, có một điều mà chúng ta cần biết: vào thời điểm này “PC” không đồng nghĩa với “Windows”. Thật ra, nó đồng nghĩa với MS-DOS, hệ điều hành mà ngày nay chúng ta xem là đồ cổ. Đại đa số game PC vào thời kỳ này đều được phát hành cho MS-DOS, và chỉ có một số cực kỳ ít ỏi nghĩ đến chuyện làm game cho Windows 95, hệ điều hành sắp ra mắt của Microsoft. Lý do của điều này là vì các nhà phát triển tin rằng Windows là một hệ điều hành chậm chạp, rối rắm và việc làm game cho nó quá phức tạp, còn MS-DOS đơn giản và thân thiện hơn nhiều.

Đừng tự bắt mình phải chơi những game mà bạn chưa từng chạm đến
Sai lầm của game thủ là ép bản thân phải cày hết những trò chưa chơi
Tất cả chúng ta đều có một kho game khổng lồ đã mua nhưng chưa từng chơi và điều đó hoàn toàn bình thường. Đừng ép bản thân mình phải cày cho hết làm gì!

Cái nhìn trên thực ra là hoàn toàn có cơ sở, bởi những tựa game hiếm hoi sử dụng engine đồ họa mới WinG được Microsoft thiết kế cho các bản Windows 3.x đều là thảm họa, chẳng hạn như trò chơi chuyển thể của bộ phim The Lion King. Trò chơi này được tạp chí PC World đưa vào danh sách những sản phẩm công nghệ tệ nhất mọi thời đại bên cạnh Internet Explorer bởi nó khiến đội ngũ chăm sóc khách hàng của Disney bị dội bom bằng hàng ngàn cuộc gọi của các bậc phụ huynh. Họ giận dữ khi mua game về cho con cái mình giải trí nhưng lại nhận về hàng tá phiền phức với các vấn đề kỹ thuật khiến máy tính bị màn hình xanh và nhiều lỗi khác nữa.

“Bom nguyên tử” DirectX

Mà ngay cả bản thân Microsoft cũng không định dùng Windows làm nền tảng chơi game. Điều này khiến Alex St. John, một technical evangelist (tạm dịch là “người dẫn đường công nghệ) của Microsoft hết sức bất mãn. Vì vậy, ông ta tuyển mộ Craig Eisler và Eric Engstrom và bắt tay vào việc thực hiện một dự án với tên gọi “Dự án Manhattan” – cùng tên với dự án sản xuất bom nguyên tử của Mỹ – với mục tiêu đánh bại sự thống trị của các công ty Nhật trên thị trường game.

“Vào tháng 11/1994, hai người bạn (Craig Eisler và Eric Engstrom) và tôi có một ý tưởng mà chúng tôi nghĩ là đơn giản – sẽ ra sao nếu có thể cho các nhà làm game khả năng sử dụng các tính năng cao cấp của card đồ họa? Liệu game sẽ chuyển từ MS-DOS sang Windows – chính xác là Windows 95?  Liệu Windows có thể trở thành nền tảng chơi game đủ sức cạnh tranh với SEGANintendo?” Alex viết trong blog của mình. “Vào thời điểm đó, chúng tôi chưa rõ liệu điều này có khả thi hay không. Tôi chỉ được thừa hưởng WinG khi làm việc cùng đội ngũ đa phương tiện (multimedia) của Windows 95, (WinG) cho phép truy cập vào phần bộ đệm khung hình của card đồ họa nhưng phớt lờ tất cả các tính năng khác trong phần cứng đồ họa”.

"Bom hạt nhân" DirectX, khẩu shotgun của Bill Gates và cuộc điện thoại của Gabe Newell

Alex St.John, cha đẻ của DirectX.

Và thế là trong tháng 12/1994, Alex và Eric viết ra một file Powerpoint để giới thiệu ý tưởng của mình cho một loạt nhà phát triển game. Họ gọi thứ mình tạo ra là Game SDK (software development kit – gói công cụ phát triển phần mềm) bởi muốn tránh dùng từ “multimedia” vốn là điểm yếu của Windows. Nó sẽ chứa các API (Application Programming Interface – giao diện phát triển ứng dụng) mới rất mạnh mẽ như DirectDraw cho phép dùng phần cứng để tăng tốc việc dựng hình 2D, DirectSound tạo ra các hiệu ứng âm thanh mạnh mẽ, DirectPlay điều khiển việc giao tiếp online… Một điều thú vị là Alex nói rằng bởi các nhà báo chế nhạo tên các API đó toàn “direct,” ông “chơi tới bến” và dùng luôn DirectX làm tên mới của Game SDK.

Sau khi được thấy file Powerpoint của Alex, các nhà sản xuất card đồ họa rất thích ý tưởng về một bộ phần mềm có khả năng khai thác sức mạnh phần cứng của họ. Trong trí nhớ của Alex, các hãng ATI, Cirrus Logic và S3 đều cử đại diện ghé qua tòa nhà 20 nơi có phòng nghiên cứu của Microsoft, và nói rằng “tôi sống cùng họ trong tòa nhà đó suốt gần 2 tháng” để tạo ra bản demo đầu tiên. Bản demo đó được hoàn thành chỉ vài phút trước deadline và chỉ chạy được trên ATI Mach 64, một card đồ họa siêu khủng với bộ nhớ lên đến 4MB.

"Bom hạt nhân" DirectX, khẩu shotgun của Bill Gates và cuộc điện thoại của Gabe Newell

Đĩa CD demo DirectX mà Microsoft trình diễn tại CGDC 1995.

Alex nói rằng mình vẫn nhớ việc lao 120 dặm/giờ bằng chiếc Mazda của Eric vào một buổi sáng thứ 7 của tháng 4/1995 nhằm kịp đưa chiếc đĩa CD chứa demo cho FedEx, để họ giao cho nhà máy in đĩa và trả hàng trước khi Microsoft phải trình diễn trên sân khấu tại Hội nghị các nhà phát triển game máy tính (CGDC – nay được đổi tên là GDC). “Những chiếc đĩa thành phẩm được đưa đến cho chúng tôi chỉ vài giờ trước khi chúng tôi phải lên sân khấu”, Alex nhớ lại.

Sau khi có được bản demo, bộ ba Alex, Eric và Craig lao vào làm việc để cho ra lò thành phẩm sau cùng. Quá trình này kéo dài trong suốt năm 1995 và đến mùa Giáng sinh năm đó, Microsoft tung ra “Games for Windows 95”, một bộ sưu tập demo của hơn 20 game đến từ nhiều nhà phát triển khác nhau, tất cả đều được chuyển hệ lên Windows 95 (ra mắt 4 tháng trước đó, vào ngày 24/8/1995). Nó đòi hỏi cấu hình máy cực mạnh thời bấy giờ, bao gồm hệ điều hành Windows 95 (dĩ nhiên rồi), bộ xử lý 486 66 MHz, 8MB RAM, card đồ họa 256 màu.

"Bom hạt nhân" DirectX, khẩu shotgun của Bill Gates và cuộc điện thoại của Gabe Newell

Mặt sau đĩa “Games for Windows 95” với danh sách các bản demo.

Sức mạnh DirectX và bàn tay của “thánh”

Để có được bộ sưu tập demo game trên, Microsoft đã tìm đến tất cả các studio game mà họ có thể nghĩ đến nhằm trình diễn sức mạnh của DirectX và thuyết phục các studio đó làm game cho mình. Studio đầu tiên mà Microsoft tìm đến không đâu khác ngoài id Software, bởi tựa game Doom mà họ phát triển cho MS-DOS được cài đặt trên PC nhiều hơn hẳn so với Windows 95, mặc dù Microsoft đã dành ra hàng triệu USD để quảng bá hệ điều hành này. Sự thành công của Doom thậm chí còn khiến Bill Gates nghĩ đến chuyện mua lại id Software!

Bởi tin rằng một phiên bản Doom cho Windows 95 sẽ giúp thay đổi cái nhìn của người dùng lẫn các studio làm game về Windows 95, Microsoft đưa cho John Carmack, sếp id Software một món hời không thể từ chối. Microsoft sẽ bỏ tiền của và công sức ra để chuyển hệ Doom lẫn Doom 2 lên Windows mà không lấy một xu, còn id Software vẫn giữ quyền phát hành. Dĩ nhiên John Carmack chấp nhận ngay lời đề nghị này và trao cho Microsoft mã nguồn của cả Doom và Doom 2.

"Bom hạt nhân" DirectX, khẩu shotgun của Bill Gates và cuộc điện thoại của Gabe Newell

Gabe Newell thời còn làm cho Microsoft và Doom95.

Ai là người tìm đến với John Carmack, và ai chuyển hệ Doom lên Windows 95 để Microsoft có thể nhét bản demo của nó vào bộ sưu tập Games for Windows 95? Đáp án chung cho cả hai câu hỏi trên đều là Gabe Newell, người mà ngày nay game thủ PC gọi là “thánh GabeN” và đang ấp ủ rất nhiều hoài bão lớn cho làng game với vai trò sếp của Valve. Thật ra Gabe Newell không chỉ làm hai tựa game này, bởi vào thời đó Gabe Newell là một sếp nhỏ trong Microsoft và sau này hãng vẫn gọi ông là “người sản xuất ba tựa game đầu tiên cho Windows”.

Theo Gabe Newell, vào thời điểm mà mình còn làm việc cho Microsoft và DirectX còn chưa ra mắt, “việc làm game tốt cho Windows là bất khả thi vì nhiều lý do kỹ thuật không tên”. Cũng như Alex, Gabe Newell hết sức thất vọng vì điều này, và khi thấy rằng Doom chạy trên MS-DOS thay vì Windows, ông quyết định gọi điện cho John Carmack để đưa ra lời đề nghị trên. Sau khi được sự đồng ý của John Carmack, Gabe Newell cùng một số kỹ sư Microsoft dưới quyền đã cùng nhau tạo ra Doom for Windows 95 (gọi ngắn gọn là Doom95), bản chuyển hệ của Doom 1.

Phiên bản Doom95 do Gabe Newell tạo ra không chỉ chạy hết sức mượt mà trên máy tính dùng Windows 95, thậm chí còn vượt trội hơn hẳn so với bản game gốc. Nó hỗ trợ độ phân giải siêu khủng 640×480, 24 kênh âm thanh, cho phép game thủ tạo các trận multiplayer dễ dàng hơn nhờ vào giao diện đồ họa thân thiện, cùng nhiều cải tiến khác. Tất cả những điều này đều chỉ có thể được xây dựng trên nền tảng DirectX mà thôi.

Và bởi thấy được những nỗ lực của Alex St.John, Craig Eisler, Eric Engstrom và Gabe Newell, Microsoft quyết định thay đổi định hướng của Windows 95. Microsoft chuyển sang quảng cáo Windows 95 như một nền tảng chơi game và sử dụng Doom95 làm một trong những vũ khí chính để chinh phục game thủ. Ngay cả “trùm cuối” của Microsoft là Bill Gates cũng trực tiếp tham gia vào việc quảng cáo trò chơi này khi ông mặc áo choàng, cầm shotgun xuất hiện trong một video gameplay của Doom được chiếu tại một buổi tọa đàm dành cho các nhà phát triển game của Microsoft. Đến ngày 20/8/1996, Doom95 chính thức ra mắt và nó trở thành tựa game đầu tiên trên nền tảng DirectX.

Thế giới game thuộc về DirectX

Với sự ra đời của Doom95, các nhà phát triển game đã thấy rõ sức mạnh của DirectX và biết rằng việc làm game tốt cho Windows 95 là khả thi. Họ không còn bị bó buộc bởi phần mềm và phần cứng giới hạn của MS-DOS, bởi DirectX cho phép họ sử dụng các tính năng mạnh mẽ của card đồ họa và card âm thanh, mở đường cho những tựa game mới hoành tráng hơn xuất hiện.

Dĩ nhiên không phải ai cũng thích DirectX. Một trong số những người không thích nó chính là John Carmack nên id Software sử dụng OpenGL, đối thủ của Direct3D trong DirectX để phát triển các tựa game từ Quake 2 (1997) đến Doom 3 (2004). Phải đến năm 2011, John Carmack mới phát biểu rằng Direct3D nay đã tốt hơn OpenGL trong một cuộc phỏng vấn, và khen ngợi Microsoft “đủ dũng cảm để tiếp tục thực hiện những thay đổi lớn nhằm cải thiện Direct3D, trong khi OpenGL cứ bị cầm chân bởi những lo ngại về tính tương thích”.

25 năm sau ngày bản demo đầu tiên của DirectX được tung ra, DirectX đã phát triển đến phiên bản thứ 12 và đưa ra những lời hứa hẹn có cánh mà hẳn những người tạo ra nó như Alex St.John, Craig Eisler và Eric Engstrom có nằm mơ cũng không nghĩ ra được khi bắt tay vào việc thay đổi Windows 95. Giờ đây, DirectX 12 sẽ cho phép các nhà phát triển có thể tiết kiệm chi phí khi làm game đồng thời cho cả Windows và Xbox Series X, mang theo những công nghệ mới toanh như DirectX RayTraing, Mesh Shaders, Sampler Feedback… Với những công nghệ này, Microsoft hi vọng sẽ đè bẹp Vulkan, kẻ kế thừa OpenGL ngày nào và để cho DirectX tiếp tục là kẻ thống trị ngành công nghiệp game.

Một cơ hội hoàn tiền to thiệt to đến từ ví điện từ SmartPay diễn ra từ ngày 17/08 đến ngày 20/09 - Giá trị hoàn tiền lên đến 2 triệu đồng, bên cạnh đó còn may mắn nhận thêm mã dự thưởng trị giá 99 triệu đồng.

Cài đặt ngay app SmartPay để có cơ hội hoàn tiền khủng này nhé các chiến hữu nhé!!!

Link: http://bit.ly/TaiSmartPayNgay
Bookgrinder

Tác giả

Một người bình thường, thỉnh thoảng bất thường. Đôi khi stream trên kênh YouTube của Mọt game và được gọi là Mọt Nghiêm Túc. Yêu game và thích tìm hiểu những thứ xung quanh game.

    8 Comments Added

    1. Tanny Tháng Tám 14, 2020 | Trả lời

      Mình đọc hết cái bài, mình vẫn đéo hiểu DirectX nó để dùng làm cái gì mà nó VL quá vợi…

      • Thanh Tháng Tám 14, 2020 |

        Hi bạn, mình là một lập trình viên, do đó mình cũng có 1-2 kiến thức để giải thích sơ cho bạn biết DirectX để làm gì mà khi nó ra mắt nó lại được cho là bomb nguyên tử như trong bài viết vậy.
        Đầu tiên thì mình phải giải thích rằng, máy tính là một công cụ mạnh và phức tạp với con người, thời các cụ, người ta để xây dựng một chương trình máy tính thông qua các cổng logic, vốn là các linh kiện điện tử quy định dòng điện vào ra thế nào, sau này, sự phát triển đi lên thành các bìa đục lỗ và các ngôn ngữ lập trình, tất cả là để con người dễ dàng sử dụng máy tính hơn, còn bản chất, máy tính chỉ quan tâm đến bộ nhớ của nó, chỗ này lưu cái gì, chỗ kia lưu cái gì, chu kỳ tiếp theo, nó phải giá trị của vùng bộ nhớ nào với vùng bộ nhớ nào rồi lưu vào vùng bộ nhớ nào.
        Lập trình phần mềm có một đặc điểm là, trừ khi bạn là những nhà phát triển phần cứng như Intel, AMD hay Nvidia, hoặc đi phát triển OS như Microsoft, Apple hay Linus Torvalds, bạn không phát triển một phần mềm *từ đầu*, tức là bạn không cần quan tâm đến việc quản lý bộ nhớ của bạn thế nào, cao hơn, bạn làm một ứng dụng có giao diện, bạn chỉ cần lập trình về các thao tác giữa các giao diện mà không cần quan tâm CPU của bạn hay GPU của bạn hoạt động ra sao để hiển thị được giao diện đó. Đó là vì, phần lớn các lập trình viên phát triển phần mềm sử dụng các Software development kit (SDK – bộ công cụ phát triển phần mềm) mà DirectX là một trong số đó, nó chứa các Application programming interface (API – giao diện phát triển phần mềm) nhằm đơn giản hóa tối đa quá trình phát triển, từ đó, bạn muốn vẽ một hình tròn, bạn không cần quan tâm đến việc CPU tải thông tin lên GPU của bạn làm sao, GPU cấp bộ nhớ và vẽ hình tròn bạn muốn bằng tập hợp các tam giác như thế nào, việc bạn chỉ cần làm là sử dụng một hàm đã được Microsoft và ATi làm sẵn mà thôi.
        Một trong những lý do DirectX rất quan trọng, là bởi vì, bạn có thể thấy rằng, với các hệ máy console, việc phát triển các SDK cho một hệ máy đơn giản hơn rất nhiều so với PC, vì một chiếc PS4 thì cũng chỉ có 2 bản phần cứng khác nhau, còn PC thì hằng ha sa số các cách có thể kết hợp, như GPU có thể nằm trên chiếc card rời của Nvidia hay AMD hoặc một chiếc GPU tích hợp trong CPU của AMD, làm sao mà lập trình phần mềm một lần mà lại đảm bảo có thể chạy tốt trên mọi chiếc PC là một điều vô cùng xa xỉ vào những năm 1995, và bạn có thể thấy, cho đến 2020 rồi, có phải game nào cũng chạy tốt trên toàn bộ mọi chiếc PC khi ra mắt đâu, dù để lập trình đồ họa trên PC, người ta đã có đến 3 lựa chọn khác nhau từ OpenGL, DirectX đến Vulcan.

      • HuyCrow Tháng Tám 14, 2020 |

        Nói chung là như này.
        Trước DirectX, bạn muốn dùng phần mềm gì, trên phần cứng gì, bạn phải viết câu lệnh hướng phần mềm đó sử dụng tài nguyên của phần cứng đó, khá là rắc rối. (Nếu bạn từng học, sử dụng và chơi game trên MSDoS sẽ hiểu điều này)
        DirectX giúp cho các phần mềm này dễ dàng tương ứng với các phần cứng, vừa giúp các nhà phát triển game dễ thở, vừa tối ưu được việc sử dụng chúng trên các phần cứng. Thay vì khi xưa mỗi phần cứng hoạt động gần như là độc lập, (dữ liệu trên bộ nhớ, hình ảnh trên card hình ảnh, âm thanh card âm thanh, sau đó mới tổng hợp lại nên thời gian lâu), thì DirectX chứa các API giúp cho các phần cứng này có sự tương tác với nhau làm giảm thời gian chạy phần mềm game.

      • Tanny Tháng Tám 14, 2020 |

        Wow, cám ơn các cao nhân đã múa phím giúp tại hạ thoát khỏi bến mê, đa tạ, đa ta :)

    2. Siêu khủng Tháng Tám 14, 2020 | Trả lời

      Tôi đã phải bật cười mỗi khi đọc thông số sau dòng chữ “siêu khủng…..” :)

      • Tanny Tháng Tám 14, 2020 |

        siêu khủng của thời đó

    3. Dino Tháng Tám 16, 2020 | Trả lời

      Vậy DiẻctX khác với engine game như thế nào các bạn ?

      • Bookgrinder Tháng Tám 16, 2020 |

        Nôm na thì game engine là bộ phần mềm chứa công cụ để người ta dựa vào đó làm game, còn direct x là bộ phần mềm để cái game đó chạy được trên phần cứng. Hai cái khác nhau rất xa, như là bản thiết kế xe với bằng lái ấy :D

    Bình Luận