GameSpy終了後の仕組み#
オープンソースプロジェクトである pylobby は、Civilization IV のマルチプレイ・ロビー機能が依存していた GameSpy SDK のマスターサーバー群を、ゼロから再実装したものである。GameSpy は2010年代にオンラインサービス事業を終了しており、公式のロビーサーバー(gpcm.gamespy.com 等)はすでに存在しない。Civ4 クライアント側のプロトコル実装は変更できないため、クライアントが「GameSpy のサーバーだ」と信じて話しかけてくる相手を、自前サーバー上に用意するというアプローチを取っている。具体的には、Civ4 クライアントの hosts ファイルで gpcm.gamespy.com 等のホスト名を自前サーバーの IP に向け、そこで pylobby をベースにしたサーバー実装(本プロジェクト「Civ4 Internet Lobby」)を稼働させている。
クライアント側の実装は変更せず、通信先だけをhostsファイルで自前サーバーへ差し替えている。Civ4 Internet Lobbyの構成#
pylobby は GameSpy Presence(ログイン)とサーバーブラウザ(部屋一覧)を実装したものだが、NAT 越え(NATNEG)機能は含まれていなかった。Civ4 Internet Lobbyでは pylobby のコードをベースに、NATNEG サーバーを新規実装として追加し、実機検証を通じてプロトコルの確定仕様に合わせ込んだ。
ログインと部屋一覧はpylobbyの流れを汲み、NAT越え(NATNEG)をCiv4 Internet Lobbyが新規実装して組み合わせている。