PC・ゲーム

Minecraft MMORPG「Eltena」の技術資料を公開|PaperプラグインとNeoForge Modの構成

更新

MinecraftのMMORPGプロジェクト「Eltena」で作ってきた、サーバー側プラグイン3本とクライアント側Mod3本のソースコードをGitHubで公開しました。

公開したのは完成済みのゲームやサーバーパックではありません。プレイヤーの状態管理、画面演出、音声再生をPaperとNeoForgeの間でどう分担したかを、コードと設定から読める技術資料です。

何を公開したのか

サーバー側のPaperプラグイン クライアント側のNeoForge Mod 読める仕組み
EltenaCore EltenaAddon プレイヤー状態の同期、HUDやUIの表示
EltenaEffectCore EltenaEffect サーバーからの演出要求、カメラや画面効果
EltenaSoundCore EltenaSound 効果音と、ゲーム中の音声ファイル転送・再生

サーバー側はPure Paper / Java 21、クライアント側だけにNeoForgeを使う構成です。プレイヤーの状態や判定はサーバーで管理し、クライアントModは表示や音声を受け持ちます。6本は独立したビルドプロジェクトで、対応するサーバー・クライアント間の処理を一緒に追えるようにしています。

面白いところ:ゲーム中に音声を送って鳴らす

EltenaSoundCoreとEltenaSoundには、通常の効果音とは別に、サーバーからクライアントへ音声ファイルを転送して再生する経路があります。

サーバーが音声を分割して送り、クライアントが受信後にハッシュを照合し、キャッシュしたファイルを再生します。公開リポジトリでは、ドラゴンの咆哮音を通常の効果音と転送音声の両方に使い、二つの経路を読めるようにしました。YAMLの記述例、ファイルの置き場所、転送から再生までの流れは音声実装資料にまとめています。

「ライブアセット」という名前ですが、実装したのはゲーム中の音声転送と再生です。画像やモデル、フォントをゲーム中に転送する機能や、音声の自動差分更新は実装していません。

コードだけでなく設定も残した理由

サーバー側のYAMLに書いた音声IDが、クライアント側のサウンドイベントやファイルへどうつながるかは、コードだけを見ても把握しづらい部分です。そこで公開版には設定例と参照関係も残しました。

EltenaAddonのUIで使うフォント画像と定義も収録しています。画像はModern Font Pack由来で、元のライセンス通知と出典を記載しています。BGMとレベルアップ音のファイルは収録していませんが、元の設定例は資料から確認できます。咆哮音についても出典と個別の利用条件を第三者素材の通知に記載しました。

現在の位置づけ

この公開は未完成の実装を読むためのものです。6本のビルドは確認されていますが、公開版のゲーム内動作まで検証したという意味ではありません。魔法など、画面や設計上の痕跡があっても完成機能として案内していないものもあります。

自作コードはMITライセンスです。同梱する第三者素材には、それぞれの条件が適用されます。実装を追いたい方は、まずEltenaのREADMEから6本の構成を見て、興味のある部分のソースと資料を読んでみてください。

← ホームへ戻る