Giải mã thành công máy chủ demo Ultima Online 1998 sau 10 năm nỗ lực
Sau 10 năm làm việc kiên trì, một nhà phát triển đã hoàn thành việc giải mã hoàn toàn máy chủ demo Ultima Online bản năm 1998. Dự án đã dịch chuyển khoảng 5.000 hàm từ mã nhị phân sang C99, sửa lỗi và khôi phục các tính năng đã mất như hệ sinh thái trong tựa game MMORPG kinh điển này.

Giải mã thành công máy chủ demo Ultima Online 1998 sau 10 năm nỗ lực
Ultima Online (UO), phát hành năm 1997 bởi Origin Systems Inc., được coi là một trong những tựa game MMORPG thành công về mặt thương mại đầu tiên trong lịch sử ngành công nghiệp game. Vào tháng 10 năm 1998, bản mở rộng "The Second Age" đã đi kèm một bản demo độc lập (UoDemo.exe) chứa cả máy khách và mã nguồn máy chủ chạy trên Windows.
Màn hình Ultima Online
Mới đây, sau 10 năm làm việc kiên trì, một kỹ sư phần mềm có biệt danh Draxinar đã công bố thành quả giải mã hoàn toàn (reverse-engineering) máy chủ demo này. Dự án, được đặt tên là "ouo", đã dịch chuyển khoảng 5.000 hàm từ mã nhị phân MSVC x86 sang ngôn ngữ C99 di động, tạo ra một bản sao gần như hoàn hảo của máy chủ gốc năm 1998.
Quy trình giải mã và tái tạo
UoDemo.exe ban đầu được biên dịch bằng Microsoft Visual C++ 5.0. Để thực hiện dự án này, tác giả đã sử dụng công cụ radare2 để tháo dám (disassemble) mã nguồn. Tên các ký hiệu (symbol) được suy luận từ phiên bản thử nghiệm của máy khách UO trên Linux.
Mỗi hàm được dịch thủ công sang C99, đảm bảo giữ nguyên luồng điều khiển, bố cục cấu trúc (struct) và các nhánh rẽ như mã nhị phân gốc. Để xác minh tính chính xác, mã C được biên dịch lại và so sánh từng chỉ lệnh với bản gốc. Một hàm chỉ được đánh dấu hoàn thành khi hai phiên bản khớp nhau hoàn toàn.
Quá trình phân tích mã nguồn
Một trong những thách thức lớn nhất là xác định đúng phân cấp lớp (class hierarchy) của đối tượng trong mã gốc C++: CEntity -> CResourceEntity -> CItem -> CContainer -> CMobile -> CPlayer. Việc nắm bắt đúng cấu trúc này là chìa khóa để dịch chuyển phần còn lại của mã nhị phân một cách chính xác.
Những phát hiện và cải tiến
So với mã gốc, dự án này đã sửa chữa nhiều vấn đề về độ ổn định (sự cố máy chủ, tràn bộ nhớ) và lối chơi. Đáng chú ý, một số tính năng bị "cắt" trong bản demo như hệ thống sinh quái (spawn system) hay hệ thống phân hủy (decay system) thực ra vẫn còn nằm trong mã nhưng không được gọi. Tác giả đã kết nối lại các chức năng này để chúng hoạt động bình thường.
Hơn nữa, hệ sinh thái (ecology system) nổi tiếng nhưng đã bị loại bỏ của UO vẫn còn ẩn giấu trong mã nguồn. Tác giả đã khôi phục lại hệ thống thú săn/mồi/con ăn xác thối (predator/prey/scavenger), cho phép người chơi nhìn thấy sói đuổi thỏ hay quạ ăn xác vật phẩm.
Dự án cũng bổ sung các kỹ năng mới như Thiền định (Meditation), Lén lút (Stealth) và Gỡ bẫy (Remove Trap), vốn được thêm vào sau này nhưng đã có dấu hiệu trong mã gốc. Máy chủ hiện đã hỗ trợ các phiên bản máy khách từ 1.25.30 đến 5.0.9.1 (năm 2007) và có thể chạy trên kiến trúc 64-bit.
Mã nguồn và dữ liệu của dự án đã được công bố mã nguồn mở trên GitHub. Tác giả cũng kêu gọi cộng đồng Ultima Online chia sẻ các tệp dữ liệu máy chủ gốc (như dynamic0.mul) từ giai đoạn 1997-2003 để hoàn thiện hơn nữa việc tái tạo thế giới ảo kinh điển này.
Bài viết liên quan

Công nghệ
Tổng hợp thị trường M&A an ninh mạng: 33 thương vụ được công bố trong tháng 4/2026
04 tháng 5, 2026

Công nghệ
Tái tạo hiệu ứng chữ Retro nhiều nét vẽ (Multi-stroke) chỉ với CSS
06 tháng 5, 2026

Công nghệ
Khi nội dung rác của AI đe dọa giá trị con người: Bài học từ làng thủ công đan móc
06 tháng 5, 2026
