AoE 1、2、3 DE向け100%オフラインLANマルチプレイヤー対応Webサーバー
(github.com/luskaner)- Age LAN Serverは、公式ゲームサーバーへのインターネット接続がなくてもAge of Empiresシリーズのマルチプレイヤーロビーを利用できるようにするWebサーバー兼ランチャーで、公式サーバーのメンテナンス中や終了後でもロビー機能を維持することを目的としている
- 対応ゲームは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で、AoM: RTは現在Steam版のみ対応
- 共通機能にはシナリオ、ロビー内マップ転送、ゲーム復元、データモード、ロビーチャット、Steam・Xboxクロスプレイがあり、ゲームごとに観戦、ロビー招待、リンク共有、プレイヤー検索、協力キャンペーン、リマッチ、チャンネル、ささやき、グループなどが追加される
- サーバーはゲームのAPIリクエストを受け取り、ロビー動作に必要な最小限のAPIサーフェスを再実装し、データは保存もインターネット送信もされない
- 100%オフラインプレイには、ゲームが要求するインターネットおよびSteamまたはXbox Live接続制限を回避するカスタムランチャーが必要で、マッチメイキング・実績・リーダーボード・クラン・フレンド統合などは未実装または制限あり
Age LAN Serverの目的と対応範囲
- Age LAN Serverは、以前はAoE 2 DE LAN Serverという名前で、ゲームサーバーへのインターネット接続なしにマルチプレイヤーロビーを利用できるようにするWebサーバー兼ランチャー
- LAN専用に厳密に制限されているわけではない
- 公式サーバーがメンテナンス中、または最終的に終了した場合でも、ゲームのマルチプレイヤー機能を利用できるようにすることが目的
- 完全なオフラインプレイには、ゲームが強制するオンライン専用制限を回避するカスタムランチャーが必要
- プラットフォームとバージョンによって、インターネットおよびSteamまたはXbox Live接続の制限が適用される
- 別プロジェクトのageLANServerLauncherCompanionが、Steam Emulatorのダウンロードと100%オフラインプレイ向けのファイルや情報を提供する
対応ゲーム
- 対応対象ゲームは以下の通り
-
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は現在Steam版のみ対応
-
提供機能とゲームごとの差異
- 共通機能には以下が含まれる
-
シナリオ
- ロビー内マップ転送
- ゲーム復元
- データモード
- ロビーチャット
- SteamおよびXbox クロスプレイ
- AoE II: DE、AoE III: DE、AoE IV: AE、AoM: RTは追加機能をサポート
- 観戦機能、AoE II: DEのCapturAgeを含む
- ロビー招待
- ロビーリンク共有
- プレイヤー検索
- AoE II: DEとAoE III: DEは協力キャンペーンとリマッチをサポート
- AoE II: DEはチャンネルとささやきをサポート
- AoE III: DEとAoE IV: AEはグループをサポート
- AoM: RTはささやきとArena of the Godsをサポート
-
制限事項と未実装機能
- 一般的な制限は以下の通り
- リンクでゲームロビーに参加する機能は、ゲームがすでに起動中のときのみ動作する
- オンラインモードのサブスクリプションは、公式ランチャー使用時のみ動作する
- XboxとSteamのフレンド統合はない
- AoE III: DEとAoE IV: AEでは、フレンド一覧がすべてのオンラインユーザーをフレンドのように表示する
- AoM: RTでも、フレンド一覧がすべてのオンラインユーザーをフレンドのように表示する
- AoM: RTのArena of Godsには独自の動作仕様がある
- 報酬は獲得できない
- すべての祝福とレア度が初期状態で解放され、公式サーバーでは使えない項目も含まれる
- favor stashは無限
- ストーリーモードではすべてのミッションが初期状態で解放される
- チャレンジモードではライフが無限で、すべてのレジェンドにアクセス可能、初期レベルは最大値の99
- 未実装機能は以下の通り
- マッチメイキングは、利用者が限られ一時的なサーバーという性格のため実装されておらず、公式サーバーの利用が推奨される
- 実績は公式サーバーのみが処理すべきであり、試合中に実績条件を満たすと問題が起きる可能性がある
- リーダーボードは空のまま表示される
- クランは全プレイヤーがクラン外として扱われ、クラン検索は空に見え、作成は常にエラーになる
- ロビーでのプレイヤーブロックは動作するように見えるが、実際には動作しない
- プレイヤー報告とブロックは動作するように見えるが、実際には動作しない
- ほとんどの未実装項目はAge of Empires: Definitive Editionには適用されない
動作方式
- サーバーはゲームのAPIリクエストを受信するシンプルなWebサーバー
- ロビー機能の動作に必要な最小限のAPIサーフェスのみを再実装する
- データは保存されず、インターネットにも送信されない
- ランチャーはロビープレイを簡単にしつつ、オンラインプレイでは引き続き公式ランチャーを利用できるようにする
- ランチャー機能には以下が含まれる
- サーバーの自動起動・停止、または既存サーバーへの接続
- AoE Iを除き、公式ゲームとの潜在的な問題を避けるための隔離されたメタデータディレクトリの任意選択
- hostsファイルを修正してゲームAPIリクエストをLANサーバーへリダイレクト
- 一部のCDNリクエストをプロキシして、公式ゲーム状態検知を回避
- チャットとユーザー名表示のためのリクエストプロキシ
- ゲームがLANサーバーへ接続できるようにする自己署名証明書のインストール
- AoE IとAoE IVを除き、ゲームストアに証明書を追加
- 設定・復旧用のカスタムコマンド実行
- Windowsで最優先ネットワークインターフェース以外のインターフェースへbattle serverを再ブロードキャスト
- ゲームの自動検出と起動
- ランチャーはその後の変更を元に戻し、公式ランチャーが公式サーバーへ接続できるようにする
システム要件とクライアント条件
- サーバーの安定対応環境は以下の通り
- Windows 7または同等環境、Windows 10以降推奨
- Linux kernel 3.2
- macOS Monterey v12
- OSと設定によっては、443ポートでのHTTPS待ち受けに管理者権限またはファイアウォール許可が必要な場合がある
- サーバーの実験的対応環境はBSD系、Solaris系、AIX
- ランチャーとBattle Server Managerは以下の環境をサポート
- Windows S edition/modeではない環境
- Windows 7 x86-64、Windows 10以降推奨
- Windows 11 ARM
- Linux kernel 3.2のx86-64およびARM64
- ランチャーがhostsファイル、ローカル証明書、昇格されたカスタムゲームランチャーを扱う必要がある場合、管理者権限への昇格が必要
- クライアントは各ゲームのSteamまたはXbox版を使用する
- Xbox版は互換性のあるWindowsバージョンでのみ該当
- AoM: RTはSteam版が必要
- 最新版または少し前の版の使用が強く推奨され、古い版には既知の問題がある
バイナリと検証
- サーバーとランチャーのバイナリは、一部対応OS向けにreleases pageで提供される
- 提供アーカイブはfull、launcher、Battle Server Manager、serverの形に分かれる
- Windowsでは、アンチウイルスが1つ以上の実行ファイルをウイルスとして表示する場合があるが、これは誤検知と案内されている
- 検証手順は、ダウンロードしたファイルがメンテナーのアップロードしたファイルと同一か確認する方法
- リリースタグがコミッター署名鍵で検証されているか確認
..._checksums.txtと..._checksums.txt.sigをダウンロード- release public keyをキーリングにインポート
- 署名ファイルでチェックサムファイルを検証
- チェックサムファイル内のSHA-256一覧でダウンロードしたアーカイブを検証
最も簡単な使用手順
- ランチャーとサーバーはインストール不要で、アーカイブをダウンロードして展開し実行すれば動作する
- 基本的な利用手順は以下の通り
- 最新安定リリースから適切なfullアーカイブをダウンロード
- 任意の場所に展開
- Windowsでは必要に応じてランチャー・サーバーのバイナリをアンチウイルスの除外一覧に追加
- Windowsでは必要に応じて
.exeファイルのブロックを解除 - SteamまたはXboxランチャーを使わない場合は
launcher/resources/config.<game_title>.tomlのClient.ExecutableとClient.Pathをゲームランチャーのパスとゲームディレクトリに修正 - 100%オフラインプレイにはカスタムランチャーと別 companion repo の提供物が必要
- AoE IVまたはAoMを使用し、AoE II: DEがインストールされていない場合は、BattleServer.exeのパスを
battle-server-manager/resources/config.<game>.tomlに指定 launcher/start_<game_title>スクリプトを実行し、必要な管理者権限昇格とファイアウォール許可を承認- LANで一緒に遊ぶ各PCで同じ手順を繰り返すが、最初のPCがサーバーをホストし、他は自動検出後に接続案内を受ける
- ゲームのMultiplayerセクションで新しいロビーをホストし、公開ロビー設定が推奨される
- 公開ロビーにはブラウザから直接参加するか、名前検索後にフレンド招待を送れる
- ゲームが許可していればロビー参加リンクを共有できるが、自動参加はすでにゲーム内にいる場合のみ動作する
利用条件と免責
- ソフトウェアはAGPLに基づいて配布される
- 追加利用条件は、ダウンロードパッケージをこのチャネル経由で受け取った利用者と提供者の契約関係にのみ適用される
- 追加条件は、AGPLが保障する利用、研究、修正、再配布、コードアクセスの権利を制限しない
- ダウンロードパッケージの利用条件には以下が含まれる
- 当該ゲームおよび必要なDLCに対する有効かつ合法的なライセンスの保有
- ゲームのサービス利用規約と適用条件の遵守
- 厳格な個人利用目的
- 公式ゲームサーバーが利用可能かつ稼働中である間はLAN環境で使用
- 公式サーバーのメンテナンス、一時的停止、恒久的終了時にはLAN要件は無効
- このソフトウェアはゲームのパブリッシャーまたは開発元と提携しておらず、保証も受けていない
1件のコメント
Hacker News の意見
古典的な AoE を楽しむ Hacker News 好みなら、0 A.D. も気に入るはず
無料で面白いが、自分を戦略の達人だと思っているなら、かなり謙虚な気持ちにさせられるゲーム
https://play0ad.com/
AoE だけでなくゲーム全般が、将来も実行できる形で保存されるのは素晴らしいこと
誰かがサーバーを止めたという理由だけで機能が失われるのは残念
文明数が 50 以上に増えるアップデートだけでなく、ビジュアル面の改善や、ゲームプレイ全般・性能面の改善も多く入っている
特にオープンソースコミュニティで、こうした古いゲームに新たな開発が続いているのは本当に驚きだ
会社が閉鎖してサーバーを止めたが、幸い誰かがマッチメイキングサーバーの実装を作った
今もコミュニティは生きていて成長中で、ゲーム開発も続き、原作をはるかに超えるレベルまで押し上げている
そのプロジェクトが Forged Alliance Forever
製品利用に不可欠なサービスを提供するのはよいが、そのサービスを廃止して製品を使えなくしたり一部しか使えなくしたりするなら、実装とドキュメントの公開を義務にすべき
AoE2 は 1997 年のゲームエンジンをベースに 1999 年に発売されたが、2025 年春には Definitive Edition 向けの新しい大型 DLC が出る予定
Sandy Petersen も誇りに思うだろう
2000 年代、子どものころに LAN で Aoe2 のセッションをよくやっていたが、3 戦に 1 戦くらいは全員が 2〜3 時間プレイした後、そのままクラッシュした記憶がある
ある意味ではそのほうが良かった。誰も負けずに済み、全員が自分は勝っていたと信じられたから
Steam は利便性のために好きだし、SteamOS の開発努力にも感謝しているが、依存が心配
こういうプロジェクトは、自分が金を払って買ったものを再びもっと所有できるようにしてくれるし、luskaner は自分にとって英雄のような人
Steam の DRM でさえ必須ではなく、完全にゲーム開発会社やパブリッシャーの選択
Steam にはすでに DRM なしのゲームも多く、ファイルだけバックアップしておけば Steam なしでも実行できる
AGPL ライセンスに利用規約をどう付けられるのか気になる
ライセンス上、削除できるとされている「追加的制限」に当たらないのか?
素晴らしい
これを作るのに使われた AoE3 API の公開ドキュメントがあるのか、それとも全部新たにリバースエンジニアリングしたのか気になる
こういうドキュメントを探している人は見たことがあるが、実物のドキュメントは見たことがない
リポジトリのどこかを見れば答えはあるのだろうが、自分の理解を超える部分なので気になる。aoe2 DE マルチプレイは大半を P2P に依存しているのか?
地域サーバーはマッチメイキングにだけ使われ、実際のゲームロジックはクライアントで動いているのだと推測している
マップハックが可能で、1 人がラグると全員が遅くなる点からそう見ているが、AoE フォーラムではこの話題が出るたびにさまざまな主張がある
Definitive Edition が設計を P2P から離れるほど大きく変えたとは思えないが、実際の情報は知らない
だからマップハックが可能になる
ここに Paxos のようなものは不要。どれか 1 台のマシンがずれるとゲームは同期ずれして止まるが、通常はセーブ地点から復旧できる
例えばブラジル対中国の試合が EU サーバーで行われることもある
これを見ると、サーバーがクライアント間の中央の真実の源泉のように使われ、すべてのゲームデータはサーバーを経由する一方、計算は依然としてクライアント側で行われているように見える
ただし、1 人のプレイヤーの CPU 性能が原因でカクつくと全員に影響する
AoE2 にはチェスと同じくらい長く生き残ってほしい。本当に「完璧な」ゲームの一つ
今の Age of Empires 2 ではそれが起きている
Definitive Edition は新しい AOE3 と 4 の一部バージョンよりも多く投資されているように感じる
面白いゲームなら、バランス問題やバグに見えるが機能になった要素も残しておけると思う
ただし、純粋に有害なネットワークコードのバグのようなものはもっと難しい
Id が最終的にソースコードを公開してくれたことには本当に感謝している。いつか AoE2 もそうなってほしいと切に願う
ランダム性、ターン制ではないこと、マルチプレイのおかげで、チェスと比べても興味深い
だがチェスはルールが 1000 倍単純で変わらず、競技としてプレイするのに高い APM も必要ない
このプロジェクトのウェブサーバーとしての役割が少し分かりにくい
AoE マルチプレイのマッチメイキングやゲーム配信の構成要素なのだろうか?
このプロジェクトは 2 番を扱っているように見える。1 番は残念ながらもっと複雑そうで、Steam が接続されていると信じ込ませる過程が入る