shファイルを実行して、ゲームの個人サーバーを起動したときに下記が表示されてサーバーが起動されなかったことはありませんか。
LogOnline: Warning: STEAM: Failed to initialize Steam, this could be due to a Steam server and client running on the same machine. Try running with -NOSTEAM on the cmdline to disable.
この警告が発生すると、Steam・Steam APIの初期化が実行されずに、最終的にはゲームサーバーの起動が中止されてしまいます。この記事ではこの警告に対する対処法を紹介いたします。
※レンタルサーバーを使った説明になっていますが、自作サーバーでも参考になります。
警告の原因はSteamClientのDLL ファイルの不足の可能性あり
まずは、なぜ冒頭の警告が発生しているのかを説明します。その理由は、サーバー起動処理の際に利用しているSteamClientのDLLファイルが不足しているからという原因が考えられます。不足しているDLLファイルは下記となります。
- steamclient.dll
- steamclient64.dll
- tier0_s.dll
- tier0_s64.dll
- vstdlib_s.dll
- vstdlib_s64.dll
SteamCMD経由でゲームサーバーをインストールする際にはこれらのDLLファイルがない状態のため、別途SteamClientのDLLを移行させる必要があります。
事前準備
具体的な手順を実施する前に事前条件がありますので、こちらを対応しましょう。
具体的な対処法
お使いのPCに保存されているSteamClientのDLLファイルをWinSCPを使ってサーバーに移行しましょう。
①WinSCPを開く
②WinSCPの左側をSteamClientデータを保持しているフォルダを開く
移行対象のファイルはWindowsの場合、デフォルトのままであれば「C:\Program Files (x86)\Steam」に保持されています。
②WinSCPでサーバーに接続し「/home」を開く
③下記DLLファイルをドラッグ&ドロップしてサーバーにコピーする
④下記を実行してshファイル内で実行しているexeファイルと同じパスに各データを移動する
$ mv /home/steamclient.dll {exeファイルと同じ階層のパス}
$ mv /home/steamclient.dll {exeファイルと同じ階層のパス}
$ mv /home/tier0_s.dll {exeファイルと同じ階層のパス}
$ mv /home/tier0_s64.dll {exeファイルと同じ階層のパス}
$ mv /home/vstdlib_s.dll {exeファイルと同じ階層のパス}
$ mv /home/vstdlib_s64.dll {exeファイルと同じ階層のパス}
再度サーバー起動用exeファイルを実行して問題なく実行されるか確認してください
以上で、対応は完了となります。
最後に、再度サーバー起動用exeファイル、もしくは、exeファイルの実行処理が記載されたshファイルを実行してみてください。警告が無くなっていれば問題が解決されていることになります。
もし、警告が無くならない場合は本記事の問題以外の理由が考えられるので、別途原因調査が必要となります。