はじめに

Storia とは何か、Folia に何を加えたのか、どんなソフトで構成されているのか。

Storia は、大人数のコミュニティ向けの Minecraft サーバーソフトウェアです。Paper をもとにした Folia のフォークで、Folia の リージョン並列処理 をそのまま受け継いでいます。 近くにあるチャンクを独立した「リージョン」にまとめ、リージョンごとに別々の CPU コアで同時に処理する仕組みです。 Storia はその上に、混み合ったサーバーでも全員がシングルプレイのように遊べることを目指した機能を加えています。

Storia はイタリア語で「歴史」という意味です。ロゴは博物館の入口のような柱の列をかたどっています。

Storia が加えるもの#

機能 ひとことで ドキュメント
RAM ワールド ワールドを RAM に置き、ディスクへはバックグラウンドで書き込みます。 RAM ワールド
高速な事前生成 /storia pregen は CPU コアを 1 つ残してすべて使い、途中から再開できます。 チャンクの事前生成
Tick Guard 初期地点のような混み合った場所でも快適。群れの判断を減らし、プレイヤーは制限しません。 Tick Guard
プレイヤーごとの予算 自分で負荷を増やしている人(高速で飛んでいる人)だけ、混雑中は描画距離を短くします。 プレイヤーごとの予算
物理演算の高速化 エンティティの押し合いが約 3 倍速く、結果は同じです。回路には触れません。 パフォーマンスと調整
ワールド生成の高速化 ノイズ計算を最適化。同じシードならバニラと同じ地形になります。 パフォーマンスと調整
地形生成の分担 地形生成で一番重い処理を、暗号化した通信で別のマシンに任せられます。 地形生成の分担
Storia Proxy MOTD・タブリスト・メッセージに使える 50 個のプレースホルダーを持つ Velocity のフォーク。 プロキシの導入

設計のルール#

Storia のすべての機能は、次の 3 つのルールに従っています。

  1. バニラと同じ結果。 同じシードからは同じ地形ができ、エンティティは同じ順番・同じ乱数で押し合います。 地形と物理演算の変更は、元のコードとビット単位で照合しています。
  2. 回路は止めない。 どの最適化もレッドストーンを止めたり、遅らせたり、飛ばしたりしません。初期設定では シミュレーション距離も下げないので、プレイヤーの近くのトラップや装置は動き続けます。
  3. 安全に元に戻る。 RAM が足りなければディスクから読み込み、ワーカーが遅い・止まっているときはサーバー自身が 地形を生成します。どれかの機能がうまくいかなくても、サーバーごと止まることはありません。

構成するソフト#

それぞれのつながり方の全体像は、Storia の仕組み を参照してください。

ソフト 役割 Java
Storia Minecraft サーバー本体。 25
Storia Worker 別のマシンで Storia サーバーの地形を計算します。 25
Storia Relay 何台ものワーカーに地形生成の仕事を配ります。 21 以上
Storia Proxy プレースホルダー・タブリスト・MOTD を内蔵した Velocity。 21 以上

4 つとも ダウンロードページ と GitHub Releases で公開しています。

Storia は自分のサーバーに合っている?#

次のようなサーバーに向いています。

  • プレイヤーが多く、ワールドのあちこちに散らばる(サバイバル、SMP、大きな街、スカイブロックの島など)
  • マシンに CPU コアがいくつもある
  • 使っているプラグインが Folia に対応している(プラグインの互換性 を参照)

小規模なサーバーや、Paper にしか対応していないプラグインに頼っているサーバーなら、Paper のほうが手軽です。 Folia の並列処理ではプラグインの書き方が変わり、Storia もそれを引き継いでいます。

次は 導入ガイド へ。