naniwa_orange技術メモ

2018-08-25 Windows10でL4D2多人数サーバーを建てる

L4D2多人数サーバーの建て方

L4D2は古いゲームの為、2018年時点で参考サイトの情報が古くなってサーバー構築で色々とつまづいた為

現時点で上手くいった経緯を記しておく。


VRChatのフレンドと遊ぶのにちょうどよいと思いL4D2で遊び始めたが、人数が増えたので製品版の協力:4人、対戦:8人ではあぶれる人が出たため自前でサーバーを建てればキャンペーン(協力、COOP)、対戦(VS)の人数制限を外せる事を知りサーバーを運用し始めた(最大32人。対戦ロビーを無理やり流用してCOOPを8人まででやるならSteamWorkshopからModダウンロードするだけでも可能)


  • 参考サイト

http://gengen5656.blog46.fc2.com/blog-entry-34.html

https://l4d2.ngnl.org/?%E3%82%B5%E3%83%BC%E3%83%90%E6%A7%8B%E7%AF%89

http://blog.livedoor.jp/shitserver/archives/51529594.html


同じPCでサーバL4D2ゲーム本体の起動はできないので、自分も遊ぶのであればサーバ用のPCとゲーム用のPCで2台を用意する必要がある。


Dedicated Server

SteamCMD


の2通りあるが、インストールSteamから簡単にできるDedicated ServerではなぜかLANモードでしか起動できず(XPの頃のゲームなので64bitだと難あり?)

2018/8/25時点


SteamCMDだと外部にサーバを公開できた。

CUI(コンソール)でインストールする必要があるが叩くのは3コマンドのみで簡単にできる

SteamCMDでサーバーに必要なプログラムインストール(と言ってもL4D2のファイルとほぼ同じ)

方法はこちらを参考

https://l4d2.ngnl.org/?%E3%82%B5%E3%83%BC%E3%83%90%E6%A7%8B%E7%AF%89


addon、pluginを入れる

まず全てのpluginを入れるのに必要な

SourceMod、metaModを入れる(必要なファイルをダウンロードしてきてフォルダにコピーのみでOK)

SourceMod

http://www.sourcemod.net/downloads.php

Metamod

http://www.metamodsource.net/


  • 多人数化用のpluginを入れる

こちらのサイトを参考

http://blog.livedoor.jp/shitserver/archives/51529594.html

left4downtown+l4dtoolz(この組み合わせは不具合が多いらしいが私の環境では安定している、どちらか1つを入れろと書いてあるサイトもあるが海外の掲示板をみると両方入れている人の方が多い印象)

COOP鯖であればl4dtoolzだけで問題無い

left4downtownはこれを基に開発されたpluginを導入するときに必要となる。windowsではleft4downtown単体で人数上限を外すことができない(addonの説明には外せるようなことが書いてあるのだが)


L4DToolZ

https://forums.alliedmods.net/showthread.php?t=93600


left4downtonw2はフォーラムのもの(0.5.4.2)は最新でないためwindowsでは動作しない。

githubから最新のものを取得する必要がある

(この辺が既存のblogだと情報が更新されていないので苦労した)


GitHub Left4Downtown2(0.6.2) Releaseフォルダのdllとgamedataのtxtをダウンロードしてくる。soファイルはlinux用のため不要

https://github.com/Attano/Left4Downtown2

フォーラムのものは動作しない Left 4 Downtown 2 (0.5.4.2) - L4D2 Only, Updated Left4Downtown

https://forums.alliedmods.net/showthread.php?t=134032


Left4Downtownのフォルダ構成は下記のようになる

left4dead2\addons\soucemod\extensions\

→left4downtown.ext.2.l4d2.dll

→left4downtown.autoload(←空のtxtファイルを作成してファイル名を変更して作成する)

left4dead2\addons\soucemod\gamedata\

→left4downtown.l4d2.txt


対戦の場合はsuperversusを入れる

https://forums.alliedmods.net/showthread.php?p=830069?p=830069

(superversusの動作にdowntownが必要なため対戦サーバにはdowntownを入れているが、COOPは今のところ必要なpluginを入れていないのでdowntownは入れていない)


私の環境では対戦サーバCOOPサーバは違うフォルダにそれぞれインストールして起動時にどちらのbatをたたくかで選択している。pluginやcfgを分けたいため。


サーバを起動するbatファイルだが、ネットで参考にした記述だとうまくいかず(強制的にLANモードになる)

cd "C:\SteamCMD\l4d2"

srcds.exe -autoupdate -console -secure -game left4dead2 +hostport 27016 +exec server.cfg

このようにパラメータからmapの指定を削って、一度サーバを起動したあとに

コンソールから「map c1m1_hotel coop」のようにマップを指定して起動すると正常に動作した

「map <マップ名> <モード>」

マップ名は(left4dead2\mapsやleft4dead2_dlc1\mapsのファイル名を参考)

c1m1_hotel

c2m1_highway

c3m1_plankcountry

c4m1_milltown_a

c5m1_waterfront

c6m1_riverbank

c7m1_docks

c8m1_apartment

c9m1_alleys

c10m1_caves

c11m1_greenhouse

c12m1_hilltop

c13m1_alpinecreek

モードは(省略するとcoopになる)

協力:coop

対戦:versus


  • フレンドでない知らない人が入ってくる

L4D2が既に下火なため滅多にないがCOOPで建ててるとたまにある。

サーバのコンソールからsteamIDでキックするか、steamGroupIdの設定とかで回避できるかも?うちでは特にやっていない。

cfgにあるサーバパスワードL4D2では使用できない(効かない)ので設定しても意味がない。


入れた方がよいplugin、cfgの設定など

【運用編】に続く

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/naniwa_orange/20180825/1535181452