Portal Knights(ポータルナイツ)というMinecraftにRPG要素を足したようなゲームを買った。
マルチプレイで楽しく遊んでいるが、クライアントからワールドを作って接続してもらう形だと、自分が居ない時にフレンドが遊ぶためにはPortal Knightsをつけっ放しにする必要がある。
そこで24時間稼動のサーバーを作ろうと思ったが、デフォルトで用意されているサーバーがWindowsの実行ファイルでLinux向けのものが用意されていないようだった。
これを動かす為にメインPCをつけっ放しにするなら同じことなので、Windows向けのPortal KnightsサーバーをWineを使ってLinux上で動かした。
この記事はその備忘録で、新規のDebian StretchでPortal Knightsのサーバーを動かし、外部から接続してもらうまでの事を書く。
Windowsでやりたい人はこの記事を読む必要はない。
スペック等
サーバーマシンのスペック
Portal Knightsは最大4人のマルチプレイなので、大量のプレイヤーをさばく必要はない。
ゆとりを持ってHDD:40GB、CPU(AMD A8-7670K):1Core2Socket、RAM:2GBとしているが、全体的に半分程度のリソースでも問題なく動作すると思う。
OS
Wineが入れば何でもいいとおもうが、今回はDebian Stretchを新規にインストールした。
[ktms_ads]
Portal Knightsサーバー構築手順
Wineのインストール
DebianのWineは例によってバージョンが古いので、リポジトリを追加して新しいもの(今回は3.0.2)をインストールする。
パッケージ管理なんかで最新のものがサクっと入るならこの項目はすっとばして良い。
適当なユーザーでsudoが設定されている前提のコマンドとなる。
[bash]
sudo dpkg –add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/Release.key
sudo apt-key add Release.key
sudo apt-add-repository https://dl.winehq.org/wine-builds/debian/
sudo apt-get update
sudo apt-get install –install-recommends winehq-stable
wine –version #バージョンを確認
[/bash]
apt-add-repository行を実行して「コマンドがない」と言われた場合
以下のコマンドを順次実行。
[bash]
$ sudo apt-get install apt-file
$ sudo apt-file update
$ sudo apt-get install software-properties-common
[/bash]
Debian以外の場合
以下からそれっぽいのを探す。無い場合はOS+Wineでググる。
自分は参考となったサイトにubuntuって書いてあってDeb系だからいけるだろと思ったら思いっきり失敗した。
必要なファイルの準備
インストールされたPortal Knightsのローカルファイルにdedicated_server.zipというサーバーが入っているファイルがあるので適当にサーバーに持ってくる。
自分の場合は新規OSで面倒だったのでサーバーにアップしてwgetした。
これをunzipして適当なディレクトリに展開しておく。
[bash]
unzip dedicated_server.zip
[/bash]
サーバーの設定
サーバーの設定ファイルは一度起動しないと出てこないので一度起動してすぐ終了させる。
Ctrl+Cでシグナルは受けたようだが多分Wineで動かしてる問題できれいに終了しなかったのでゲストを再起動するハメになった。
[bash]
wine pk_dedicated_server.exe
[/bash]
server_config.jsonが作られるのでそれを好きに編集する。
ASCIIかUTF-8で書く必要があるので注意。
[bash]
vi server_config.json
[/bash]
BasicServerData
name:サーバーの表示名
ipv4:0.0.0.0推奨(アドレスを0.0.0.0にすると、ホストコンピュータは全てのローカルネットワークのトラフィックを接続可能にします)
port:任意のUDPポートを書くがデフォルトの16365で良いだろう
gameplayMode
Adventure もしくは Creative(たぶん)
アドベンチャーが通常の遊び方。
universeSize
ワールドの大きさをSmall、Normal、Largeで指定。
hideConsoleWindow
false
trueにするとサーバー起動時にエラーが出て立ち上がらなかったので注意!
恐らくWineで動かしてるから起きる問題。
admins、users、guests
adminsが管理者、usersが一般ユーザー、guestsがゲストユーザーとなる。
それぞれにパスワードを設定し、そのパスワードでログインすると各権限でログインしたことになるようだ。
基本的に管理者とゲストは使う必要が無いと思う。
credentials:パスワード
canLogin:この権限でのログインを許可するか
canKickPlayers:プレイヤーのキックを認めるか
canModifyWorld:ブロックや資源を置いたり除去したりできるか
canInteractWith~:ロック可能物への干渉ができるかだが、2018年2月15日の情報では機能してないらしい
実行
[bash]
wine pk_dedicated_server.exe
[/bash]
サーバーへの接続
外部からのアクセス
外部からアクセスしてもらう為にはUDP16365(設定でポートを変更していたらそのポートに合わせる)を開放する必要がある。
ポート開放の方法はルーターによるため、ルーターの型番+ポート開放などで検索して各々開けること。
接続方法は相手にグローバルIPアドレスとポートを教えてアクセスしてもらう。
内部からのアクセス
サーバーがLAN内にある場合、サーバーのIPアドレスとポートを入力してアクセスする。
あとがき
眠くて段々面倒になってきたので後日追記するかもしれない。
困ったらコメントで質問してください。
コメント