CS1.6 のカスタムマップをサーバから高速にダウンロードさせる設定をしてみました。
CS1.6 では、デフォルトで sv_allowdownload という CVAR があり、クライアントが持っていないファイルをサーバからゲームサーバ経由でダウンロードする機能がついていますが、帯域が非常に狭く、ダウンロードするのに非常に時間がかかってしまいます。目安としては先ほどテストしたところ、8MB のファイルのダウンロードに 5 分以上かかっていました。
ところが、ウェブサーバ経由でファイルをダウンロードさせると、帯域の制限なしにファイルを送信できるので、高速にダウンロードできるようになります。ウェブサーバ経由でのダウンロードには、sv_downloadurl という CVAR を使い、その値に cstrike ディレクトリを設定します。
ゲームサーバで使うカスタムマップファイルは、ゲームサーバとは別にホスティングして利用することを考えましたが、新たなマップを追加したり削除したりする際に、ファイルホスティングしている方も同期させるのが運用上手間になるため、今回はサブドメインに hlds という VirtualHost を立てて、そこに cstrike 以下が見られるように設定しました。cstrike 以下には server.cfg があるため、ゲームサーバのパスワードや rcon パスワードが見られてしまうため、隠蔽する必要があります。そこで、空の document root を作り、そこからの alias で必要なディレクトリが見られるようにしました。Apache の設定は以下のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <VirtualHost *:80>
ServerName hlds.vaduz.tk
DocumentRoot /var/www/hlds
Alias /maps /usr/games/hlds/cstrike/maps
Alias /models /usr/games/hlds/cstrike/models
Alias /gfx /usr/games/hlds/cstrike/gfx
Alias /overviews /usr/games/hlds/cstrike/overviews
Alias /sound /usr/games/hlds/cstrike/sound
<Directory /var/www/hlds/>
AllowOverride All
order deny,allow
deny from all
allow from all
</Directory>
</VirtualHost> |
Apache からでもアクセスできるように該当のディレクトリのオーナーを確認してください。
また、ファイルの中にはパーミッションが正しく設定されていない場合があるので、注意してください。
今回は一括で以下のコマンドで変更しました。
1 2 | find /usr/games/hlds -type f -print0 | xargs -0 chmod 644 find /usr/games/hlds -type d -print0 | xargs -0 chmod 755 |
ウェブサーバからカスタムマップをダウンロードする設定が整いました。
ゲームサーバの設定を変更して、ウェブサーバ経由でファイルをダウンロードするように変更します。
server.cfg を以下のように変更します。
1 2 | sv_allowdownload 0 sv_downloadurl "http://hlds.vaduz.tk/" |
sv_allowdownload が有効のままだとウェブサーバ経由にならないので、オフにします。
sv_downloadurl は ” でクオートして、127 バイト以内に収めます。
設定後、試しにサーバに入ってみると、ほぼ一瞬でダウンロードが終了しました。
通常ファイルがない場合はサーバに入ることができないため、ないマップをダウンロードして、Steam フォルダに展開して・・・という手間が要らずに直接入ることができます。クライアントにとってもサーバに入る際の敷居が低くなるでしょう。
これは個別の問題ですが、de_russka を使用する際に、
1 | cannnot continue without models/de_russka_tree_noleaves.mdl |
というエラーがでてしまうことがあります。
ファイル自体は
1 | models/de_russka/russka_tree_noleaves.mdl |
にありますが、見ているディレクトリが違うようで、正しくダウンロードできません。
結構利用されているマップなので、透過的にダウンロードできるようにシンボリックリンクを貼っておきました。
1 2 | cd /usr/games/hlds/cstrike/models ln -s de_russka/russka_tree_noleaves.mdl de_russka_tree_noleaves.mdl |

最近のコメント