LinuxでPortal Knightsのサーバー構築

Portal Knights

記事をご覧の方へ

現在vivibit.netは旧システムからの移行に伴い修正作業を行っています。
表示上の問題や軽微なエラーが発生する可能性がありますが、ご利用に問題はありません。
また、現在一部ファイルのダウンロードができなくなっています。
順次対応予定ですが、お急ぎの場合や問題を発見された場合はコメント欄でご指摘いただけると助かります。


Portal Knights(ポータルナイツ)というMinecraftにRPG要素を足したようなゲームを買った。

Steam:Portal Knights
ひと回り大きくなったワールドで冒険!住み慣れた世界を離れて、Portal Knightsの未知なるファンタジーの世界へ踏み出そう!このアクション満載の工作系アドベンチャーを、奇妙で3Dなサンドボックスの世界を、友達と一緒にプレイしよう。冒険...

マルチプレイで楽しく遊んでいるが、クライアントからワールドを作って接続してもらう形だと、自分が居ない時にフレンドが遊ぶためには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系だからいけるだろと思ったら思いっきり失敗した。

Index of /wine-builds

必要なファイルの準備

インストールされた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アドレスとポートを入力してアクセスする。

あとがき

眠くて段々面倒になってきたので後日追記するかもしれない。
困ったらコメントで質問してください。

コメント

タイトルとURLをコピーしました