web-dev-qa-db-ja.com

プラグインを使用した拡張可能なUIの設計

私はmodsとプラグインをインストールできるようにするゲームサーバーに取り組んでいます。

ゲームのさまざまな側面(グラフィックス、サウンドマッピング、NPCデータなど)の設計を支援するために、作成キットまたはコンテンツ管理スイート(CMS)にも取り組んでいます)。

たとえば、NPC(非プレイヤーキャラクター)がlocation in the worlddirection they're facingnameSpriteを持っているとします。

次に、NPCがfaction、またはcity that they're loyal toを使用できるようにするプラグインを誰かが設計します。市内で犯罪が発生すると、NPCがプレーヤーを表示する方法に悪影響を与える可能性があります。これにより、さまざまなプラグインをサポートするのに十分な柔軟性を持つCMSを設計する方法について考えました。

初期状態(改造またはプラグインなし)では、約200 Npcs、200アイテム、300オブジェクト、および700その他(写真にはありません)

これを行う方法については、3つの異なるアイデアがあります。簡単にするために、cmsはWebアプリケーションの形式であると想定します。

オプション1

CMSプラグイン開発者(サーバーのプラグインを作成した人など)は、新しいWebページへのリンクを追加します。これにより、NPCを特定のファクションにマップできます。(作成キットと同様) SkyrimとFalloutの場合) Option 1

  • + CMSから追加のコードは必要ありません(新しいフォームを追加できるように保存します)
  • -プラグインごとに個別のページ/フォームはかなり重いようです
  • -個別のリンクの数が指数関数的に増加する可能性があります。

オプション2

開発者は、modに必要なフィールドを持つ既存のフォームに追加します。 Option 2

  • + CMSからの追加コードは不要(既存のフォームにスクロールバーを追加)
  • +プラグインの各部分のページは不要
  • -コントロールはスクロール可能である必要があります(限られた垂直画面領域)
  • -各フォームに複雑さを追加します(必要かどうかにかかわらず、すべての機能を追加できます)
  • -ユーザーは、必要なフィールドに到達するために、おそらく複数ページ分のフィールドをスクロールする必要があります。

オプション3

自動拡張するタブ付きパネル。最後の要素は「+」タブになります(ブラウザウィンドウと同様)。 「+」タブをクリックすると、そのNPCに追加する機能を尋ねるウィンドウがポップアップし、その機能/プラグイン専用の新しいタブが追加されます。 Option 3

  • +ユーザーがNPCに必要なデータのみを選択できるようにします
  • + NPCは、影響を受ける機能/プラグインの数が異なる場合があります(タブに影響するもののみ)
  • +軽量(開発者はパネルのコンテンツを追加するだけでよい)
  • -多くのmods /プラグインは、垂直ではなく水平スクロールを必要とします(おそらく迷子になるのが簡単です)

この方法で拡張可能なUIを許可する別のオプションはありますか?

6
user83018

オプション2と3を組み合わせて、スクロール位置と選択されたタブをリンクすることができます。
スクロール位置 の回答に応じてアクティブなタブを変更するように。

または、MacのFinderと同様に、 Millerカラム を使用できます。

2
Aprillion

あなたの最善の策はオプション1です。あなたの懸念に取り組みましょう:

-プラグインごとに個別のページ/フォームはかなり重いようです

各プラグインの設定がいくつあるか確実に理解できない場合を除いて、ページ全体を指定するのが最も柔軟なオプションのようです。さらに、それはユーザーの頭の中で便利な分離を作成します。各プラグインの設定間に相互作用はなく、完全にモジュール化されています。

-個別のリンクの数が指数関数的に増加する可能性があります。

「指数関数的に」は、ここではケースを過大評価しているようです。はい、それらは増加しますが、直線的にのみであり、各文字の可視性を切り替えてリストをスクロールする方法はすでにあります。

他の選択肢については、マイナス面がプラス面をはるかに上回っていると思います。オプション1は、最大の柔軟性ですべての未知数を処理できる唯一のオプションのようです。

0
skybondsor

オプション1(邪魔にならないパントレイル付き)+/-オプション3タブex。右側のパネルのパンくず「FooCMS-> NPC->ブロック」に詳細が表示されます。ただし、論理セクションに分解すると、 CSSグリッドレイアウト を参照してください。

選択肢の論理的なフローを提供することは、すばらしいスタートです。 現代のショッピングカートを考えてください。アイテムの膨大な量とバリエーションで、ドリルダウンアイテムを取得、次にfind別のアイテムquickly。無限のスクロール/スワイプは拷問です。

混乱を取り除いたり、オプションを追加したりするためにdomを操作する-選択が行われたときに-は、ユーザーにとって大きなボーナスになります。 SinglePageAppにするのは簡単です。

2つの本当に良いライブラリは、RactiveJとVuejsです-> "ツリービューの例"

0
nolochemical

4番目のオプションは、すべてのプラグインの追加設定ダイアログです。しかし、オプションを分離するため、これは確かに最悪のオプションです。

基本的に、3つの数値を考慮する必要があります。

  • nPCの数
  • mODの数
  • nPC/MODごとのオプションの数

どの数が成長する可能性が高いかに応じて、3つのオプションのいずれかを決定する必要があります。

しかし、NPCの数は垂直方向に増加し、MODの数は水平方向に増加し、オプションの数はページ内で増加するため、最も柔軟(直観的)で直感的なのはオプション3だと思います。

0
sc911

右の折りたたみセクションの方がいいかもしれません。これにより、さまざまなセクションを読みやすくすることができます。タブのサイズと幅も制限されています。折りたたみ可能なセクションを使用すると、各プラグインのタイトルと目的のためにより多くのスペースがあります。垂直方向に動的に成長できます。

0
Paul

それはすべて、説明する必要のあるものの数(スケーラビリティ)に依存します。

これを評価する別の方法は、効率に基づいています。

  • オプション1のユーザーは、ワンクリックですべてにアクセスできます。何も隠されていません。

  • オプション2のユーザーは、すべてを表示するには、マウスを1回クリックしてページをスクロールする必要があります。スクロールするまで一部が非表示になります。

  • オプション3のユーザーは、すべてを表示するには、2回以上のマウスクリック(MOD /タブの数に依存)を行う必要があります。タブをクリックするまで、多くのものが非表示になります。

したがって、効率に基づく私の投票はオプション1です。

0
SteveD