| 項目 | 詳細 |
|---|---|
| OS | Windows 10 Pro x64 |
| CPU | Intel Core i5 4590 |
| Memory | 24GB |
| GPU | NVIDIA GeForce GTX 1070 |
| Virtual | VMware Workstation Player |
| 項目 | 詳細 |
|---|---|
| OS | Ubuntu Server 18.04 LTS 64bit |
| CPU | Intel Core i5 4590 1 core 割当 |
| Memory | 2GB |
CPUもメモリも割当が大きければ大きいほどパフォーマンスに余裕が生まれますが、L4D2サーバはほとんどリソース食わないので1コアでいいかなと。
メモリも確認まではしてませんが、少ないほうなはずなので2GBあれば動きます(多分もっと減らせる)。
また、実メモリに余裕があるなら実メモリを使用するようにしてもいいと思います。
VMware Workstation Playerでは標準で実メモリだけでなくHDD/SSD内部のメモリファイルを使用するので転送速度が遅いとパフォーマンスが下がります。
実際のところそんなに速度低下の影響はないですが、I/OでHDD/SSDの寿命が縮みやすいかもしれないのでちょっと心配。
MemTrimRate = "0"
mainMem.useNamedFile= "FALSE"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"
MemAllowAutoScaleDown = "FALSE"
ディスクI/Oが減少しますが、設定した量だけの物理メモリを消費するため、その余裕がない状態だとホストOSごとパフォーマンス低下する恐れがあります。
物理ネットワーク接続の状態を複製は特にネットワーク接続の切り替えがないなら不要です。
合っても特に問題はないかなと思いますが。
あとはアダプタ設定にてブリッジするNICを選択します。
複数ある場合はインターネット接続に使用しているNICを選択しましょう。
$ sudo apt install openssh-server
$ sudo systemctl enable ssh
$ sudo systemctl restart ssh
$ ssh user@192.168.1.163
$ ip addr show
...
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 9a:07:6d:8d:b9:7c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.163/24 brd 192.168.1.255 scope global br0
...
SFTPも同様に22番ポートで接続するとファイルへのアクセスも可能です。
当環境ではWinSCPからSFTPでアクセスしています。
$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install lib32gcc-s1
$ mkdir ~/steamcmd && cd ~/steamcmd
$ wget http://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
$ tar zxvf steamcmd_linux.tar.gz
$ ./steamcmd.sh
起動できたらanonymouseでログインします。
Steam> login anonymous
ログインできたらL4D2サーバをダウンロードします。
Steam> app_update 222860
...
Steam> quit
Failed to init SDL priority manager: SDL not found
SDL (Simple DirectMedia Layer)がどうやら存在しないようで、Githubのissueを見るとインストールしてあげれば治るらしい。
sudo apt install libsdl2-2.0-0:i386
hostname "Server Name"
# require
sv_search_key "Any Serach Key"
sv_allow_lobby_connect_only 1
# others
mp_disable_autokick 1
sv_alltalk 0
sv_consistency 1
sv_voiceenable 1
sv_region 4
sv_log_onefile 0
sv_logbans 1
sv_lan 0
sv_pure 0
sv_cheats 0
sv_gametypes "coop"
./start_srcsd.sh -console -game left4dead2 +maxplayers 4 +exec server.cfg +map c1m1_hotel coop
ずらっと文字が流れてしばらくするとサーバが起動します。
サーバに接続するには事前にゲーム内コンソールを有効にしておく必要があります。
「設定」より、「キーボード/マウス」を開くと「開発者コンソールを許可」という項目があるので有効にします。
この状態で半角全角を押すとコンソール画面が出てきます。
mm_dedicated_force_servers "ローカルIP"
この状態でキャンペーンを選択し、「フレンドと一緒にプレイ」を選択します。
「新しいキャンペーンロビーを作成」をクリックします。
サーバのタイプを「最適な専用サーバ」を選択し、いつもどおり部屋を建てます。
connect グローバルIP
なぜか3.8でパスが追加されないので環境変数のPATHに追加しておきましょう。(3.7でもされなかったっけ?忘れた)
画像は3.7ですが、デフォルトインストールだと大体同じ場所にあるはずです。
まずLeft 4 Dead 2のWorkshopページを開きます。
すると「閲覧する」の中に「コレクション」があるので開きます。
開くと「コレクションの作成」という項目があるのでここでサーバ専用のコレクションを作成します。
アドオンのページを開くと「コレクションに追加」ボタンがあるのでクリックします。
するとコレクション一覧が出てくるので作成したコレクションをクリックするとチェックマークが入って追加されます。
まずはコレクションページを開きましょう。
赤枠あたりをクリックするとユーザーページが開きます。
するとコレクションタブがあるのでそれをクリックすると作成したコレクションが出てくるはずです。
見つかればそれを開きましょう。
コレクションページが開くとURLが出てくるので控えておきます。
SteamではデフォルトでURLを表示しない設定になっているので表示するように設定しておくと幸せになれます。
わからなければChromeなどのブラウザでもURLはわかります。
python workshop.py 1841176875
なお、詳しい説明はGithubページに書いてあるのでそちらを一読してください。
> python workshop.py 1841176875
Downloading 372020201.vpk
Downloading complete
Downloading 121086524.vpk
Downloading complete
python workshop.py
具体的には、addons.lstファイルにコレクションIDが入っていればそれを自動的に読み取って更新してくれます。
> python workshop.py 1841176875
Plugin 372020201 already up-to-date
Plugin 1615944537 already up-to-date
Downloading 121086524.vpk
Downloading complete
$ mkdir -p ~/mods/sourcemods && cd ~/mods/sourcemods
$ wget https://sm.alliedmods.net/smdrop/1.10/sourcemod-1.10.0-git6490-linux.tar.gz
$ tar zxvf sourcemod-1.10.0-git6490-linux.tar.gz
$ rsync -a cfg/ ~/Steam/steamapps/commons/Left\ 4\ Dead\ 2\ Dedicated\ Server/left4dead2/
$ rsync -a addons/ ~/Steam/steamapps/commons/Left\ 4\ Dead\ 2\ Dedicated\ Server/left4dead2/