JavaのMOD開発(サーバープラグイン)
HytaleのMOD開発システムには、開発者が独自の動作、インタラクション、ゲームの仕組みを作成できるJavaを基盤にしたMOD開発システムが入っています。 このシステムの詳細は、ゲームがまだ開発中でリリースされていないため、公に文書化されていません。現在知られている情報をまとめると以下のようになります。
HytaleのMOD開発に関する重要な詳細
HytaleのMOD開発はクライアントではなくサーバー側で行われます。MODとプラグインはサーバー上でホストされ、プレイヤーはこれらのMODサーバーに接続することで、何もインストールすることなくカスタムコンテンツを体験できることを意味します。 この手法により、MODサーバー上のすべてのプレイヤーに一貫した体験が保証されます。
JavaベースのMOD開発の概要
HytaleのサーバーサイドのMOD開発システムはJavaを基盤としており、サーバー プラグインはJARファイルとなっています。
HytaleのMOD開発がこのように設計されているのは、MinecraftのMOD開発者がJavaを基盤にしたMinecraftのMOD開発からHytaleのMOD開発へ容易に移行できるようにするためだと考えられます。 Javaに慣れているMOD開発者は、Hytale向けのMODを開発する際にすでに学んだ知識を活用することができます。
シングルプレイヤーの懸念点
名前に関係なく、サーバープラグインはシングルプレイヤーモードでも使用できます。 Hytaleのシングルプレイヤーモードではローカルのサーバーインスタンスが実行されるため、プレイヤーは1人でプレイしていてもサーバープラグインを使用できます。 つまり、サーバープラグインとして作成されたMODは、シングルプレイヤーでも同じような体験をすることができます。
Mixinシステム
MinecraftのMOD開発では、Mixinを使ってゲームコードを直接変更し、処理や値を上書きしたりリダイレクトしたりすることも可能です。 非常に強力ではありますが、ソースコードとゲームバージョンがほぼ変更されないことに依存する、やや不安定なシステムでした。
HytaleにおけるMixinに関する公式情報はまだありません。 ですが以下の理由から、Mixinをサポートする必要はないと考えています。
- 適切に設計されたゲームであれば、Mixinの使用ケースの95%は優れたAPIによって解決可能です。
実際、多くのMinecraftのMOD開発APIはAPIを提供するために単純なMixinを使用しており、それらのAPIを利用する開発者が自分でMixinを書く必要をなくしています。
- これは通常、ハードコードされた値を置き換え、動作を上書きします。
- 理想を言うならば、HytaleにはこれらをAPIまたはデータ駆動型で提供すべきです。
- またAPIはゲームバージョンよりもはるかに堅牢です。 別のAPIバージョン管理システムを導入することで、APIの大規模な変更がない限り、同じコードを何回も修正せずに済みます。