L4D2でfps_maxを有効にしてくれるプラグインを試してみた。
ProdigySimさんがgithubで公開してるやつをコンパイルして試してみた。これはfps_maxというcvarを有効化するためのプラグイン。fps_maxを使うとframe per secondの最大値を設定出来るようになって、ゲームが無駄な処理を行わなくなるのでCPU負荷が軽くなる。しかしなぜかl4d2というゲームだけ、fps_maxは無効化されていて意味がわからないんだけど、それを有効化してくれるというプラグイン。どうもl4d2のfps_maxにはdevelompent onlyというflagが立っていて使えなくなっているみたい。そのdevelopment onlyフラグから解放しているのがこのプラグインのやっていること。
ソースコード https://github.com/ProdigySim/FPS-Max-Enabler
コンパイル済みのバイナリ http://game.kymt.me/misc/enable_max_fps.zip
コンパイル
まずこれをコンパイルします。俺はcygwinを使った。俺がコンパイルしたバイナリを上述してるのでそれを使う人はこの手順は必要なし
1. gitでダウンロードしてくる
$ cd ./Desktop $ git clone https://github.com/ProdigySim/FPS-Max-Enabler.git
2. HL2SDK for L4d2をダウンロードしてくる
http://hg.alliedmods.net/hl2sdks/hl2sdk-l4d2/archive/tip.zip
とりあえず俺はC:/hlsdk2_l4dに配置した。後述する環境変数で適切に設定すればこれはどこでも良い
3. 環境変数を設定する
Visual Studioでコンパイルするときにライブラリのパスは環境変数を利用して発見されるので、それをちゃんと設定してあげます。デスクトップのマイコンピューターを右クリックしてプロパティを選択。環境変数を設定します。win7だとシステムの詳細設定のところにある。
ユーザー変数を新規に追加、変数名は
HL2SDKL4D2
変数値を
C:\hlsdk_l4d2
とする
4. Visual Studioで、FPS-Max-Enabler/msvc10/enable_fps_max.sln を開きます
5. Releaseモードでコンパイルします
6. enable_fps_max.dllが生成される
使い方
俺の作ったコンパイル済みのバイナリを使う場合は、 http://game.kymt.me/misc/enable_max_fps.zip をダウンロードし展開すると、addonsフォルダが出てくるのでその中身を、l4d2のaddonsフォルダに入れます。そしたらあとはl4d2を-insecureモードで起動すればOKです。
自分でコンパイルしたものを使いたい場合は、vdfファイルを用意するか、以下のようにしてコマンドでプラグイン(dll)を読み込ませてください
plugin_load "addons/enable_fps_max"
ちゃんとロード出来たかどうかは以下のコマンドで確認できます
plugin_print
感想
-insecure付けないと使えないしあんま意味ないけど、サーバーに導入したときにクライアントでも使えるようになったりしないかなと思った。このへんがどういう役割分担されてるのかいまいちよくわかってないので出来るかわからないけど。一応IServerPluginCallbacksを継承して作ってるのでサーバーに導入してクライアントでも使えるようになりそうな気はする。
もしこれが使えるのであれば、より低スペックのPCでも楽しめるようになりやすいし、なにより無駄なCPU処理が減るので配信とかもしやすくなるだろうしいいこと尽くめな気がする。Linux用のバイナリをあとで作ってみるかー