3 điểm bởi GN⁺ 2024-02-27 | 1 bình luận | Chia sẻ qua WhatsApp

Thiết lập hệ thống tệp

  • Tạo hai thư mục cần ổ đĩa DOS để biên dịch mã nguồn Wolfenstein 3D.

Tải xuống

  • Tải trình biên dịch Borland C++ 3.1, mã nguồn Wolfenstein 3D và các tệp VGA.

Giải nén

  • Giải nén các tệp đã tải xuống.

DosBox

  • Tải xuống và khởi động DosBox.

Gắn hệ thống tệp

  • Gắn hệ thống tệp để gán thư mục cho từng ổ đĩa.

Cài đặt trình biên dịch

  • Tiến hành quá trình cài đặt Borland C++ 3.1.

Cài đặt mã nguồn Wolfenstein 3D

  • Giải nén mã nguồn trên hệ thống đã cài trình biên dịch.

Bắt đầu biên dịch

  • Khởi động Borland C++ 3.1, mở dự án, thiết lập thư mục rồi thử biên dịch.
  • Xuất hiện lỗi thiếu tệp thực thi TASM, sau đó thiết lập PATH và biên dịch lại.
  • Để khắc phục lỗi liên kết thất bại, chỉnh sửa đường dẫn tệp đối tượng trong dự án rồi biên dịch thành công.

Lấy asset

  • Để có asset của game, tải phiên bản chia sẻ của Wolfenstein 3D hoặc mua bản đầy đủ.
  • Cài đặt game trong DosBox rồi sao chép tệp thực thi đã biên dịch vào thư mục game.

Chạy game

  • Thử chạy game, nhưng màn hình hiển thị bất thường do vấn đề chỉ mục tệp đồ họa.
  • Để khắc phục, thay các tệp asset VGA bằng các tệp được tạo lại để khớp với mã nguồn.

Framebuffer VGA và tỷ lệ khung hình màn hình

  • Điều chỉnh tùy chọn tỷ lệ khung hình màn hình của DosBox để giống với màn hình game gốc năm 1992.

Ý kiến của GN⁺

  • Bài viết này mô tả quá trình biên dịch trò chơi cổ điển Wolfenstein 3D trên hệ thống hiện đại. Đây có thể là nội dung thú vị với các kỹ sư phần mềm mới vào nghề quan tâm đến phát triển game retro.
  • Bài viết cho thấy cách làm cho mã cũ hoạt động trở lại bằng trình biên dịch và trình giả lập lỗi thời, qua đó nhấn mạnh tầm quan trọng của việc bảo tồn giá trị lịch sử của phần mềm và phục vụ học tập.
  • Nó mang đến cho các nhà phát triển hiện đại cơ hội hiểu phần mềm trong quá khứ và từ đó có được góc nhìn sâu sắc hơn về sự phát triển của công nghệ hiện nay.
  • Ở góc nhìn phê phán, quá trình này tốn nhiều thời gian và đôi khi có thể gặp các vấn đề không tương thích với môi trường phát triển hiện đại.
  • Để áp dụng kỹ thuật này, cần có khả năng hiểu và chỉnh sửa mã nguồn của game cổ điển.
  • Lợi ích của việc chọn cách tiếp cận này là có thể học được kỹ thuật phát triển game trong quá khứ, còn cái giá phải trả là phải giải quyết các vấn đề tương thích với môi trường phát triển hiện đại.

1 bình luận

 
GN⁺ 2024-02-27
Ý kiến trên Hacker News
  • Gợi ý sách về Wolfenstein 3D

    Một cuốn sách về Wolfenstein 3D mang tính kỹ thuật nhưng không hề nhàm chán, giới thiệu rất nhiều mẹo và cách tối ưu kiểu trường phái cũ. Nội dung gồm 64 hàm để scale texture tường, cách lưu sprite theo kiểu "nằm ngang", quản lý card đồ họa phức tạp, và cả việc hack graphics mode để có thể hiển thị game.

  • Niềm vui với các hệ thống retro

    Các hệ thống retro có cái thú là có thể gom các công cụ lại rồi dựng lại mọi thứ. Ví dụ, để biên dịch lại game Uplink thì chỉ cần Visual Studio 6.0. Kho lưu trữ phát triển có sẵn toàn bộ dependency cần thiết để build game, nên dù mất chút thời gian chỉnh sửa dependency, cuối cùng game vẫn chạy tốt. Còn sửa thêm vài lỗi nhỏ và cải tiến lặt vặt ở đây ở đó.

  • Nỗi nhớ giao diện văn bản trên DOS

    Nhớ giao diện văn bản chạy trên DOS. Gợi lại thời kỳ đáng tin cậy khi vẫn dùng PS/2 cho tới tận năm 1997.

  • Trải nghiệm học lập trình với Borland Turbo C++

    Từng học lập trình bằng Borland Turbo C++. Việc gọi các hàm hình học để vẽ lên màn hình rất dễ. Sau khi vẽ hình, có thể dùng hàm xor để tạo hoạt ảnh. Thật tuyệt khi chỉ với 1000 dòng mã C++ đã tạo được một sprite nhỏ trông như đang chạy. Cùng bạn bè làm ra một game phong cách Final Fantasy bằng các mẹo này, các sprite vẽ thủ công và một thế giới game có thể đi lại trong đó.

  • Đọc sách về những người tạo ra Doom

    Đọc cuốn sách "Master of Doom", và nhận ra rằng dù game thời đó đã rất hấp dẫn, nhưng khi nhìn lại lịch sử thì còn được truyền cảm hứng hơn bởi những gì một vài người trẻ tuổi đã tạo ra.

  • Gợi ý sách về phát triển game

    Một cuốn sách tuyệt vời khiến người ta nghĩ lại về việc phát triển game thời kỳ trước. Đã đọc hết sách khi đứng chờ xếp hàng trong một nhà hàng vài năm trước.

  • Ký ức về việc đổi đĩa mềm khi không có ổ cứng

    Cài vào ổ C là một sự xa xỉ. Không có ổ cứng nên phải thay đĩa mềm qua lại giữa ổ A và B. Đã rất thích thời đó, nhưng trẻ con ngày nay thì chẳng tin nổi những câu chuyện như vậy.

  • Ký ức ngọt ngào về IDE MS-DOS của Borland

    Borland C++ là một IDE chỉ khoảng 5 megabyte nhưng chứa cả trình biên dịch C++, thư viện chuẩn và debugger; bộ màu vàng và xanh dương đặc trưng của Borland mang lại cảm giác rất ấm cúng.

  • Liên kết liên quan

    Cung cấp liên kết liên quan tới bài viết có tiêu đề "Let's compile like it's 1992 (2014)". Bài này được đăng trên Hacker News vào tháng 2 năm 2017 và có 80 bình luận.