minecraftのサーバーを運営し始めました。
そこで得た知見や仕組み等をまとめます。
(古明地フランのリスナー交流サーバーのお話です。)
※ 特に記載がない限りlobby鯖でのお話しです。
仕組み
サーバー本体はRadxa Rock3Aの8GBモデルを使用しています。
一台でプロキシサーバー lobbyサーバーの役割をしています。(なおmainサーバーもありますがそれは別)
メモリ割り当てやサーバーの情報は以下の通りです。(mainは参考程度にどうぞ)
サーバー名 | サーバーの種類 | メモリ割り当て(単位:mb) |
---|---|---|
proxy | WATERFALL | 1500 |
lobby | Chiyogami | 4500 |
(main) | Paper | 8000 |
元々lobby鯖もPaper(Spigot派生)を使用していました。
しかし、Minecraft Serverはシングススレッドしか使用しないため、SBC(Single Board Computer)では性能不足が目立ってきました。(当初はそこまで気にならなかったがクリエイティブモードということもあり発展してきた。)
そのためマルチスレッド対応のChiyogami(Paper派生)に切り替えました。
Pluginはそのまま使用でき、マルチスレッドに対応ということでとてもPaperやSpigotと変わらない使い心地です。
将来的にはSBCをクラスタリングして負荷分散等もしたいと考えていますが、資金と規模的に現状はChiyogamiを使用しています。
tpsについては基本的に20~18程度。負荷がかかると12くらいまでは下がります。
他の鯖の平均tpsなどは知らないので比較はできませんが、10以下になることはないので個人的にはOKかと思ってます。(植物の成長等も止めてるので影響はあまりない。)
Plugin datapackについて
Pluginは基本的に自作(fork)のプラグインDisgotを使用しています。Disgotの特徴はDiscordとMinecraftをつなげることのできるプラグインです。
SpigotPluginとして開発していますが、Spigotの派生Paperを基にしたChiyogamiなので何の問題もなく稼働しています。
また、権限設定のプラグインやWorldEditなどのクリエイティブサーバーに必要なプラグイン等も数個入れています。
datapackについても独自の物やサーバーメンバー制作のものを使用していたりと、かなりサーバーメンバーの意見や要望を取り入れた構成としています。
難しさなど
やはり、荒らしの対処や人間関係でしょうか。
先ほどもあげたようにDiscordをコミュニケーション用に使用しています。やはりそこでの言葉使いや言い方などでのトラブル、マイクラの荒らしの対処これらは本当に大変です。
いろんな人がいるので一律に悪いわけでは全くないのですが、一部そういう人がいると、荒れます。
運営(僕とコメフラ)自身あまりルールを厳しく設けたくないので厳しくはしていませんが、やはりそういうのが目立つようになると運営として責任を持って動かないといけなくなります。
荒らしについて
実は一回しかまだ明確な荒らしというものは湧いていません。
クローズドなサーバーであるということや、ホワリス制を使用していることが挙げられます。
また荒らしができないようTNTの爆破禁止やエンドクリスタルのkill、WEの使用も承認制にしていたりします。
以上のように荒らしが沸きにくい環境を作るのがサーバーを運営していく上で大切なことだと思います。
以上、マイクラ鯖を運営している感想や構成をまとめました。
鯖の人からよく構成を聞かれるのでいつでも見れるようBlogにまとめました。
システム等が変わったらまた追記や別記事も書きます。