Tâm sự của một nhà lập trình game DOS ở thế kỷ 21

Khách quen

  

“Nó cực kỳ chua” – David Murray chia sẻ cảm xúc về dự án đang thực hiện, không cần nói quá nhiều nhưng hẳn đó là một hành trình khó khăn đối với anh dù cho project Planet X3 gây quỹ thành công với 100.000 USD trên Kickstarter.

“À, khi bạn vướng mắc một vấn đề nào đó dĩ nhiên bạn sẽ vào google gõ abc từ khóa để moi nó ra cho bằng được. Rồi sẽ có một đường link đầy ma mị yêu cầu click vào. Hên thì còn trỏ sang trang web hoạt động xui xui là chuyển hẳn sang 404 hay đại loại thế. Ờ thì tôi phải đối mặt với cái xui kiểu vậy một cách thường xuyên luôn!.”

Murray không giống như đại đa số các nhà thiết kế game hiện nay điều đó thể hiện rất rõ thông qua sản phẩm đầu tay của mình: Planet X2*.

planetx2.png
Planet X2 chạy mượt trên C64

Planet X3 (project đang thực hiện) thuộc thể loại chiến thuật thời gian thực (Real-Time Strategy) được thiết kế dành riêng cho hệ điều hành MS-DOS, một hệ điều hành cũ kỹ thịnh hành vào những năm đầu thập kỷ 80. Và nó cũng là phần tiếp theo của Planet X2.

Murray tự bỏ tài lực của bản thân để phát triển Planet X2, những tưởng sẽ thất bại vì ngay trong tâm trí anh không hi vọng có quá nhiều người yêu thích những game thuộc trường phái “cổ mộ” như này. Nhưng thần may mắn đã mỉm cười với anh, tám trăm bản đã được bán ra vượt xa kỳ vọng sẽ bán được năm trăm bản mà anh dự tính. Đó cũng chính là động lực giúp anh tiến đến thực hiện Planet X3, sản phẩm kỳ này cũng đã nhanh chóng nhận được hai nghìn đơn đặt hàng trên trang Kickstarter. Minh chứng cho thấy vẫn còn một bộ phận khá đông các lão làng yêu thích thể loại game Retro, và,  vậy thì Murrey sẽ phải vật lộn như thế nào với việc phát triển game trên nền tảng đã quá bốn mươi năm tuổi?

“Khai quật kỹ nghệ bị quên lãng”

command-line-dos.png

Khi chúng tôi hỏi thăm về sự khác biệt của việc lập trình game hiện đại với quá khứ, Murray trả lời rằng anh ấy khó lòng đưa ra một đáp án chính xác bởi vì anh chưa hề làm một game tân thời nào cả! (feelbadman)

Anh mô tả quá trình thực hiện Planet X3 không khác biệt so với người tiền nhiệm. Đơn giản là bật Notepad lên, gõ code rồi dùng compiler có tên là A36 convert để có thể chạy trên MS-DOS suôn sẻ. Anh sẽ chạy nó trên một trình giả lập mới nhất và để test thực tế anh copy nó sang dạng đĩa mềm rồi chạy thực sự trên chú Tandy 1000 MS-DOS huyền thoại.

Nói về Planet X3, quá trình thực hiện vẫn diễn tiến rất tốt vì Murray đã thực hiện được 75% tiến độ công việc. Dĩ nhiên công việc đấy không hề dễ dàng chút nào. Đây là lần đầu tiên Murray đụng đến MS-DOS và thông tin hữu ích trên google gần như là zero. Cuối cùng thì Murray phải nhờ đến sự giúp đỡ trực tiếp của Jim Leonard – một chuyên gia lập trình trên hệ thống máy tính cũ.

 

“Lập trình DOS là điều kinh khủng ở thời điểm này”. “Tôi dám chắc mình sẽ không thể nào tìm thấy một nửa con đường còn lại để phát triển game trên DOS nếu như không có sự cố vấn nhiệt tình đến từ phía Jim Leonard”

Jim cũng bị vướng phải một số vấn đề, điển hình nhất có thể kể đến chuyện tải game từ trên internet. Anh ta gợi ý phát hành game theo hai dạng đĩa mềm là : 720KB (3.5 inch) và 360KB (5.25 inch) trong khi dung lượng X3 được Murray tính toán là quá khổ so với chúng. Không những vậy, Jim cũng muốn lập trình hiển thị đồ họa VGA** song song với CGA** mà VGA lại chiếm nhiều bộ nhớ hơn hẳn CGA.

“Planet X3 không thể nào chạy chế độ VGA thông qua đĩa loại 360KB, do đó ý tưởng hiển thị VGA trên loại đĩa 360KB ta sẽ loại bỏ”. “Hầu hết các đời máy có đầu đĩa kích cỡ 5.25 inch cũng chỉ có thể đọc loại đĩa 360KB và nó cũng không hỗ trợ hiển thị VGA”- Jim nhấn mạnh.

Murray cũng tìm kiếm một cách nén để tháo gõ nút thắt mang tên dung lượng. Anh tìm ra một số phần mềm nguồn mở giúp nén dung lượng map từ 32KB còn 6KB cho mỗi map khiến cho nó vừa khít trên mỗi đĩa (clap* clap*)

CGA-mode-x3.png

Planet X3 hiển thị chế độ màu CGA

Nhưng mà câu chuyện hiển thị VGA vẫn gây đau đầu cho hai kỹ sư lập trình. Để hiển thị VGA, yêu cầu tiêu tốn 64KB VRAM khác xa với 16KB VRAM mà Murray đã thực hiện trước đó.

“Tôi phải tiến hành dịch chuyển dữ liệu VRAM ra một vị trí khác trên RAM. Đồng thời phải đảm bảo được những thông tin lưu trữ trên đó không bị xáo trộn”. Đối mặt với vấn đề trên, Murray buộc lòng hoàn thiện đầy đủ chuẩn hiển thị đồ họa khác trước khi đụng đến cục đá tảng VGA. Như vậy, Murray gần như có hai phiên bản mã nguồn khác nhau.

Vấn đề khó khăn tiếp đến là khả năng thực thi trên các dòng máy cổ. Murray tiến hành cho chạy trên chiếc IBM 5150 – dòng này được xem là phổ biến nhất hoạt động mượt mà với DOS, kết quả cho thấy X3 hiển thị CGA rất ổn. Trục trặc bắt đầu đến khi tay kỹ sư cho X3 chạy trên một số máy clone*** khác. Lúc này màu CGA không còn hiển thị như kỳ vọng, Murray cũng cho biết anh không hề tìm thấy lý do từ bất kỳ nguồn kiến thức còn tồn đọng trên internet.

Không còn cách nào khác, Murray tự tay test nguyên lý màu sắc và cuối cùng anh tìm ra được mấu chốt đến từ việc xoay vòng bảng màu. Mọi thứ sẽ được giải quyết nếu dịch các điểm pixel nhập thành một và anh thêm tính năng  “hợp nhất pixel” là một option của game.

“Nếu nước có màu đỏ và cỏ có màu xanh lam thì ta chỉ cần bật tính năng dịch pixel chúng sẽ giúp tinh chỉnh màu sắc tốt hơn.”
“Trên giả lập mọi thứ đều hoàn hảo cho đến khi tôi chạm đến phần cứng thật sự…” – Murray chia sẻ.

VGA-mode-x3.png

Còn đây là X3 với sức mạnh của VGA

Hẳn sẽ có nhiều bạn nghĩ rằng vì sao Murray phải tiến hành sửa chữa để chạy tốt trên máy thật. Anh hoàn toàn có thể kiếm tiền dễ dàng thông qua các phiên bản tải về trực tuyến, chúng chạy mượt mà trên giả lập rồi còn gì. Bởi vì đó là một phần của gây quỹ Kickstarter, trên thực tế đa số những người ủng hộ dự án của Murray đều mong muốn anh cho ra mắt một sản phẩm chạy tốt trên đời máy cổ. Một số ít ( thấp hơn 10%) là chấp nhận việc tải về trực tuyến  mà thôi.


“Có rất nhiều người mong muốn được sở hữu đĩa chơi game và một số thứ linh tinh đính kèm trong hộp nguyên zin. Dù rằng chẳng mấy ai dùng đến chúng đâu nhưng họ vẫn muốn chúng, đơn giản là vì những cái đĩa ấy mang đến  cảm giác sở hữu giá trị đích thực của game.”

Khi tiếp nhận câu hỏi về cảm xúc của bản thân lúc code trên nền tảng phần cứng / phần mềm lỗi thời, anh tỏ ra rất thích thú với sự trở lại của Planet X2 trên DOS. Anh nói rằng Planet X3 thực ra cũng chỉ là một phiên bản X2 được port lên hệ điều hành DOS NHƯNG với một dung lượng RAM “dồi dào” đã trợ lực cho việc phát triển thêm một số tính năng thú vị cho phiên bản “tiền truyện”


Murray nhấn mạnh ở phiên bản X3, người chơi sẽ “cảm”  tốt hơn vì phần giao diện đã tinh chỉnh lại và cách bày bố trận đấu chắc chắn sẽ mang đến sự khác biệt. Bởi vì giờ đây người chơi sẽ tùy biến cách xây nhà. X3 cho phép chọn một vùng đất để xây thay vì phải dính cứng với vị trí của “nông dân” như X2.

Dẫu là một chuyến hành trình vừa dài vừa khổ, Murray vẫn tiếp tục kiên trì cho đến ngày phát hành vốn đã ấn định từ trước. Hai nghìn bản sớm được đặt trước cửa nhà người hâm mộ vào tháng Năm năm tới thôi. Thật tuyệt khi chúng ta lại biết thêm một dị nhân.  Bất chấp hệ máy gì đang bán chạy, xu hướng chơi game hiện đại như nào, ở đâu đó trên địa cầu vẫn luôn tồn tại những gã “tinker” chăm chỉ làm việc để thực hiện đam mê của bản thân như David Murray a.k.a 8-bit guy. <— Click vào link để dẫn đến trang youtube của nhân vật chính.

* Planet X2 thì chạy trên hệ máy Amiga Commodore 64 – còn gọi là 8-bit computer, con này ra mắt vào năm 1982 nhằm cạnh tranh với IBM PC xuất hiện trước đó một năm.

** VGA (Video Graphic Array), CGA (Color Graphic Adapter) là hai chuẩn hiển thị đồ họa máy tính ở màn hình thế hệ cũ. Ngoài ra còn có EGA (Enhanced Graphic Adapter) và SVGA ( Super Video Graphic Array). Đối với những ai từng chơi nhiều DOS game ắt hẳn sẽ không quên những setting đầu game chọn lựa chế độ hiển thị thân quen này.

*** Thuật ngữ clone có lẽ rất quen thuộc với dân kỹ thuật, máy clone cũng có thể hiểu như hàng đạo nhái, tùy vào từng sản phẩm có cái xịn cái dỏm khác nhau nhưng chung quy đều khó bằng hàng thật (ở thời điểm lúc đó). Đùa chứ với công nghệ hiện tại thì một số máy handheld hoặc console clone có chất lượng cao hơn hẳn so với mấy ông tổ kia rồi

Nguồn: https://www.gamasutra.com/view/news/320530/Meet_the_dev_making_his_first_DOS_game__in_2018.php?elq_mid=85651&elq_cid=23274879

Gửi bài cho HSBT!

Không cần là một người viết chuyên nghiệp, không cần văn trên 7 điểm. Tất cả những gì chúng tui cần là các bạn cứ thoải mái tâm sự về tựa game bạn yêu thích. Bài viết của bạn sẽ được đăng trên website với hơn 150.000 lượt xem mỗi tháng.

Trò chuyện