5 phút đọc
Với 653 lượt star và 34 lượt fork trên GitHub, repository afwbkbc/glsmac đang trở thành điểm đến chú ý cho cộng đồng yêu thích thể loại chiến thuật 4X (eXplore, eXpand, eXploit, eXterminate). Viết bằng ngôn ngữ C++, dự án tập trung vào việc xây dựng lại hoàn toàn engine của tựa game kinh điển Sid Meier’s Alpha Centauri (bao gồm cả bản mở rộng Alien Crossfire) trên nền tảng OpenGL và SDL2.

Giải quyết bài toán tương thích và hạ tầng mạng cổ điển
Dù được đánh giá cao trong thể loại 4X, bản gốc của Sid Meier’s Alpha Centauri hiện gặp nhiều rào cản khi vận hành trên các hệ điều hành hiện đại. Tác giả dự án chỉ ra rằng cơ chế chơi mạng ban đầu dựa trên thư viện DirectPlay đã quá cũ kỹ, khiến việc kết nối multiplayer gần như không thể thực hiện mượt mà. Bên cạnh đó, khả năng can thiệp sâu để modding game ở bản gốc bị giới hạn nặng nề.
Dự án GLSMAC giải quyết các vấn đề trên bằng cách viết lại hoàn toàn engine đồ họa và mã nguồn mạng. Về mặt vận hành, GLSMAC yêu cầu người dùng phải sở hữu bản game gốc để tải các tài nguyên như hình ảnh và âm thanh. Hiện tại, bản đóng gói sẵn (prebuilt release) hỗ trợ hai nền tảng là Windows 64-bit và Ubuntu.
Tác giả phân định rõ những phần được giữ nguyên và những thành phần thay đổi hoàn toàn:
- Thành phần giữ nguyên: Mô hình 3D, hình ảnh, video, văn bản, cốt truyện (lore), các phe phái, quy tắc chơi (cây công nghệ, các loại giáp, vũ khí) và giao diện người dùng gốc.
- Thành phần thay đổi hoàn toàn: Engine đồ họa OpenGL/SDL2, mã nguồn mạng (không tương thích với client bản gốc), cơ chế sinh bản đồ ngẫu nhiên, trí tuệ nhân tạo (AI) và hệ thống âm nhạc động. Các logic này được tái thiết lập từ đầu nhằm tiệm cận nhất với bản gốc.
Hệ thống Scripting `.gls.js` và khả năng hỗ trợ Modding
Một nâng cấp quan trọng của GLSMAC là việc chuyển đổi toàn bộ giao diện (UI) và logic trò chơi sang ngôn ngữ script. Dự án sử dụng các tệp script có phần mở rộng .gls.js — một ngôn ngữ đơn giản hóa dựa trên JavaScript, được tối ưu riêng để xử lý các quyết định logic trong game.
Engine chính giao tiếp với các script này thông qua trình xử lý sự kiện (event handlers) và các liên kết (bindings) cụ thể. Nhờ đó, người dùng có thể tùy chỉnh hoặc phát triển mod dễ dàng hơn:
- Các tệp script mặc định được nhúng sẵn vào tệp thực thi (binary) của GLSMAC.
- Nếu xuất hiện thư mục
GLSMAC_datatrong thư mục làm việc, chương trình sẽ ưu tiên đọc và nạp các tệp script bên ngoài này. - Khả năng tương thích mod: GLSMAC hỗ trợ các bản mod thay thế tài nguyên gốc như
.PCXhay.WAV, nhưng không hỗ trợ các bản mod can thiệp trực tiếp hoặc liên kết vào tệpterranx.execủa game gốc. Việc đọc các tệp thiết lập dạng.txtgốc chỉ được hỗ trợ một phần.
Lộ trình phát triển và tiêu chuẩn kiểm duyệt mã nguồn
Tác giả dự án đưa ra lộ trình phát triển chi tiết qua từng cột mốc (milestone):
- v0.1: Hoàn thiện các chức năng engine nền tảng (render, UI, netcode, hệ thống âm thanh).
- v0.2: Các chức năng bản đồ cơ bản (ô tile, sinh bản đồ, tạo/lưu/tải game, render bản đồ).
- v0.3: Chế độ chơi mạng cơ bản (tạo phòng, tham gia phòng, lưu/tải game chơi mạng).
- v0.4: Tiến trình game cơ bản (lượt chơi, các đơn vị Scout Patrols, Formers, Colony Pods; công trình Recycling Tanks; công nghệ Centauri Ecology; căn cứ đất liền; cải tạo đất cơ bản và chiến đấu).
- v0.5 & v0.6: Bổ sung toàn bộ các đơn vị, công trình, công nghệ, cải tạo đất và các điều kiện chiến thắng còn lại của SMAC.
Về chính sách đóng góp (Pull Request), tác giả xác nhận không sử dụng mã nguồn do AI tạo ra. Tuy nhiên, các đóng góp từ cộng đồng chứa mã AI vẫn sẽ được kiểm duyệt theo tiêu chuẩn khắt khe tương đương với mã do con người viết, không có sự ưu ái hay phân biệt.
Đối với các thư viện phụ thuộc (dependencies), tác giả áp dụng chính sách kiểm duyệt thủ công đối với mọi thay đổi phiên bản sau ngày 20/10/2025. Điều này nhằm hạn chế việc cập nhật phiên bản không cần thiết, trừ khi việc nâng cấp giải quyết lỗi cụ thể hoặc mang lại tính năng bắt buộc.
Những điểm còn bỏ ngỏ
Dù đã xác định rõ hướng đi, dự án GLSMAC vẫn còn một số vấn đề chưa có mốc thời gian hoàn thành cụ thể. Khả năng tương thích tệp lưu (save game) và bản đồ từ game gốc hiện được xếp vào nhóm ưu tiên rất thấp. Ngoài ra, các tính năng mở rộng thuộc giai đoạn v2.x trở đi — như bản đồ kích thước lớn hơn, tăng số lượng người chơi tối đa, hệ thống duyệt server trực tuyến hay chế độ chơi long-turn (mỗi người chơi thực hiện 1 lượt/ngày) — chỉ được tập trung phát triển sau khi dự án tái hiện hoàn chỉnh 100% nội dung của bản game gốc.
Nguồn tham khảo: Xem bài gốc