Máy chủ web hỗ trợ multiplayer LAN 100% ngoại tuyến cho AoE 1, 2, 3 DE
(github.com/luskaner)- Age LAN Server là máy chủ web và launcher cho phép dùng lobby multiplayer của dòng game Age of Empires ngay cả khi không có kết nối Internet tới máy chủ game chính thức, nhằm duy trì chức năng lobby cả khi máy chủ chính thức bảo trì hoặc ngừng hoạt động
- Các game được hỗ trợ gồm Age of Empires: Definitive Edition, Age of Empires II: Definitive Edition, Age of Empires III: Definitive Edition, Age of Empires IV: Anniversary Edition, Age of Mythology: Retold; hiện AoM: RT chỉ hỗ trợ bản Steam
- Các tính năng chung gồm scenario, truyền map trong lobby, khôi phục trận đấu, data mod, chat lobby, cross-play Steam·Xbox; tùy game còn có thêm spectate, mời vào lobby, chia sẻ link, tìm người chơi, co-op campaign, rematch, channel, whisper, group
- Máy chủ nhận các yêu cầu API của game và tái hiện bề mặt API tối thiểu cần cho hoạt động của lobby; dữ liệu không được lưu lại hoặc gửi ra Internet
- Để chơi 100% ngoại tuyến cần một launcher tùy chỉnh để vượt qua các ràng buộc kết nối Internet và Steam hoặc Xbox Live mà game yêu cầu; các tính năng như matchmaking, achievement, leaderboard, clan, tích hợp bạn bè thì chưa được triển khai hoặc bị hạn chế
Mục đích và phạm vi hỗ trợ của Age LAN Server
- Age LAN Server trước đây có tên là AoE 2 DE LAN Server, là máy chủ web và launcher cho phép chơi trong lobby multiplayer mà không cần kết nối Internet tới máy chủ game
- Không bị giới hạn nghiêm ngặt chỉ cho LAN
- Mục tiêu là vẫn có thể dùng chức năng multiplayer của game ngay cả khi máy chủ chính thức đang bảo trì hoặc đã ngừng hoạt động vĩnh viễn
- Để chơi hoàn toàn ngoại tuyến cần một launcher tùy chỉnh để vượt qua các ràng buộc chỉ-online mà game áp đặt
- Tùy nền tảng và phiên bản, có thể có ràng buộc kết nối Internet cũng như Steam hoặc Xbox Live
- Dự án riêng ageLANServerLauncherCompanion cung cấp thông tin và tệp cho việc tải Steam Emulator cũng như chơi 100% ngoại tuyến
Game được hỗ trợ
- Các game được hỗ trợ như sau
-
Age of Empires: Definitive Edition
-
Age of Empires II: Definitive Edition
-
Age of Empires III: Definitive Edition
-
Age of Empires IV: Anniversary Edition
- Age of Mythology: Retold
- Age of Mythology: Retold hiện chỉ hỗ trợ bản Steam
-
Tính năng được cung cấp và khác biệt theo từng game
- Các tính năng chung gồm có
-
Scenario
- Truyền map trong lobby
- Khôi phục trận đấu
- Data mod
- Chat lobby
- Cross-play giữa Steam và Xbox
- AoE II: DE, AoE III: DE, AoE IV: AE, AoM: RT hỗ trợ thêm các tính năng bổ sung
- Tính năng spectate, bao gồm CapturAge cho AoE II: DE
- Mời vào lobby
- Chia sẻ liên kết lobby
- Tìm người chơi
- AoE II: DE và AoE III: DE hỗ trợ co-op campaign và rematch
- AoE II: DE hỗ trợ channel và whisper
- AoE III: DE và AoE IV: AE hỗ trợ group
- AoM: RT hỗ trợ whisper và Arena of the Gods
-
Hạn chế và tính năng chưa triển khai
- Các hạn chế chung như sau
- Tính năng tham gia lobby game bằng liên kết chỉ hoạt động khi game đã được chạy sẵn
- Đăng ký online mode chỉ hoạt động khi dùng launcher chính thức
- Không có tích hợp bạn bè giữa Xbox và Steam
- Trong AoE III: DE và AoE IV: AE, danh sách bạn bè hiển thị mọi người dùng online như thể đều là bạn bè
- Trong AoM: RT, danh sách bạn bè cũng hiển thị mọi người dùng online như thể đều là bạn bè
- Arena of Gods của AoM: RT có cơ chế hoạt động riêng
- Không nhận được phần thưởng
- Mọi blessing và rarity đều được mở khóa sẵn mặc định, bao gồm cả những mục không thể dùng trên máy chủ chính thức
- favor stash là vô hạn
- Story mode mở khóa sẵn toàn bộ mission
- Challenge mode có mạng vô hạn, truy cập được mọi legend, và level mặc định là mức tối đa 99
- Các tính năng chưa triển khai gồm
- Matchmaking chưa được triển khai do lượng người dùng hạn chế và tính chất máy chủ tạm thời; khuyến nghị dùng máy chủ chính thức
- Achievement phải do máy chủ chính thức xử lý; nếu đáp ứng điều kiện achievement trong trận có thể phát sinh vấn đề
- Leaderboard sẽ hiển thị trống
- Clan sẽ coi mọi người chơi là ngoài clan, phần duyệt clan sẽ trống, và tạo clan luôn báo lỗi
- Chặn người chơi trong lobby có vẻ như hoạt động nhưng thực tế không hoạt động
- Báo cáo và chặn người chơi có vẻ như hoạt động nhưng thực tế không hoạt động
- Phần lớn các mục chưa triển khai này không áp dụng cho Age of Empires: Definitive Edition
Cách hoạt động
- Máy chủ là một web server đơn giản nhận các yêu cầu API từ game
- Chỉ tái hiện phần bề mặt API tối thiểu cần để chức năng lobby hoạt động
- Dữ liệu không được lưu trữ hay gửi ra Internet
- Launcher giúp việc chơi qua lobby trở nên dễ dàng, đồng thời vẫn cho phép tiếp tục dùng launcher chính thức để chơi online
- Tính năng của launcher gồm
- Tự động khởi động·dừng máy chủ hoặc kết nối tới máy chủ có sẵn
- Trừ AoE I, có thể chọn dùng thư mục metadata tách biệt để tránh các vấn đề tiềm ẩn với game chính thức
- Chỉnh sửa file hosts để chuyển hướng các yêu cầu API của game tới máy chủ LAN
- Proxy một phần các yêu cầu CDN để tránh cơ chế phát hiện trạng thái game chính thức
- Proxy yêu cầu cho chat và hiển thị tên người dùng
- Cài đặt chứng chỉ tự ký để game có thể kết nối tới máy chủ LAN
- Trừ AoE I và AoE IV, thêm chứng chỉ vào kho chứng chỉ của game
- Thực thi các lệnh tùy chỉnh để thiết lập·khôi phục
- Trên Windows, rebroadcast battle server qua các network interface khác ngoài interface có độ ưu tiên cao nhất
- Tự động dò tìm và chạy game
- Sau đó launcher hoàn tác các thay đổi để launcher chính thức có thể kết nối lại với máy chủ chính thức
Yêu cầu hệ thống và điều kiện phía client
- Môi trường được hỗ trợ ổn định cho máy chủ như sau
- Windows 7 hoặc tương đương, khuyến nghị Windows 10 trở lên
- Linux kernel 3.2
- macOS Monterey v12
- Tùy hệ điều hành và cấu hình, có thể cần quyền quản trị hoặc cho phép qua tường lửa để lắng nghe HTTPS cổng 443
- Môi trường hỗ trợ thử nghiệm cho máy chủ là BSD, Solaris, AIX
- Launcher và Battle Server Manager hỗ trợ các môi trường sau
- Môi trường Windows không phải S edition/mode
- Windows 7 x86-64, khuyến nghị Windows 10 trở lên
- Windows 11 ARM
- Linux kernel 3.2 trên x86-64 và ARM64
- Nếu launcher phải xử lý file hosts, chứng chỉ cục bộ hoặc launcher game tùy chỉnh cần nâng quyền thì sẽ cần đặc quyền quản trị
- Client dùng bản Steam hoặc Xbox của từng game
- Bản Xbox chỉ áp dụng trên các bản Windows tương thích
- AoM: RT yêu cầu bản Steam
- Rất khuyến nghị dùng bản mới nhất hoặc hơi cũ một chút; các bản quá cũ có lỗi đã biết
Binary và xác minh
- Binary của máy chủ và launcher được cung cấp cho một số hệ điều hành được hỗ trợ tại releases page
- Các gói phát hành được chia thành full, launcher, Battle Server Manager, server
- Trên Windows, phần mềm diệt virus có thể nhận nhầm một hoặc nhiều file thực thi là virus; điều này được ghi rõ là dương tính giả
- Quy trình xác minh là kiểm tra xem tệp tải về có trùng với tệp mà maintainer đã upload hay không
- Kiểm tra xem release tag đã được xác minh bằng khóa ký của committer hay chưa
- Tải
..._checksums.txtvà..._checksums.txt.sig - Import release public key vào keyring
- Dùng tệp chữ ký để xác minh tệp checksum
- Dùng danh sách SHA-256 trong tệp checksum để xác minh archive đã tải
Luồng sử dụng đơn giản nhất
- Launcher và máy chủ hoạt động mà không cần cài đặt, chỉ cần tải archive, giải nén và chạy
- Quy trình sử dụng cơ bản như sau
- Tải archive full phù hợp từ bản phát hành ổn định mới nhất
- Giải nén tới vị trí mong muốn
- Trên Windows, nếu cần thì thêm binary của launcher·server vào danh sách ngoại lệ của phần mềm diệt virus
- Trên Windows, nếu cần thì bỏ chặn các file
.exe - Nếu không dùng launcher Steam hoặc Xbox, hãy sửa
Client.ExecutablevàClient.Pathtronglauncher/resources/config.<game_title>.tomlthành đường dẫn launcher game và thư mục game - Để chơi 100% ngoại tuyến cần launcher tùy chỉnh và các tệp từ companion repo riêng
- Nếu dùng AoE IV hoặc AoM và chưa cài AoE II: DE, hãy chỉ định đường dẫn BattleServer.exe trong
battle-server-manager/resources/config.<game>.toml - Chạy script
launcher/start_<game_title>và chấp thuận các yêu cầu nâng quyền quản trị cùng cho phép tường lửa nếu cần - Lặp lại cùng quy trình trên mỗi PC cùng chơi trong LAN; PC đầu tiên sẽ host máy chủ và các máy còn lại sẽ tự dò tìm rồi được hướng dẫn kết nối
- Trong mục Multiplayer của game, hãy host một lobby mới; khuyến nghị đặt lobby ở chế độ công khai
- Có thể tham gia lobby công khai trực tiếp từ trình duyệt hoặc tìm theo tên rồi gửi lời mời cho bạn bè
- Nếu game cho phép, có thể chia sẻ liên kết tham gia lobby, nhưng việc tự động tham gia chỉ hoạt động khi đã ở trong game
Điều kiện sử dụng và miễn trừ trách nhiệm
- Phần mềm được phân phối theo AGPL
- Các điều kiện sử dụng bổ sung chỉ áp dụng cho quan hệ hợp đồng giữa người dùng nhận gói tải xuống qua kênh này và bên cung cấp
- Các điều kiện bổ sung không hạn chế các quyền được AGPL bảo đảm như sử dụng, nghiên cứu, sửa đổi, phân phối lại và truy cập mã nguồn
- Điều kiện sử dụng gói tải xuống bao gồm
- Sở hữu giấy phép hợp lệ và hợp pháp cho game tương ứng cùng các DLC cần thiết
- Tuân thủ điều khoản dịch vụ của game và các điều kiện áp dụng
- Mục đích sử dụng cá nhân nghiêm ngặt
- Sử dụng trong môi trường LAN khi máy chủ game chính thức còn khả dụng và đang vận hành
- Khi máy chủ chính thức bảo trì, tạm thời không khả dụng hoặc ngừng vĩnh viễn thì yêu cầu LAN không còn hiệu lực
- Phần mềm này không liên kết với hay được nhà phát hành hoặc nhà phát triển game bảo chứng
1 bình luận
Ý kiến trên Hacker News
Nếu bạn thuộc gu của Hacker News và thích AoE cổ điển, có lẽ bạn cũng sẽ thích 0 A.D.
Miễn phí và thú vị, nhưng nếu bạn tự cho mình là bậc thầy chiến thuật thì trò này sẽ khiến bạn khá khiêm tốn lại
https://play0ad.com/
Không chỉ AoE, việc game nói chung được bảo tồn để vẫn chạy được trong tương lai là một điều tuyệt vời
Thật đáng tiếc khi tính năng biến mất chỉ vì ai đó tắt máy chủ
Không chỉ có các bản cập nhật nâng số nền văn minh lên hơn 50, mà còn có nhiều cải thiện về hình ảnh, lối chơi tổng thể và hiệu năng
Đặc biệt thật đáng kinh ngạc khi cộng đồng mã nguồn mở vẫn tiếp tục phát triển mới cho một tựa game cũ như vậy
Công ty đóng cửa và tắt máy chủ, nhưng may mắn là có người đã tạo một bản triển khai máy chủ matchmaking
Đến nay cộng đồng vẫn sống và đang phát triển, còn việc phát triển game cũng tiếp tục nâng trò chơi lên mức vượt xa bản gốc
Dự án đó là Forged Alliance Forever
Nếu bạn cung cấp một dịch vụ cần thiết để sử dụng sản phẩm thì tốt, nhưng nếu bạn khai tử dịch vụ đó khiến sản phẩm không dùng được hoặc chỉ dùng được một phần, thì phải bắt buộc công khai bản triển khai và tài liệu
AoE2 được phát hành năm 1999 dựa trên engine game từ năm 1997, vậy mà mùa xuân 2025 sẽ có một DLC lớn mới cho Definitive Edition
Sandy Petersen hẳn sẽ tự hào
Hồi những năm 2000, khi còn nhỏ, tôi hay chơi các phiên Aoe2 qua LAN, và tôi nhớ khoảng một trong ba ván là sau khi mọi người chơi 2–3 tiếng thì game cứ thế bị văng
Theo một cách nào đó thì như vậy lại hay hơn. Không ai phải thua, và ai cũng tin rằng mình đang thắng
Tôi thích Steam vì sự tiện lợi và cũng biết ơn nỗ lực phát triển SteamOS, nhưng tôi lo về sự phụ thuộc
Những dự án như thế này giúp tôi thực sự sở hữu nhiều hơn những thứ mình đã bỏ tiền mua, và luskaner giống như một anh hùng đối với tôi
Ngay cả DRM của Steam cũng không bắt buộc, hoàn toàn là lựa chọn của nhà phát triển hoặc nhà phát hành game
Trên Steam đã có nhiều game không DRM, chỉ cần sao lưu file là có thể chạy mà không cần Steam
Tôi tò mò không biết có thể gắn điều khoản sử dụng vào giấy phép AGPL như thế nào
Chẳng phải đó là “hạn chế bổ sung” mà giấy phép nói có thể gỡ bỏ sao?
Tuyệt vời
Tôi tò mò liệu có tài liệu công khai nào về AoE3 API được dùng để làm thứ này không, hay toàn bộ đều được reverse engineering lại từ đầu
Tôi từng thấy người ta tìm những tài liệu như vậy, nhưng chưa bao giờ thấy tài liệu thật
Có lẽ đâu đó trong repository có câu trả lời, nhưng phần này vượt quá hiểu biết của tôi nên tôi tò mò. Multiplayer của aoe2 DE phần lớn dựa vào P2P à?
Tôi đoán máy chủ khu vực chỉ dùng cho matchmaking, còn logic game thực tế chạy trên client
Tôi nghĩ vậy vì có thể dùng maphack và khi một người bị lag thì tất cả đều chậm lại, nhưng trên các diễn đàn AoE, mỗi lần chủ đề này được nhắc đến lại có rất nhiều ý kiến khác nhau
Tôi không nghĩ Definitive Edition đã thay đổi thiết kế đủ lớn để rời khỏi P2P, nhưng tôi không biết thông tin thực tế
Vì thế maphack mới khả thi
Không cần thứ như Paxos ở đây. Nếu một máy nào đó đi chệch thì game sẽ mất đồng bộ và dừng, nhưng thường có thể khôi phục từ điểm lưu
Ví dụ một trận Brazil–Trung Quốc có thể diễn ra trên máy chủ EU
Nhìn vào đó, có vẻ máy chủ được dùng như nguồn sự thật trung tâm giữa các client, mọi dữ liệu game đi qua máy chủ nhưng việc tính toán vẫn diễn ra phía client
Tuy nhiên nếu bị giật do hiệu năng CPU của một người chơi thì mọi người đều bị ảnh hưởng
Tôi mong AoE2 sống lâu như cờ vua. Nó thực sự là một trong những trò chơi “hoàn hảo”
Hiện tại trong Age of Empires 2 đang xảy ra chuyện như vậy
Tôi có cảm giác Definitive Edition nhận được nhiều đầu tư hơn cả một số phiên bản AOE3 và 4 mới
Nếu là một game thú vị, tôi nghĩ có thể giữ lại cả các vấn đề cân bằng hoặc những thứ trông như bug nhưng đã trở thành tính năng
Tuy nhiên các bug network code thuần túy có hại thì khó xử hơn
Tôi thật sự biết ơn vì cuối cùng Id đã công khai mã nguồn. Tôi tha thiết mong một ngày nào đó AoE2 cũng được như vậy
Tính ngẫu nhiên, việc không theo lượt, và multiplayer khiến nó thú vị ngay cả khi so với cờ vua
Nhưng cờ vua có luật đơn giản hơn 1000 lần, không thay đổi, và cũng không cần APM cao để chơi cạnh tranh
Tôi hơi bối rối về vai trò web server của dự án này
Nó là thành phần matchmaking hay phát sóng game của multiplayer AoE à?
Dự án này có vẻ xử lý mục 2. Còn mục 1 thì tiếc là trông phức tạp hơn, bao gồm cả việc đánh lừa để game tin rằng Steam đang được kết nối