およそ10年維持してきたMinecraftのサーバですが、2025年末をもって閉鎖することにしました。
特になにか切っ掛けがあったわけではないです。基本的に手を掛けなくても安定的に動作するサーバを目指していたし、サーバのリソースも余りまくってるので、全然維持は可能なんですが、なんせログインしてなにかすることも無いし、バージョンアップもしてない(というかプラグインが多すぎて途中からどうにもならなくなった)。既にまともにプレイしている人も、数カ月前に一人くらいみたいなそんな感じになってたので、閉じて残念と思う人も流石にいないでしょってことで、ここいらでスパッと閉じる感じです。
そんな感じですが、これまでの運用について少し書き残しておきます。
目次
Alicorn / Avalon / (だいぶ前に閉鎖した)Allegretto Terraという名前の背景
サーバを立てる以上はそれなりにプレイヤー数が居たほうがいいなって思いがありましたが、数多あるMinecraftサーバの中で目立つ方法を考えた時に(過剰なキャッチコピーは嫌いなのでそれはしない)、名前順で並び替えた時に一番上に来るように「A」から始まる名前にしました。「A」に統一してる理由は本当にそれだけです。名前の由来は以下の通り。
Alicornは始める前に他のサーバで遊んでいた時に最も高い建造物を建てようと思って、岩盤から空の最高度の高さの塔を建てたんですが、その形状のイメージから一角獣アリコーンの名前を借りてアリコーンタワーという名前を付けた感じですが、その名前をそのまま利用した感じです。
ちなみにアリコーンタワーは全部で4本作ってて、一番最初は節電鯖に建ててます。まだこのサーバはあるんですね。すごいなぁ。
Avalonの由来は、アーサー王物語からですが、街(国)作りの出来るTownyプラグインを活用したいということで、発展の行き着く先の島のようなイメージで、直感的にアヴァロンという名前にした感じです。名前をつけるのにあまり深くは考えてないですね。
Allegretto Terraはイタリア語ですが、アレグレットは音楽の用語で陽気に・テンポ良くみたいな意味なので、テンポよく楽しめる世界みたいな意味です。まぁ、そういう感じだったかはわかりませんが。
このサーバはサーバ名より先に、ワールド名としてShangri-La(シャングリラ)を決めてて、全体的にイタリア語から名前を決めてます。ワールド名がShangri-La(SkyLandの天空の理想郷)、Habitat(生息地の意味で通常World)、Tenebre(闇の意味で敵とのバトルを楽しめる)ってテーマな感じでしたね。
この鯖のテーマ的なところは自作のプラグインで、UltimaOnlineの懐古的なスキルシステムを実装したところ。ただ、UltimaOnlineの素晴らしかった自由度(正義にも悪にもなれる)をある程度実装できた一方で、管理者のわたし自身がその自由度にちゃんと向き合えなかったのが問題だった気もします。
Minecraftサーバを始めた背景
元々私がITエンジニアで、2001年くらいから勉強も兼ねてLinuxで自宅サーバを建てていたんですが、サーバってそもそも多くの利用者が居て成立するんですが、自宅サーバといってもWebとメール+αくらいしかやることが無くて、利用者が居ないサーバの管理って全然勉強にならないんですよね。
で、2012年にマイクラを始めて、この時にマイクラサーバがいい勉強の材料になりそうって思い作り始めました。
ただし、この時点では一度断念してます。
で、2013年12月に遊んでた人様のサーバ(名前も忘れたしもう閉鎖れてる)で、2本目のアリコーンタワーを建ててる時に管理者のミスで巻き戻り(HawkEyeって範囲とか細かく指定して巻き戻しできるコマンドを操作ミスで全世界を1週間くらい巻き戻したらしい)が起きた上に、バックアップを取って無くて戻せないという事故に巻き込まれ、その時にブチギレて、サーバ管理者とは何たるかを見せてやるって思ってサーバを作り、2014年2月にオープンしたのがAlicornサーバだった感じです。
ちなみに2012年に断念したのは、技術的に無理とかではなくて、コミュ障な私がどこまで人に混ざって管理できるかのチャレンジでもありました(マルチサーバでも基本的にソロプレイ)。それで断念したけど、2回目は技術者としてのプライドが勝って公開まで至った感じです。
だから、Avalonとか2つ目のサーバを建てたのも、どちらかと言うとコミュ障的に逃げたい(Alicornは子供とか多かったので面倒を見るのが辛かった)から逃げる意味合いで作ったのもあったりします。
※ちなみにコミュ障とは言え、仲良くなった仲間との付き合いが辛いと思ったことは無いですよ。社会人ですし、そこまでコミュ障では無いです。
なるべく管理に手間のかからないサーバを目指したのも、技術的なスキル向上だけでなく、プレイヤーと関わりたくなかったからってもの理由ですね。
ちなみにマイクラプレイヤーとしても2015年くらいには飽きてましたね。元々ゲームに長時間ハマらないタイプでしたが、それで3年はもったほうです。
Tactica(管理者)
マイクラを始める前にマビノギというゲームにかなりハマってましたが、その時のプレイヤー名そのままです。基本的に脳筋プレイヤーだったので反発してTactical(戦術的)からもじった名前にしてた感じです。
技術的な話(ハード編)
サーバは一度リプレースしてますが最終的にはIntel XeonのデュアルCPUで40スレッドというアホっぽい高スペックです。それをKVM(Linuxの無料の仮想サーバ)で分割した感じ。マイクラ関連の仮想サーバはゲームサーバとDBサーバとWebサーバですね(Webサーバは本当にWebサイト用途だけなので割愛)。
DBサーバを分けたのは負荷軽減にだいぶ寄与してたけど、主に巻き戻し用のHawkEyeの負荷くらいだったかなぁ。ただ、作り的にクエリキャッシュのような動きをしてたので軽かったです(似たような別のプラグインでリアルタイムに書くヤツがあって、それは重かった)
ただDBはAlicornとAvalonとでMcMMOとかのデータを共有するような用途としても使ってたので、その編は役立った感じ。
ゲームサーバは(というか他のサーバもそうだけど)仮想サーバ内を更にLinuxコンテナで分割した感じです。つまり仮想サーバの中を更に仮想化した分割してる感じ。これでAlicornとAvalonの負荷をお互いに感じさせないような作りにしてました。Disk I/Oだけは引きずられたけどね、、、。
Minecraftは基本的にJavaのメモリ管理が結構難しくて手を掛けた一方で、だいぶ勉強にはなりましたね。Javaはプログラマにメモリ管理を意識させない作りになってる一方で、いつメモリが解放されるかはJavaのシステム依存で且つ2段階で維持する感じ。つまり頻繁に使われるメモリと、そうでないメモリのサイズ設定次第でゲーム動作の性能が左右される仕組みな感じです。
CPUはシンプルでクロック速度しか関係無かったですからね。どんなにあがいても機械の性能だけしか関係しません(とは言え仮想化のチューニングは多少あった)。
ゲームサーバはMinecraftのModサーバやそれ以外にも7Days to Dieとかもこっそり上げてたけど、軽々動く反面、公開したことは無かったです。
技術的な話(プラグイン編)
Minecraftと言えばプラグイン(Bukkit Plugin)とMod(Forge)ですね。最近は他にも色々仕組みがあるようですが、私がサーバ管理してた時代はこの2つが主流でした。
基本的にはプラグインを活用したサーバ運営で、たくさんのプラグインを導入していた一方で、バージョンアップ時にプラグインが対応してこないというのに悩まされることの繰り返しでした。とは言え当初は新しいバージョンが出たら頑張って1~2周間くらいでバージョンを上げてました。これは結構大変だったなぁ。
この辺はサーバ管理されてる人共通の問題だと思いますが、とは言え、プラグインはJavaで比較的容易に導入できる仕組みが備わっていたのと、プログラムコードはGitなどで公開されていたので、最悪バージョンアップされなくても、自分でプログラムを治すか、誰かが治してくれたのを公開してくれてたので維持できてました。終盤は相当数のプラグインを治して公開してたか、自作プラグインを拡張して対応してた感じです。
サーバのバージョンは1.12止まりにしてましたが、1.13でプラグインのバージョンアップの壁となったのが、アイテムIDの体系が極端に変わってしまったところですね。
例えば旧来だとアイテムIDは数字で表現されていて、「土」のアイテムIDは「1:1」、花崗岩が「1:2」だったんですが、この辺のバージョンからそれが廃止になって「minecraft:stone」みたいな名前に変わったんですよね。Javaでのこの変化は結構最悪で、単純な名前の変化だけじゃなくて「データの型」を変えなければならず、プラグインを一新させるような改修が必要になるということで、プラグインのバージョンアップを止めてしまう人や、バージョンアップに伴って設定ファイルの再作成(英語のドキュメントを読み解いたり、そもそもそんなのは無くて直感で治したり)、そもそもデータベースに互換性をもたせられなくて、データ移行ができないとか、かなり面倒くさい問題が起きました。
プログラムそのものの質もだいぶ変わって、例えばアイテムIDを「加算」することで通常のブロックからハーフブロックへ変換させる「技」とかも使えなくなった感じです(これでブロック増殖させるバグを生み出したり悪しき文化であったことも否めませんが)。
個人的には自作プラグインでこのアイテムIDを変換する仕組みを作って、その他プラグインの修正を容易にする仕組みを作ってましたが、まぁそれもかなり限界になったのが、まさに「1.12」の頃ですね。
Forge Modについては少し勉強しましたが、どうしてもMinecraftのプログラムの難読化の壁でバージョンアップ時に大幅な修正が必要になるとのことで、結局手を出さずにじまいでした。Modサーバも何度かチャレンジしましたが、結局実現できずじまいでした。
どちらかと言うと、後半力を入れてたのはForgeModが動かせて、且つプラグインの開発も容易なSpongeというサーバプログラム用のプラグイン開発を研究してた感じですね。結局あまり流行らなかったので、泣かず飛ばずでしたが、お陰様でJavaの勉強にはなりました(このときJava Silverの資格を取って、前後仕事で活用できることはありませんでしたが、個人的なツール開発には役立ってます。
マイクラサーバにあるべき形
様々な試行錯誤をしてたけど、Minecraftの重要なポイントって「自由度」であり「破壊が出来ること」なんじゃないかなって思ってます。
Alicornの多量のプラグインや、AvalonのTowny、Allegretto Terraのスキルシステムも、それぞれ楽しめる要素や管理の手間を減らす機能を増やそうと試行錯誤した結果だけど、反面元々のMinecraftの「自由度」を奪ってしまったと反省してます。Minecraft DungeonsやLegendsもそう云う自由度を奪われてる感じで、あれってMinecraftじゃなくて良いじゃんって物に感じてしまいます。
将来仮にサーバを作るなら、逆になるべく何も入れないで自由に遊べるサーバを目指すんでしょうね。とは言え、なるべく管理の手間をかけず、平等・公平・自由にみんなが楽しめるサーバってのも非常に難しいとは思いますけどね。
もう一つ「破壊ができること」っていうのは、Minecraftの大きな特徴で、他のゲームでここまで壊せるのはあまり無い気がしますが、一方でマルチサーバでは破壊は嫌がれるので、爆発保護とか資源を別のサーバに分けたりしてる感じが多いですね。
個人的にはタワーディフェンスゲームが好きなので、壊されるのも楽しみの要素で、壊されないようにする・効率よく修復できるようにすることが一つの楽しみにもなるし、ただ作るだけなら作って終わりという飽きっぽい私にとってあまり楽しくないゲームに成り下がる感じはします。
まぁその辺はバランスが難しいし、破壊されることでゲームの進行できなくなったり、ゼロベースからやり直しってのも面白くないから、バランスが難しいですね。そういう意味でFactorioとかバランスの良い破壊があったのでヒットしたのかなと感じます。

最後に
長々と書きましたが、これを最後まで読む変わり者は居ないんだろうなと思いつつも、なんか自分の中で整理を付けるために書いてる感じなので、ここまで読まれないでも別に何も問題ない感じです。
Minecraftのマルチサーバはおそらく改めてやることは無いかなと思ってます。ある程度やりきった(Modとかの拡張で色々できるとかの話ではなく、それも1要素としてプレイは済んだ)ので改めて楽しめる要素もあまり感じないし、日々の仕事や家族の介護も忙しい中で、如何に管理の手間がかからないサーバとは言え、プラグイン開発の時間とか必要なので、そこまで私生活の中で時間は避けない感じです。
プログラミングも好きだから3Dゲーム的なのも勉強はしたけど、ゲームを作るのってものすごく膨大なエネルギーが必要ですからね。(巷で10年掛けて作ったゲームとかでも、寿命は数ヶ月程度なゲームもザラですしね)。そういう方向も無いでしょう。
とは言え、マイクラみたいにフラっと途中参加しても、マルチプレイとして平等に、自由に楽しめるゲームというのが現れたら、またサーバは建てたいかなって思うかもですね。そう云う方向性でも色々調べたり試したりはしたけど、今のところMinecraftのように様々な視点で素晴らしく完成されたゲームってまだ見つからないですね。


コメントを残す