Chiyogamiという、Paperをフォークしたマルチスレッドに対応するサーバーソフトがあるというので試してみました。
#ビルド
サーバーのjarファイルはそのまま落とせず、各自ビルドして利用するようになっています。
https://github.com/Be4rJP/Chiyogami にて日本語による解説があるのでそちらを参考に。
利用するサーバーのバージョンに対応したBranchを選ぶ
現在は1.15.2、1.16.5、[1.17.1]
(https://github.com/Be4rJP/Chiyogami/tree/ver/1.17.1)の3つが用意されています。
今回は1.17.1を選択。
必要ライブラリ等の導入
1.17.1の場合はgit、jdk16が、それ以外の場合はgit、maven、jdk8が必要です。
説明すると長いので各自で導入されてください。
ビルド
BranchのREADMEにあるダウンロードリンクもしくはリポジトリをダウンロードします。
解凍後そのディレクトリでWinidowsの場合はgit-bash、linuxもしくはMacの場合はターミナルを開き./buildChiyogami.sh
を実行します。
自分の環境だと始めビルドに失敗しましたが、2,3回ほど./buildChiyogami.sh
を実行し、そのフォルダを削除してもう一度解凍からやり直したところ成功しました。
####追記(2021/09/11)
gitでは予めアカウントとのリンクが必要となります。
git config --global user.email "githubに登録しているメールアドレス"
git config --global user.name "githubに登録しているユーザー名"
ない場合はエラーを吐かれてビルドに失敗します。
テスト
いよいよビルドも完了したので起動していきます。
ビルドによってできたChiyogami-1.1x.x(ビルドしたバージョン).jarを適当な新規フォルダに移し(しなくても良さそうだけど一応)、適当に実行します。
ビルドされたjarファイルはbuildChiyogami.shなどがある解凍した階層に生成されます。
通常のものと同様最初はEULAで弾かれるので、EULA=trueにして再実行。
…?
はい。実はこれ現時点ではtimingsが有効化されていると起動に失敗するようです。
timingsの無効化
調べたところ、paper.ymlを変更する模様。
timings:
enabled: true -> ここをfalseに
これでいざもう一度。
これで起動するかと思います。
CPU使用率もしっかりと分散されているかと思います。
チャンク読み込みそこそこ上げてもついてきてくれてる。
#プラグインの動作テスト
そのままでは快適に動作することがわかりましたが、プラグインを導入した際にどのような挙動をするのかも見ていきます。
今回導入したのはGeyserとfloodgate、dynmaapの3つです。
以前試したところエラーで起動できませんでしたが修正されたそうなのでそこも含めて試してみます。
Paperの派生なのでSpigot版の物を使用。
何のエラーも吐かずすんなり起動しました。
#総括
特にバグ等もなく、プラグインも普通に動くため普通にサーバー運用も可能だと思います。
なにか間違い等あればご指摘ください。