― 特集 ―
夏休みはBF2サーバーを立てよう
上級編:大規模対戦に向いた本格サーバーでリプレイも活用

Text by 米田 聡

 今回は,「バトルフィールド2」の,多機能な専用サーバーを立てる。前編でも軽く触れておいたが,"上級編"だけあって設定はけっこう面倒だ。ポートやファイアウォールの設定方法など,初級編で説明した内容に関しては思い切って省略し,もっと重要な点に絞って説明していくので,難しいと思ったら,まずは初級編に戻って,シンプルなマルチプレイサーバーを立てるところから始めてほしい。

 上級編では,「専用サーバー」を立てて,運用するところまで踏み込んでいきたいと思うが,まずは「専用サーバーとは何か」について,簡単に説明しておこう。一言でいえば,バトルフィールド2(以下 BF2)を起動して「MULTIPLAYER」を選んだとき,ズラズラとリストアップされるあのサーバー一つひとつのことだ。あのサーバーは世界に公開されているので「公開サーバー」とも呼ばれるが,今回立てようとしているのは,まさにこの公開サーバーである。初級編では,BF2をインストールしているPC上でサーバーを立て,自分もそこでプレイしたが,上級編となる今回は,別途,公開サーバーとして使うPCを用意し,そこに「専用サーバーソフト」をインストールする。サーバーが動作しているPCで自分もプレイするのではなく,公開サーバー"だけ"のために使うから,"専用"サーバーというわけだ。本稿では専用サーバー=公開サーバーとして扱い,専用サーバーを立てるPCを以後「専用サーバーPC」と呼ぶことにして話を進める。

BF2マルチプレイサーバーを立てる条件・上級編

 というわけで,前回と同様,専用サーバーに必要な条件をまずはチェックしてみよう。

(1)専用サーバーとなる専用サーバーPC

 当たり前といえば当たり前であるうえ,直前の記述の繰り返しとなるが,専用サーバーの実現には,読者がBF2をインストールしているPC(以下 BF2用PC)とは別のPCが必要だ。本当のことをいえば,専用サーバーソフトとBF2のゲーム本体は同時に起動できるのだが,BF2の負荷が大きいため,BF2を起動するとサーバーのレスポンスが悪くなってしまう。専用サーバーには外からプレイヤーがたくさんやってくるのだから,読者がBF2を起動するたびに反応が悪くなってしまうようでは困る。  また,読者の多くは家庭用ルーターを介してインターネットに接続していると思うが,この環境でBF2用PCに専用サーバーソフトをインストールして起動すると,BF2から専用サーバーにログインできない。理由を説明しようとするとネットワークの解説になってしまうので省略するが,いずれにせよ,自分で立てた専用サーバーに自分がログインできないのは問題だろう。
 したがって,BF2用PCと専用サーバーPCは,やはり別々に用意するのが望ましいことになる。

 では,どんなスペックのPCが必要なのだろうか。
 初級編でもそこそこのパフォーマンスのPCが必要だったのだから,上級編ではさぞかしハイスペックのものが必要なのでは? と思うかもしれない。だが,冷静になって考えてみれば,BF2のゲーム本体を動作させるわけではないから,グラフィックス機能にゲームが要求する「DirectX 9世代」といった条件はない。そもそも画像処理が必要ないのだから,チップセット内蔵のオンボードグラフィックス機能で十分だ。

 CPUとメモリ容量は,プレイする(=接続する)人数によって異なってくるが,ゲーム用PCほどのスペックは要求されない。参考までに,筆者がテストに利用したAthlon XP 2400+/2GHz(Thoroughbredコア,FSB 266MHz)とECS製のSiS735マザーボード「K7S5A」,PC2700 DDR SDRAM 512MB×1という環境で専用サーバーPCを用意し,フレームレートを計測してみると,64人接続時に「プレイできるが快適とまではいえない」25fps,32接続時だと「まずまず快適」といえる36fpsが出ていた。32人程度に絞るなら,1世代前のPCで十分というわけだ。CPUパワーが不足気味(プレイが重い)なら,接続可能プレイヤー数を絞るなど,状況に応じて設定を変えながら運用していけばいいだろう。

(2)高速なインターネット回線

 回線の帯域幅も,プレイする人数による。もともと,日本と比べて回線事情のよくない米国などを対象に作られているだけあって,ADSL回線でも32人程度ならまかなえるはずだ。ちなみに,専用サーバーはサーバー側で帯域幅の制限が行えるなど,回線事情に合わせていろいろ対応できるようになっているので,「FTTH必須」というわけではない。
 もっとも,FTTHのほうが快適なのはいうまでもない。よりストレスの少ないサーバーを運用したいのなら,FTTHを考慮に入れるのもいいだろう。

専用サーバーソフトをインストールしよう

 BF2には,専用サーバーソフトが標準で付属しており,ゲームをフルインストールすれば自動的に専用サーバーソフトもインストールされる。ただし,この専用サーバーソフトでは,後述する「バトルレコーダー」(BATTLERECORDER)関連のいくつかのファイルが足りない。そこで今回は,Electronic Artsが配布している,単体版の専用サーバーソフトをインストールすることにしよう。以後,本稿では,Electronic Artが配布しているほうの専用サーバーソフトを利用して話を進めていく。

 専用サーバーソフトは米国版公式サイトのダウンロードコーナー(「こちら」)から入手できる。2005年8月17日現在の最新版は「Unranked Server Files for Win32 v1.02」だ。

 基本的にはウィザードに従うだけでインストールできるから,インストール方法そのものは省略する。初期設定だと「C:\Program Files\EA Games\BattleField 2 Server\」以下にインストールされるはずだ。

初級編よりもたくさんのポートを開ける必要がある

 初級編から読んでくれている読者には本当にくどくて申し訳ないが,読者の多くは,ルーターを介してインターネットに接続しているはずだ。この場合,「ファイアウォール」と「ポート」「専用サーバーPCのプライベートIPアドレス」を適切に設定しなければならない。設定方法は「こちら」で詳しく説明しているので参照してほしいが,専用サーバーでは,シンプルなマルチプレイサーバーの数倍にも当たる数のポートを"開ける"必要がある。どのポートを設定すればいいかはBF2のreadmeファイル内で説明されているが,そのリストを以下にまとめてみた。

専用サーバーPCが外部に公開しなければならないポート

 正直,ルーターによっては設定がかなり面倒だと思う。だが,ここの設定を誤ると,以降の設定がどんなに正しくても専用サーバーソフトは正しく動作しないので,慎重に設定してほしい。バッファロー製ルーター「WBR-G54」で設定した例を下に掲載しておくので,参考にしていただければ幸いである。

バッファロー製ルーターで専用サーバーPC用のポート設定(アドレス変換設定)を行った例

専用サーバーを設定&起動しよう

 これでようやく専用サーバーソフトの起動準備完了だ――と言えればいいのだが,少々手間のかかる設定がまだ残っている。BF2のサーバーリスト(BF2を起動して「MULTIPLAYER」を選択すると出てくるあのリストだ)に登録するための設定を行わなければならないのだ。
 ではどうするか。まずは「ノートパッド」のようなテキストエディタから,「C:\Program Files\EA GAMES\Battlefield 2 Server\mods\bf2\settings」にある「ServerSettings.con」というファイルを開いてほしい。これが,専用サーバーソフトのメイン設定ファイルだ。

 ファイルの中から(A)ように書かれている行を探して,(A’)のように書き換えよう。

(A)sv.interfaceIP ""

            

(A’)sv.interfaceIP "192.168.11.10"

 「192.168.11.10」は,筆者の環境における専用サーバーPCのプライベートIPアドレスである。初級編と同じように専用サーバーPCのプライベートアドレスを設定していれば,多くの場合,ここは「192.168.X.10」(Xには0から255までの任意の整数が入る)になっているだろう。以上を変更したらエディタから上書き保存して終了する。

ServerSettings.conの所定の行を書き換えたところ

 これで,ようやく専用サーバーの起動準備が整った。スタートメニューから「EA GAMES」→「BattleField 2 Server」→「Run Dedicated Server」を選択しよう。すると,専用サーバーソフトの設定&起動用のウィンドウ「BF2ServerLauncher」が開くはずだ。  初回起動時,BF2ServerLauncherでは,ウィンドウ下段を見ると分かるように,プルダウンでは「Default」が選択されている。このDefaultというのは,先ほど一部を変更したServerSettings.conの設定内容と同じもの。文字どおりデフォルト設定であり,読者が実際に専用サーバーを起動する場合は,毎回ゲームの設定やルールについて,ここでまず項目を選択したり入力したりすることになる。
 ここからは各項目の内容を説明していくわけだが,うっかり誤った設定を行って,専用サーバーが意図しない動作をしては目も当てられない。なにかあったらすぐデフォルトへ戻せるようにしておこう。その方法だが,ウィンドウ下段(「Default」の右だ)にある,「+」のボタンを押す。すると下の画面に示したように,専用サーバーの「設定名」を入力するよう求められるので,アルファベットと数字の組み合わせで,好きな名前を入力「OK」ボタンを押そう。今回は筆者がそういう名前のドメインを持っていることから「quake3jp」とした。BF2ServerLauncherのウィンドウ下段に自分が入力した設定名が表示されるので,ウィンドウ右下の「Save」を押す。これで,設定名の設定一覧が保存されるので,デフォルト設定が書き換わってしまうことはなくなる。以下,設定を変更するときは,ウィンドウ左下のプルダウンに表示されている設定名が,自分で登録したものであることを確認しながら進めてほしい。

プラスキーを押し,ダイアログに設定名(ここではquake3jp)を入力してOKボタンを押す。ちなみに,ここで入力する設定名は,BF2のマルチプレイサーバーリストで表示されるサーバー名ではないから,自分が分かれば何でもいい

BF2ServerLauncherで自分仕様の専用サーバーにする

 ここまでずいぶんかかってしまったが,いよいよ「自分がオーナーのBF2専用サーバー」の設定だ。自分の専用サーバーでプレイヤーたちがどのように戦ってほしいかを考えながら,以下の説明を読んで,一つずつ決めていってほしい。

ServerName:BF2を起動してマルチプレイサーバーへアクセスしようとすると表示されるサーバーリストに"表示させる"名称だ。初期設定は「Default Server Name」なので,これを変更することになる。クラン名,ハンドル名などが一般的だろう。本稿では「Quake3.jp test server」とした

Password:立てようとしている専用サーバーでパスワード保護を実施するなら,ここにパスワードを入力する。初期設定はブランク(パスワードなし)。パスワードを設定しておけば,クローズドサーバーとなり,パスワードを教えた人だけが専用サーバーへアクセスできるようになる

Internet:専用サーバーをインターネットに公開するかどうかの設定。当然オンにすべきなので,チェックボックスをクリックして色つきにしよう

BandwidthChoke:専用サーバーが接続している回線速度に応じた帯域幅制限を実施する。設定欄をクリックするとプルダウンメニューが現れ,64kbps〜8192kbpsの範囲から選択できる。初期設定は「No Limit」(制限なし)だ。帯域幅制限を行うと,以下のような効果がある。

(1)ゲーム全体の快適度が設定に応じて下がるが,「特定のプレイヤーだけ快適(あるいは快適でない)」という状態が緩和され,プレイヤーが公平な通信条件で戦えるようになる
(2)専用サーバーソフトを動作させている最中に,その専用サーバーPCでWebブラウズを行ったりしても,ゲームもWebブラウズも過度に反応が遅くなったりしない

設定は回線事情に応じて行えばいいだろう。専用サーバーPCがADSLでインターネットに接続している場合は,1Mbps(1024kbps)程度の制限をかけておいたほうがいいかもしれない。FTTH回線ならNo limitで基本的には問題ない

Welcome Message:プレイヤーが読者の専用サーバーへアクセスしたとき,プレイヤーの画面に表示させるメッセージが何かあれば,半角英数字で入力する。初期設定はブランク(メッセージなし)だ

ServerIP:このサーバーのグローバルIPアドレスを設定する項目だが,ここまで本稿の解説に沿って設定してきたなら,ここには何も入力してはならない。必ず初期設定のブランクのままにする。もし何か入力してしまうと,専用サーバーに誰もログインできなくなってしまうからだ

ServerPort:BF2ゲーム本体が利用するポート番号の指定だ。今回は,専用サーバーPCにおいて専用サーバーソフトとBF2本体の同時起動は行わないので,初期設定の「16567」のままにしておこう

AllowFreeCam:プレイヤーにフリーローミングカメラ(自由に動けるカメラ)の使用を許可するならオン。BF2ではオフにするのが一般的だ

AllowExternalViews:乗り物に乗ったとき,第三者視点で見るカメラの利用を許可するならオン。これはオンがデフォルトだ

AllowNoseCam: 航空機やヘリなどに乗ったとき,「ノーズカメラ」(デフォルトの映像カメラ)を使用するならオン。これもオンが一般的だ

HitIndicator:「ヒットインジケータ」(敵に照準が合ったとき微妙に変化し,攻撃時に命中したかどうか分かるインジケータ)を有効にするならオン。一般的にはオンだ

MaxPlayers:サーバーにログインできる(=ゲームに参加できる)最大プレーヤー数を設定する。回線事情に応じて設定すればいいが,回線速度に自信がないなら32以下に設定したほうがプレーヤーは快適にプレイできるだろう。初期設定は64になっている

NotPlayersNeedToStart:ゲームを開始できる最少人数を設定する。初期設定は2。1に設定してしまうと相当空しい事態に陥るので注意したい

NotEnoughPlayersRestartDelay:最少人数(NotPlayersNeedToStartで設定した人数)に満たないとき,ここで設定した秒数だけ新規参加者を待つ。待っても新規参加者が現れなければ,この時間待つ動作を繰り返す。初期設定は15秒。任意の秒数を設定可能だ

StartDelay,EndDelay:StartDelayはゲームの開始,EndDelayは終了時におけるディレイ時間の設定だ。勝利の余韻(あるいは敗北の悔しさ)を味わいつつ次のゲームの始まりを待つ時間,と解釈すればいいだろう。初期設定は15秒で,任意の秒数を設定できる

SpawnTime:プレーヤーが死んでから再出撃までの時間を設定する。初期設定は15秒。任意の時間を指定できる。0秒に設定すれば,死んだら即再出撃となる

TicketRatio,RoundsPerMap,TimeLimit:順に「チケット数」「ラウンド数」「ゲームの制限時間」を設定する項目だ。専用サーバーの管理者冥利に尽きる設定項目かもしれない。好みに合わせてカスタマイズしよう。TicketRatioは,要するに両軍の持ちチケットを設定する項目。TimeLimitは0にすると制限時間なしになる

SoldierFriendlyFire:仲間を攻撃(フレンドリファイア)してしまったとき,仲間に与えてしまうダメージを,敵を攻撃したときのダメージを100%としてパーセンテージで指定する。初期設定は100(%),つまり敵の攻撃と同じだ。0に設定すれば,仲間を誤って攻撃してしまってもダメージはゼロになる。つまり味方殺し(チームキル)不可能になるので,悪意のあるチームキラーを防止する有力な手段といえるだろう。ただし,FriendlyFireを0%にすると,ゲームに緊張感が失われ,ダレた試合になりがちなのが難しいところだ

VehicleFriendyFire:仲間が駆っている乗り物を攻撃(フレンドリファイア)してしまったときに,仲間が乗る乗り物に対して与えるダメージを,やはりパーセンテージで指定する。これも初期設定は100(%)だ

SoldierSplashFriendlyFire,VehicleSplashFriendlyFire:跳弾(Splash)が仲間に当たってしまった場合のダメージを,敵に跳弾が当たったときのダメージを100%として,パーセンテージで指定する。前者は仲間,後者は仲間が乗る乗り物に対する設定だ

TkPunishEnabled:Tk(チームキラー)の存在をプレイヤーに知らせる機能の有効/無効設定。有効にするならTkPunishEnabledのチェックボックスをオンにする。初期設定はオンだ

TkNumPunishToKick:TkPunishEnabledをオンにした場合に,許容される味方殺し(チームキル)の回数。設定値より多く味方殺しを行うと,自動的にチームキラー認定される。チームキラーに悩まされるサーバーは多いので,設定しておくといいだろう。初期設定は3回だ

TkPunishByDefault:チームキラーを無条件に自動的にキックするならオン。これは初期設定だとオフになっている。オンにすると,TkNumPunishToKickで設定した許容回数を超えて味方殺しを行ったプレイヤーは無条件でキックされるようになるので,一般プレーヤーも仲間撃ちのミスが許されなくなる。この機能を使うには、TkPunishEnabledをオンに,TkNumPunishToKickにキックされる味方殺しの回数を設定しておく必要がある

VotingEnabled,VoteTime,MinPlayersForVoting:Vote(プレイヤーによる投票)に関する設定だ。投票を有効にするならVotingEnabledをオンにする。VoteTimeは,発議から投票締め切りまでの時間を指定する項目。MinPlayersForVortingは,投票に必要な最少人数を指定する。とくに問題がなければ,基本的には初期設定のままで構わないと思われる

VoipEnabled:VoIP(≒ボイスチャット)関連の設定だ。初期設定はオンで,ボイスチャットが有効になっており,基本的には初期設定のまま使うのが基本である

VoipServerRemote:これもVoIP関連の設定で,初期設定のまま使うのが基本だ

VoipServerRmoteIP,VoipServerPort,VoipBFClientPort,VoipBFServerPort,VoipSharedPassword,VoipQuality:これらもVoIPサーバー関連の設定で,初期設定のまま使うことが基本になる。ここではVoIPのみ別サーバーにする設定も可能だが,基本的に設定する必要はないだろう

GameSpyPort:GameSpy(マルチプレイサーバーリストを一覧するツールなどを提供しているシステム)が使うポート番号を設定する。これも初期設定のままにしておこう

AllowNATNegotiation:ネットワーク周りの設定だ。初期設定はオフだが,必ずチェックしてオンにしておく

AutoBalanceTeam,TeamRatioPercent:チーム人数のバランスが著しく崩れるようなとき,自動的にチーム人数を振り分けるならAutoBalanceTeamをオンにし,TeamRatioPercentに両軍のバランスをパーセントで設定する。TeamRatioPercentの初期設定は100(%)になっているが,これは「100:100(両軍が同じ人数)になっていない限り,両軍のバランスが取れていないと判断し,強制的に人数を振り分ける」という意味だ。例えば「60」を指定すれば,両軍のバランスが10:6になるまで,チーム人数の自動振り分けは行われなくなる

AutoRecord:これは後述する「バトルレコーダー」関連の設定なので,とりあえずそのままにしておこう

※上から二つめ(TeamRatioPercentとAutoRecord)は,一つ上のブロックを参照してほしい

DemoDownloadURL,AutoDemoHook,DemoQuality
これもバトルレコーダーの設定なので,ひとまず説明は保留する

AdminScript:オリジナルの管理スクリプトを使用する場合,この設定が必要とされている。とはいえ,通常は初期設定(default)のままにしておく

CommunityLogoURL,SponsorLogoURL
コミュニティ(クランなど)のロゴ画像,サーバーのスポンサーのロゴ画像があるなら,それぞれ参照する場所をURLで指定する

PunkBuster:「パンクバスター」(チートを防ぐシステム)を有効にするならオン。ご存じのようにBF2クライアントは初期設定でパンクバスターが有効になっているので,サーバー側も有効にしておく必要がある。パンクバスターを無効にすると,パンクバスター有効のクライアント(=プレイヤー)から専用サーバーが見えなくなってしまうので注意しよう

UseGlobalRank,UseGlobakUnlocks:EA GAMESが提供する有料サービス「グローバルランキングシステム」に関連した設定。いずれも使用しないのでオフにしておこう

 以上の設定が終わったら,BF2ServerLauncherのウィンドウ内,中央付近にある「MapList」タブを押す。このタブは文字どおりプレイ可能なマップを選ぶもので,左側にずらずらと並んでいるのがマップのリストになる。ここから好きなマップを選択し,右向きの二重矢印を使って右側に追加してみよう。終わったら,ウィンドウの下段にある「Save」ボタンを押す。これで,ここまでの設定が,すべて読者の付けた設定名(繰り返すが,本稿ではquake3jpという設定名だ)で保存される。
 なお,MapListタブににある二つのプルダウンメニューは,左側がMOD,右側がゲームタイプを示している。特別なMODをインストールしていない限り,プルダウンは順に「bf2」「gpm_cq」(コンクエストの意)しか選択できないので,とりあえず無視して構わない。

 さあ,専用サーバーを起動してみよう。先ほどの「Save」ボタンのすぐ近くにある「Start」ボタンを押す。すると,下のような地味なウィンドウが開き,しばらく待つと「Loaded 100%」という文字が表示されるが,これで,専用サーバー起動完了だ。設定の面倒さと比べるとあまりにあっけないので注意しておくと,このウィンドウを開いているアプリケーションが専用サーバーソフトの本体なので,サーバーを終了させるとき以外は,このウィンドウを絶対に閉じてはならない。じゃまなら最小化しておけばいいだろう。

 専用サーバーの基本的な情報はウィンドウ内上部に表示されているが,1行目はサーバーのバージョンである。2行目にある,ダブルクォーテーションで囲まれた表示は,BF2ServerLauncherのServerNameで読者が指定したサーバー名だ。今回は「Quake3.jp test server」と表示されている。その右にある「Average FPS」は,専用サーバーの快適度を示す指針となる平均フレームレートだ。マシンパワーが十分に高ければ高いフレームレートが得られる。平均20fps台でもゲームはプレイ可能だが,複数のプレイヤーがログインしてきたときに10fps台まで頻繁に落ち込むようならマシンパワー不足で,プレイしづらい状態になってしまっていると考えるべきだ。帯域幅を制限したり,参加できるプレイヤー数を制限したりするといった対策を講じる必要がある。
 「IP」には,専用サーバーのプライベートIPアドレスが表示されているはず。ここまで本稿のとおり設定していれば,192.168.1.Xや192.168.0.X(いずれもXには1〜255の任意の整数が入る)が表示されているだろう。そうなっていれば,専用サーバーはプレイヤー達を招き入れられる。
 「Map」は現在サーバーでプレイされているマップ名,「Game Mode」は現在のゲームタイプを示す。Game Modeの「gpm_cq/64」というのは,「コンクエストで,64人がログイン可能」という意味だ。「Mod」は,先ほどMapListのところでも説明したとおり,本稿では無視して構わない。「Players」は,制限人数に対して何人がログイン中かを示す値。Roundはマップ当たりのラウンド数,最後に「Status」は通常「playing」になっており,プレイヤーがログインしてプレイできる状態ということを示している。

 さて,このウィンドウは専用サーバーソフトそのものなので,この画面から,専用サーバーの管理が可能だ。試しに,「>」部に続けて「mapList.list」と入力し,エンターキーを押してみよう。すると,下に挙げた画面のように,BF2ServerLauncherのMapListタブで設定したマップ一覧が表示されるはずだ。
 mapList.list以外にどのようなことが行えるかは,専用サーバーソフトを標準設定でインストールしていれば「C:\Program Files\EA GAMES\Battlefield 2 Server」以下にあるReadmeServer.txtという英文のテキストファイルで確認できる。日本語版BF2を所有しているなら,日本語版をインストールしてあるPCの「C:\Program Files\EA GAMES\Battlefield 2\Support\readme.txt」から,日本語でチェック可能だ。基本的にはBF2ServerLauncherで設定した内容で専用サーバーソフトは動作するわけだが,悪意のあるチームキラーなどを管理者権限でキックするなどといったことは,基本的にここから行う。

 ここからは動作確認。専用サーバーPCとは別のBF2用PCからBF2を起動し,「MULTIPLAYER」→「JOIN INTERNET」を選択してみてほしい。BF2ServerLauncheのServerNameで設定した名称のサーバーが一覧で表示されるはずだ。一覧に現れるまで若干の時間を要する場合があるので,そのときは少し時間をおいてから試してみるといいだろう。ここでは筆者の登録した「Quake3.jp test server」が見えているが,このように,読者の登録したサーバーが表示されていれば,専用サーバーは完全に正しく動作している。あとは,友人にログインしてもらうなどして,最終チェックをするといいだろう。

BF2用PCからマルチプレイサーバーのリストを表示させたところ。専用サーバーPCのサーバー名がリストアップされている

 なお,同じLAN内にある自分のBF2用PCから自分の専用サーバーPCにログインしてプレイしたいときに,上の画面から専用サーバーPCのサーバー名を選択してもログインできない。この場合は,初級編で紹介した「IPへ接続」を選択し,専用サーバーPCのプライベートIPアドレス(ここまでの例なら192.168.11.10)を指定する必要があるので,覚えておこう。

バトルレコーダーを利用してリプレイを撮ろう

 BF2の専用サーバーには,戦いの結果を記録する「バトルレコーダー」という機能がある。バトルレコーダーはゲームの流れをすべて記録し,デモファイルとして保存するもので,いったん記録すれば,BF2専用PCからリプレイとして閲覧できるから,作戦の検証や,反省材料として利用できる。プレイヤーが所属するクランの実力を高めるのに役に立つはずだ。

 ではさっそくバトルレコーダーを利用できるようにしていくわけだが,ただデータを記録しても,仲間が閲覧できなければ意義も半減してしまう。専用サーバーには,記録したデモファイルをWebサーバー(Webページなどが置かれているサーバーのこと)にアップロードする機能が用意されているので,これを使って,ISP(インターネットサービスプロバイダ)にFTP(File Transfer Protocol。ここでは説明しないが,FTPという"手段"を使うと考えてくれればいい)でアップロードし,友人たちのBF2用PCから利用できるようにしたい。
 まず,専用サーバーPCからBF2ServerLauncherのStopボタンを押してサーバーをいったん停止させよう。そして,先ほど後述するとした,以下の4項目について,次のように設定する。

AutoRecord:オンにするとバトルレコーダー機能が有効になる。当然オンだ

DemoDownloadURL:デモデータのアップロード先WebサーバーのURLを指定する。形式は「http://www.(ISPのアドレス)/(読者のアカウント)/bf2/」といった感じになるだろう。こればかりは読者がどのISPと契約しているかで大きく異なるので,ISPのマニュアルや設定一覧シートなどを見ながら入力してほしい

AutoDemoHook:ゲーム終了後,デモデータを転送するスクリプト(やコマンド)を指定する。初期設定では「rotate_demo.exe」という実行ファイルが指定されているが,これを使ってデモファイルをWebサーバーへアップデートするので,設定は絶対に変更してはならない

DemoQuality:デモデータの画質設定だが,インターネットを介したネットワークゲームでは1(初期設定値)が推奨されている。値が大きいほど画質は上がるものの,サーバー負荷が著しく上昇するので,初期値のまま使うべきだろう

 続いて,rotate_demo.exeの設定を行う。rotate_demo.exeの設定は,(標準設定でインストールしているなら)「C:\Program Files\EA GAMES\Battlefield 2 Server」の下に置かれている「rotate_demo.cfg」というファイルで定義されているから,これをテキストエディタで開こう。以下に挙げるような内容が見えるはずだ。頭に「#」がある行に書かれている内容が設定項目名で,赤い枠で囲んだ部分が変更すべき項目である。

file_limit:サーバーに置くデモファイル数の上限を設定する。初期値は30だ。とくに問題がないなら,初期設定のままで構わないだろう

target_root:専用サーバーPCで同時にWebサーバーを立ち上げた場合に使う設定だ。本稿では,WebサーバーはISPのものを利用するから,この設定は無視して構わない

use_ftp:初期設定では「0」だが,ここは「1」に変更しよう。これで,rotate_demo.exeはWebサーバーにFTPでデモファイルを転送できるようになる

ftp_target_dir:デモファイルのアップロード先を,ISPの設定に即して,先に設定したDemoDownloadURLと対応するように設定する。分かりづらいと思うが,FTPクライアントソフトからISPのWebサーバーに接続すると,基本的には特定のディレクトリ(≒場所)が開くと思う。そのディレクトリから,DemoDownloadURLで指定したbf2ディレクトリまでの階層構成を設定すればいい。「path/to/webroot/demos」とあるのは書式見本なので,これをいったん削除してから,書式見本のようにスラッシュ記号で区切りながら場所を指定しよう

ftp_server:WebサーバーへFTPでファイルをアップロードするときに必要な,アップロード先のアドレスを設定しよう。初期設定の「my.ftp.server」を削除して,ISPから提供されている,FTP接続時のアドレスを,「ftp://」抜き(「ftp://www.myftp.ne.jp/」だとしたら「www.myftp.ne.jp」)と入力する

ftp_user:初期設定の「my_user」を削除して,FTP接続時に必要なユーザー名を設定する。これもISPから提供されているはずだ

ftp_password:同じく初期設定の「my_password」を削除し,ISPから提供されているFTP接続時のパスワードを入力する

 ここまで処理したら,テキストエディタから上書き保存する。すると,専用サーバーはゲームが終わるたびにデモファイルを自動的にFTPでWebサーバーへ転送してくれるようになるはずだ。BF2ServerLauncherからStartボタンを押して,専用サーバーを起動しよう。

 さて,BF2専用PCからこのデモファイルを入手するにはどうしたらいいだろうか。ここからはゲームに参加したプレイヤー側の操作になるが,一試合終わったとしよう。プレイヤー側のBF2専用PCでこのデモファイルを再生したいときは,BF2から「COMMUNITY」→「BATTLERECORDER」を選択する。すると,下のような画面が表示されるはずだ。

「ブックマークを選択してバトルレコーダーファイルをダウンロードして閲覧」と説明されているように,「ブックマーク」以下には,プレイヤーが過去に参加した戦闘について,専用サーバーがデモファイルを配布しているのにもかかわらず,プレイヤーがダウンロードしていないものの一覧が,そして「ライブラリ」には,専用サーバーPCからダウンロードしたデモファイルの一覧が表示される。

バトルレコーダーからデモファイルを実行したところ

 ダウンロードに当たっては,ブックマークのリストの中から選び,画面下部中央にある「ダウンロード」ボタンを押せばいい。ダウンロードしたデモファイルはライブラリに登録されるので,その中から任意のデモファイルを選択し,「再生」ボタンを押せば,右の画面のように戦闘のリプレイがデモとして再生されるはずだ。バトルレコーダーはBF2ならではの機能なので,ぜひ活用していきたい。
 ちなみに,カメラの操作方法だが,マウスクリックするとキャラクター側面の三人称視点に切り替えられたり,矢印キーを押せばその場でフリーカメラモードに切り替えられたりと,自由に動かせる。最初はまごつくかもしれないが,敵に攻撃されるわけではないから,いろいろと試してみよう。

デモファイルからムービーを作成する

 実は,バトルレコーダーにはもう一つ,デモファイルから動画ファイルを作成する機能が備わっている。この機能を使うと,専用サーバーPCを立てた読者は,自分の専用サーバーで行われた戦闘の一部始終をムービーにして公開したり,最近日本国内でも普及の兆しを見せつつある,クランのプロモーションムービー用素材として利用したりできるようになるわけだ。
 デモファイルの動画ファイル化は,専用サーバーの管理者だけに許された機能ではなく,デモファイルを入手した人であれば誰でも実行できる。この意味で本稿の趣旨とは若干離れるが,BF2の魅力の一つでもあるので,ここで紹介しておきたい。

 デモファイルから動画ファイルを作成するには,Electronic ArtsのBF2オフィシャルサイトが配布しているWindows CMDスクリプトファイル(Windows 2000/XPで実行できるスクリプトファイル)「demo.cmd」を入手しておく必要がある。ファイルは「こちら」のページから,「click here to download the demo.cmd file」とあるリンクを右クリックして「名前を付けて保存」すれば入手可能だ。ダウンロードしたdemo.cmdを,BF2のインストール先(初期設定のままなら「C:\Program Files\EA GAMES\Battlefield 2」)にコピーしておこう。

C:\Program Files\EA GAMES\Battlefield 2\mods\bf2\Demosに,bf2demoファイルをコピーしよう

 BF2のCOMMUNITY→BATTLERECORDERでダウンロードしたデモファイルは,BF2用PCの「My Documents」以下,「\Battlefield 2\Profiles\Default\Demos」に格納される。複数のプロファイルを作っていると,\Defaultではなく,プロファイル名ごとにフォルダが作られ,その下に\Demoフォルダが作成されているはずだ。\Demoフォルダにある「〜.bf2demo」というファイルがデモファイル。ファイル名には日時がアンダーバーで区切られて記載されているので,これを頼りに動画ファイル化したいファイルを探そう。見つかったら,動画ファイル化したいデモファイルを,「C:\Program Files\EA GAMES\Battlefield 2\mods\bf2\Demos」にコピーする。以降の動作は以下の説明を参照してほしい。

スタートメニューから「プログラム」→「アクセサリ」→「コマンドプロンプト」と進んでコマンドプロンプトを起動し,左の画面のように入力する。コマンドプロンプトに慣れていない人のため補足しておくと,ここでは「c:」と入力してエンターキーを押し,さらに「cd "c:\Program Files\EA GAMES\Battlefield 2"」と入力してエンターキーを押している

動画ファイルを作成するには,「デモファイルを起動して,好みのカメラワークで戦闘を"撮影"する」作業が必要になる。ここでは「2005_08_03_16_47_46.bf2demo」というデモファイルを動画ファイル化するとして話を進めるが,まず,左の画面のように「demo +c (.bf2demoという拡張子を除いたデモファイル名) ("撮影"ファイル名)」と入力してエンターキーを押す。"撮影"ファイル名は分かりやすい,任意の名称を付ければいい。ここでは「mycam」とした

上でエンターキーを押すと,自動的にBF2が起動し,デモ再生画面に切り替わるので,「Q」キーを押す。すると,左の画面のようなメニューが表示されるはずだ。「プレイ」をクリックするとデモの再生が始まり,併せて"撮影"も始まる。ここで操作した内容はまるまる保存されるので,がんばって見栄えのいいカメラワークで戦場を撮りきろう。「プレイ」の周辺にあるのは,"撮影"中の再生速度を指定するオプション。例えば「遅 50%」を選択すれば,再生速度は実プレイ速度の半分になるので,カメラで追いやすくなる。終わったら再びQキーを押し,今度は「終了」をクリック

これで一連の"撮影"作業は終了だ。再びコマンドプロンプトに戻るので,カメラ操作が今ひとつだったとか,別のアングルからも撮っておきたいとかいった場合は,この状態で"撮影"ファイルの名称を別のものに変え,先ほどのコマンドを再度実行しよう。例えば,「mycam2」という,別アングルからの"撮影"ファイルを作成したい場合は,「demo +c auto_2005_08_03_16_47_46 mycam2」と入力してエンターキーを押せば,再び"撮影"できるようになる

満足のいく"撮影"ファイルを用意できたら,コマンドプロンプトから「demo +r (拡張子を除いたデモファイル名) ("撮影"ファイル名)」と入力。今回の例なら「demo +r auto_2005_08_03_16_47_46 mycam」(あるいは「demo +r auto_2005_08_03_16_47_46 mycam2」)となる。この状態でエンターキーを押すと,"撮影"ファイルを利用してデモファイルの再生が始まり,そしてその結果がAVIファイルとして出力される。この作業にはかなりのマシンパワーが必要で,よほど高性能なPCでもなければ,ほとんどの場合,再生がコマ送りのようになってしまうが,これはあくまで「再生が」コマ送りになっているだけで,実際の動画ファイルには影響しないから気にしなくていい。再生が終わったら,C:\Program Files\EA GAMES\Battlefield 2\mods\bf2\Demosの中を見てみよう。左のように,「(デモファイル名)+("撮影"ファイル名)」で,AVIファイルが作成されているはずだ

このAVIファイルは非圧縮なのでファイルサイズが非常に大きい。ネットで公開するなら,Windows Media形式やMPEG-1形式などに再エンコードする必要があるだろう。なお,さすがにエンコードの方法までは解説しないので,各自調べてみてほしい

本格的に運用するなら必須の,専用サーバー管理方法を理解する

 本稿を読んでいただいている読者のほとんどはゲームサーバーを運営した経験のない人だと思うが,実際に運営してみると,課題がいくつか生じてくる。その一つが維持と管理で,とくに注意したいのが悪意のあるプレイヤーの発見と排除だ。チームキラーやチーターを放置すると,プレイヤーから「管理されていないサーバー」という印象を持たれてしまう。

 BF2ServerLauncherに設定があったから,いいんじゃないの? と思う人がいるかもしれないが,実際に「Wolfenstein」サーバーを運営していたころ,悪意のあるプレイヤーに悩まされた経験から話せば,これだけでは不十分だ。先にサーバー管理コマンドについては触れたけれども,長期に渡って専用サーバーを運用していくなら,これら悪意のあるプレイヤーをいかにして迅速に発見し,排除できるかが,読者の専用サーバーが人気を集めるかどうかを決めるといってもいい。

 実は,管理コマンドは専用サーバーPC上からだけではなく,管理者(=読者)自身がプレイしている最中でも,あるいは学校や会社などの出先からでも実行できる。ここからは本気で専用サーバーを運用していく人のためのヒントとして,「専用サーバーのリモート(遠隔)管理」法を以下に説明していきたい。

専用サーバーのリモート管理を行うには,まず専用サーバーPCから若干の設定が必要だ。いったんサーバーを停止し,「C:\Program Files\EA GAMES\Battlefield 2 Server\admin」の下にdefault.cfgというファイルを新規作成する

default.cfgをテキストエディタで開き,左の画面のように2行に渡って「port=4711」「password=(適当なパスワード)」と入力する。portはリモート管理に使うポート番号で,変更不可。パスワードは管理者専用のパスワードなので,誰にも知られないようなパスワードを設定しておこう。入力したら上書き保存して終了し,BF2ServerLauncherから専用サーバーを起動する

BF2用PCから管理する(1)

BF2用PCからBF2を起動し,自分の専用サーバーにログイン。この状態で悪意のあるプレイヤーを発見した場合は,すぐに排除しなければならない。BF2上からの管理は「コンソール」を使う必要があるので,まずはコンソールを利用できるようにしよう。「OPTION」→「CONTROL」と進み,画面の右下隅にある「コンソール」に,コンソールを立ち上げるための任意のキーを設定しておく。初期設定は「End」「Delete」キーだ。ゲームでは絶対に使わないキーを割り当てておくといい。

BF2用PCから管理する(2)

ゲーム中に,コンソールを立ち上げるキーを押してみよう。画面上部に文字を入力できるスペースが表示されるが,これがコンソールだ。コンソールでは,以下に挙げるようなコマンドを(キーボードから入力してエンターキーを押すことで)利用可能だ。

rcon login(半角スペース)(パスワード):default.cfgで設定したパスワードを「rcon login」に続けて入力すると,自分が立てた専用サーバーに管理者としてログインできる

rcon exec(半角スペース)(コマンド):「rcon exec」に続けて,mapList.listなどの管理コマンドを入力すると,そのコマンドを実行できる。もちろん,実行するにはログインしていなければならない

リモート管理コンソールを利用する(1)

外出先からサーバーを管理する必要に迫られる場合もあるが,「管理したいから目の前のPCにBF2をインストール」というわけにはいかない。そんなときに利用できるのが「リモート管理コンソール」だ。これは専用サーバーソフトを標準インストールしていると「C:\Program Files\EA GAMES\Battlefield 2 Server\adminutils\rcon」に置かれているから,このrconフォルダの中身を丸ごと,ノートPCやUSBストレージなどに入れて持ち歩こう。ここでは読者が所有するノートPCの「c:\rcon」にrconフォルダをコピーしたとして話を進めていく

リモート管理コンソールを利用する(2)

外出先からノートPCをインターネットに接続し,スタートメニューからプログラム→アクセサリ→コマンドプロンプトを選択してコマンドプロンプトを開く。そして,まず「c:」と入力してエンターキーを押し,さらに「c:\rcon」と入力してまたエンターキーを押す。すると左の画面のように「C:\rcon>」と表示されるから,「remoteconsole -h (読者の自宅にあるルーターのグローバルIPアドレス)」と入力する。グローバルIPアドレスの調べ方は初級編「こちら」を参照してほしい。接続すると,「Password:」と表示されるから,default.cfgで設定したパスワードを入力してエンターキーを押すと,晴れてログイン完了となる。ここでは「rcon」を頭に付けずに,管理コマンドを入力可能だ。例えば,「BF2用PCから管理する」では「rcon exec mapList.list」と入力する必要があったが,ここでは「exec mapList.list」と入力すればいい

 思いのほか長くなってしまった。まずはここまでお付き合いいただいたことに感謝したい。専用サーバーを起動すれば,バトルレコーダーを100%活用できるのはもちろん,新たなプレイヤーとの出会いも期待できるので,BF2を媒介にした交友関係は一気に広がるはずだ。夏休みはもう残り少なくなってしまったが,ぜひ今から取り組んでみてほしい。

 最後に,「上級編の上級編」として,Linux版専用サーバー構築のヒントだけ記しておこう。Linux版専用サーバーソフトは,BF2公式サイトの「こちら」に用意されている。
 設定方法は基本的に今回紹介した方法と同じだが,BF2ServerLauncherに相当するアプリケーションは用意されていないので,各種設定の変更は(インストール先ディレクトリの)「bf2/mods/bf2/settings/serversettings.con」を直接編集して行うことになる。serversettings.conの設定内容はWindows版と同じだ。マップリストは「bf2/mods/bf2/settings/maplist.con」を編集する必要があるものの,maplist.con自体に記入例が記載されているから,それに従ってお好みのマップをリストに追加すればOKだ。起動は付属のスクリプトから「./start.sh」。
 Linuxに馴れている人はこちらもぜひ試してみてはどうだろうか。



タイトル バトルフィールド 2
開発元 Digital Illusions CE 発売元 エレクトロニック・アーツ
発売日 2005/07/07 価格 オープンプライス
 
動作環境 OS:Windows XP(+DirectX 9.0c以上),CPU:Pentium 4/1.70GHz以上(Pentium 4/2.40GHz以上推奨),メインメモリ:512MB以上(1GB以上推奨),グラフィックスメモリ:128MB以上(256MB以上推奨)

(c) 2005 Digital Illusions CE AB. All rights reserved. Battlefield 2 is a trademark of Digital Illusions CE AB. Electronic Arts, EA, EA GAMES and the EA GAMES logo are trademarks or registered trademarks of Electronic Arts Inc. in the U.S. and/or other countries. All rights reserved. All other trademarks are the property of their respective owners. EA GAMES is an Electronic Arts brand.