Hytale Modding
Hytale Mod開発
確立された情報サーバーインターフェイス

UIカスタマイズ

HytaleのUIカスタマイズに関する情報。

UIはサーバーサイドのMODによってカスタマイズできます。 プレイヤーに表示される多くのUIページは、サーバー所有者がMODを通じて変更できるようになっています。

HytaleのUIカスタマイズ

Hytaleは、サーバーサイドのMODを通じてUIカスタマイズの幅広い機能を提供しており、サーバー所有者はプレイヤーが操作する多くのUI ページを変更できます。

制御フロー

HytaleのUIシステムは、特定の制御フロー パターンに従います。

  1. サーバーはクライアントにUIデータを送信します
  2. クライアントがUIをレンダリングする
  3. ユーザーがUIを操作する(例:ボタンを押す)
  4. クライアントはインタラクションイベントをサーバーに送信する
  5. サーバーはイベントのコールバック処理を実行します

このアーキテクチャは次のことを意味します。

  • クライアントはUIをレンダリングし、ユーザーインタラクションをサーバーに送信する役割を担う。
  • サーバーは、ユーザーの操作に関するすべての実際の処理を担います。
パフォーマンスへの影響の可能性

すべてのUI動作はサーバーで処理されるため、UIの反応にはラグが生じます。 ボタンのクリックやその他の操作は、反映されるより先にサーバーへ送信される必要があるため、ネットワークの遅延(ping)がUIの反応速度に直接影響します。

さらに、クライアント側のMOD開発はサポートされていないため、MODの数値はクライアント上に保持されません。

UIレイアウトアセット

HytaleのUIカスタマイズ システムは、次の構造で機能します。

  • UIレイアウト:アセットとしてクライアントに送信
  • UI動作:Javaのコードで定義
  • カスタム レイアウト:既存のレイアウトを再利用するのではなく、オリジナルでUIレイアウトを作成できます(Minecraftのインベントリメニューの変更とは異なります)

UIフレームワークの実装

Hytaleは現在複数のUI実装をサポートしており、NoesisGUIに統合する予定です。

従来の実装

  • サーバーでのMODの機能の一例として機能します。
  • ゲーム内要素、UIマークアップアセット、JavaのMODコードを組み合わせて使用​​します
  • 従来の自作マークアップ言語を利用する
  • NoesisGUIに置き換えられるため廃止される予定です

NoesisGUI (主要なフレームワーク)

  • UI定義にはXAMLマークアップ言語を使用する
  • 国際化のために複数の言語をサポート
  • クライアント側ではC#バインディングで実行されます(C++ではありません)
  • HytaleのUIシステムの今後の方向性を示しています。

第三のフレームワーク

  • 現在段階的に廃止中
  • 統合作業の一環としてNoesisGUIに置き換えられます

パフォーマンスに関する考慮事項

UI処理がサーバー側で行われる性質上、考慮すべき固有のパフォーマンス特性があります。

  • 遅延の影響:ボタンのクリックやUIの操作は、効果を発揮するより先にサーバーに送信される必要があるため、ネットワークのpingはUIの応答性に直接影響します。
  • クライアントでの保存無し: クライアント側のMod開発はサポートされていないため、Modによる値はクライアント側に保持されません。
  • 最適化されたアーキテクチャ:Hytaleのシステムは、効率的な通信プロトコルと最適化されたサーバーパフォーマンスによって遅延を最小限に抑えるよう設計されており、サーバー側での処理が必要であってもスムーズな操作を実現します。

このアーキテクチャは、UIロジックをサーバー側に集約することでセキュリティと一貫性を優先しつつ、ユーザーにとって応答性の高い操作体験を維持します。