- Mã nguồn của các game phiêu lưu văn bản thập niên 1980 Zork I·II·III đã được công bố theo giấy phép MIT, cho phép bất kỳ ai học tập, nghiên cứu và chạy thử
- Microsoft OSPO, Team Xbox và Activision đã hợp tác với mục tiêu bảo tồn mã nguồn lịch sử và phục vụ giáo dục
- Kho lưu trữ được công bố bao gồm mã nguồn, ghi chú build, chú thích và tài liệu liên quan, đồng thời loại trừ nhãn hiệu và tài sản thương mại
- Người dùng có thể tự chạy game trên môi trường cục bộ thông qua trình biên dịch ZILF và trình thông dịch Z-Machine
- Đợt công bố này là một bước đi mang tính biểu tượng nhằm bảo tồn game và lan tỏa văn hóa mã nguồn mở, cho thấy sự kết hợp giữa sáng tạo và công nghệ có thể bền bỉ qua nhiều thế hệ
Tổng quan về việc công bố mã nguồn mở Zork
- Open Source Programs Office (OSPO) của Microsoft, Team Xbox và Activision đã hợp tác để phát hành Zork I, II, III theo giấy phép MIT
- Mục tiêu là để sinh viên, giáo viên và lập trình viên có thể học tập, nghiên cứu mã nguồn và trực tiếp chơi thử
- Đây là đóng góp dưới hình thức bổ sung MIT LICENSE chính thức vào kho historical source hiện có trên GitHub
- Đợt công bố lần này tập trung vào bảo tồn lịch sử game và lan tỏa giá trị giáo dục
Nền tảng kỹ thuật của Zork
- Zork là trò chơi xây dựng thế giới chỉ bằng văn bản, không có đồ họa hay âm thanh, và đã tạo ra thay đổi lớn trong cách thiết kế game thời bấy giờ
- Công nghệ cốt lõi là đặc tả máy ảo mang tên Z-Machine, cho phép cùng một tệp truyện chạy trên nhiều nền tảng
- Nhờ cấu trúc này, Zork được đánh giá là một trong những game đa nền tảng đầu tiên chạy trên Apple II, IBM PC và nhiều nền tảng khác
- Do phiên bản mainframe ban đầu quá lớn so với máy tính gia đình, Infocom đã chia nó thành ba game độc lập (Zork I~III)
Bảo tồn mã nguồn và cấu trúc kho lưu trữ
- Microsoft đã hợp tác với Jason Scott của Internet Archive để bổ sung giấy phép mã nguồn mở chính thức vào kho Zork hiện có
- Mỗi kho bao gồm những nội dung sau
- Mã nguồn của Zork I·II·III
- Ghi chú build, chú thích và tài liệu lịch sử liên quan
- MIT LICENSE.txt và metadata của kho
- Phạm vi công bố chỉ giới hạn ở mã nguồn; nhãn hiệu, gói thương mại và tài liệu marketing không được bao gồm
Cách chạy Zork
- Zork hiện vẫn được phân phối thương mại qua The Zork Anthology của Good Old Games (GOG)
- Nếu muốn tự chạy, có thể dùng ZILF (do Tara McGrew tạo ra) để biên dịch tệp ZIL thành tệp thực thi Z3, sau đó chạy bằng trình thông dịch Z-Machine
- Ví dụ lệnh:
"%ZILF_PATH%\\zilf.exe" zork1.zil
"%ZILF_PATH%\\zapf.exe" zork1.zap zork1-ignite.z3
- Ví dụ công cụ chạy: Windows Frotz, Fic (triển khai CLI dựa trên Python)
- Có nhiều trình chạy Z-Machine cho các nền tảng khác nhau nên khả năng tiếp cận khá cao
Kế hoạch tiếp theo và ý nghĩa
- Kho lưu trữ lịch sử hiện có của Zork sẽ tiếp tục được giữ làm chuẩn cho nguồn chính thức, và sau khi áp dụng giấy phép MIT, dự án hoan nghênh đóng góp và đề xuất cải tiến
- Mục tiêu không phải hiện đại hóa mà là bảo tồn như một không gian cho khám phá và giáo dục
- Đợt công bố này cũng thể hiện lời cảm ơn tới sự hợp tác của các nhà phát triển Infocom, Internet Archive và các nhóm Microsoft·Xbox·Activision
- Zork được xem là một ví dụ mang tính biểu tượng cho thấy sự kết hợp giữa trí tưởng tượng và kỹ thuật có thể tiếp nối qua nhiều thế hệ
1 bình luận
Ý kiến trên Hacker News
Vào đầu những năm 1980, khi tôi khoảng 14 tuổi, tôi đã chơi Zork cùng một người bạn và nghĩ rằng bọn tôi cũng nên tự làm game
Vì thế, chúng tôi đã viết thư cho Infocom, đề nghị họ cho phép dùng ZIL và Z-machine để làm một trò chơi mới, và thật bất ngờ là chúng tôi đã nhận được một lá thư từ chối rất lịch sự
Nghĩ lại bây giờ, với vốn hiểu biết chỉ có BASIC và hợp ngữ khi đó, có lẽ bọn tôi cũng không thể làm nổi game bằng ZIL
Dù vậy, tôi vẫn rất ấn tượng với thái độ tôn trọng bọn trẻ của công ty. Giá mà tôi vẫn còn giữ lá thư ấy
Tiếc là lá thư đó đã bị thất lạc trong những lần chuyển nhà, hoặc có khi đã bị grue ăn mất rồi
Nhưng vì không có thiết kế game rõ ràng nên tôi dần mất hứng. Các câu đố cũng thường đòi hỏi kiểu “lóe sáng cảm hứng” hơn là logic, nên tôi hay bỏ cuộc khá sớm
Tôi và một người bạn còn nghịch thêm tự động vẽ bản đồ và vài tính năng đồ họa đơn giản, và đúng là những trò nhỏ như thế đã giúp nuôi dưỡng trí tò mò rất nhiều
Tin này khiến tôi xúc động nổi da gà. Zork và các game của Infocom chính là cánh cửa đưa tôi vào thế giới game, và cũng là những trò tôi chơi đầu tiên trên Commodore 64
Tôi muốn gửi lời cảm ơn tới tất cả những người đã tạo ra các trò chơi này. Chúng thực sự đã mang lại niềm vui và ý nghĩa cho cuộc sống của rất nhiều người
Chia sẻ liên kết trực tiếp tới kho GitHub của Zork1
Tôi tò mò vì sao Microsoft lại nắm quyền sở hữu Zork
Trước đây tôi đã thấy cái gọi là ‘mã nguồn Zork’ ở nhiều nơi, chẳng hạn như kho này. Tôi tò mò về mối quan hệ nguồn gốc giữa chúng
Sau đó các nhà phát triển lập công ty và khi chuyển nó sang máy vi tính, họ đã tạo ra một ngôn ngữ mới là ZIL cùng một máy ảo, rồi phát hành game thành ba phần
Thứ bạn liên kết là phiên bản MDL gốc, còn đợt công bố lần này là phiên bản ZIL
Mã nguồn đã được chuyển đổi qua nhiều phiên bản từ MDL → FORTRAN → f77 → C trong giai đoạn những năm 80–90, nên vì thế bản C trông khá không chuẩn hóa
Khi Infocom đóng cửa, các nhân viên đã mang theo bản sao lưu, và một phần trong số đó bị rò rỉ, khiến mã nguồn ZIL được công khai từ năm 2019
Lần này Microsoft chỉ đơn giản là dọn dẹp quyền pháp lý cho ba game Zork mà thôi
Ở MIT, họ hẳn đã phát triển trên môi trường DEC-10 hoặc Multics, rồi sau đó khi Infocom ra đời thì chuyển sang Apple II hoặc hệ thống CP/M
Khi đó Colossal Cave Adventure đang rất nổi tiếng, và các nhà phát triển ở MIT đã phát triển thêm ý tưởng đó
Tôi tò mò không biết ai sẽ là người đầu tiên port sang Arduino + LCD
Tôi lại càng tò mò hơn về việc Microsoft đã sở hữu thứ này như thế nào
Phiên bản MDL gốc vốn đã được công khai từ lâu, nên tôi hy vọng Microsoft có thể sẽ công bố cả những game Infocom khác nữa
Và nếu nói đến “tác phẩm đã thay đổi cách tư duy về game” thì thực ra ADVENTURE mới là khởi đầu. Zork tinh tế hơn nhiều, nhưng vẫn là tác phẩm kế thừa cùng dòng đó
Tôi thích chạy Zork bằng Docker
Có thể chơi ngay bằng lệnh
docker run -it clockworksoul/zork1Trong kho historicalsource có tập hợp mã của nhiều trò chơi Infocom
Phần lớn không hẳn là mã nguồn mở hoàn chỉnh, nhưng vẫn là một kho tư liệu cực kỳ tuyệt vời
“It is pitch black. You are likely to be eaten by a grue.” — trích dẫn câu nói nổi tiếng của Zork
mordenstar.com/zork
Cảnh này cũng xuất hiện trong bài “It Is Pitch Dark” của MC Frontalot
Nhân tiện, bài đó có sự tham gia của Steve Meretzky