私はmodsとプラグインをインストールできるようにするゲームサーバーに取り組んでいます。
ゲームのさまざまな側面(グラフィックス、サウンドマッピング、NPCデータなど)の設計を支援するために、作成キットまたはコンテンツ管理スイート(CMS)にも取り組んでいます)。
たとえば、NPC(非プレイヤーキャラクター)がlocation in the world
、direction they're facing
、name
、Sprite
を持っているとします。
次に、NPCがfaction
、またはcity that they're loyal to
を使用できるようにするプラグインを誰かが設計します。市内で犯罪が発生すると、NPCがプレーヤーを表示する方法に悪影響を与える可能性があります。これにより、さまざまなプラグインをサポートするのに十分な柔軟性を持つCMSを設計する方法について考えました。
初期状態(改造またはプラグインなし)では、約200 Npcs、200アイテム、300オブジェクト、および700その他(写真にはありません)
これを行う方法については、3つの異なるアイデアがあります。簡単にするために、cmsはWebアプリケーションの形式であると想定します。
CMSプラグイン開発者(サーバーのプラグインを作成した人など)は、新しいWebページへのリンクを追加します。これにより、NPCを特定のファクションにマップできます。(作成キットと同様) SkyrimとFalloutの場合)
開発者は、modに必要なフィールドを持つ既存のフォームに追加します。
自動拡張するタブ付きパネル。最後の要素は「+」タブになります(ブラウザウィンドウと同様)。 「+」タブをクリックすると、そのNPCに追加する機能を尋ねるウィンドウがポップアップし、その機能/プラグイン専用の新しいタブが追加されます。
この方法で拡張可能なUIを許可する別のオプションはありますか?
あなたの最善の策はオプション1です。あなたの懸念に取り組みましょう:
-プラグインごとに個別のページ/フォームはかなり重いようです
各プラグインの設定がいくつあるか確実に理解できない場合を除いて、ページ全体を指定するのが最も柔軟なオプションのようです。さらに、それはユーザーの頭の中で便利な分離を作成します。各プラグインの設定間に相互作用はなく、完全にモジュール化されています。
-個別のリンクの数が指数関数的に増加する可能性があります。
「指数関数的に」は、ここではケースを過大評価しているようです。はい、それらは増加しますが、直線的にのみであり、各文字の可視性を切り替えてリストをスクロールする方法はすでにあります。
他の選択肢については、マイナス面がプラス面をはるかに上回っていると思います。オプション1は、最大の柔軟性ですべての未知数を処理できる唯一のオプションのようです。
オプション1(邪魔にならないパントレイル付き)+/-オプション3タブex。右側のパネルのパンくず「FooCMS-> NPC->ブロック」に詳細が表示されます。ただし、論理セクションに分解すると、 CSSグリッドレイアウト を参照してください。
選択肢の論理的なフローを提供することは、すばらしいスタートです。 現代のショッピングカートを考えてください。アイテムの膨大な量とバリエーションで、ドリルダウンアイテムを取得、次にfind別のアイテムquickly。無限のスクロール/スワイプは拷問です。
混乱を取り除いたり、オプションを追加したりするためにdomを操作する-選択が行われたときに-は、ユーザーにとって大きなボーナスになります。 SinglePageAppにするのは簡単です。
2つの本当に良いライブラリは、RactiveJとVuejsです-> "ツリービューの例"
4番目のオプションは、すべてのプラグインの追加設定ダイアログです。しかし、オプションを分離するため、これは確かに最悪のオプションです。
基本的に、3つの数値を考慮する必要があります。
どの数が成長する可能性が高いかに応じて、3つのオプションのいずれかを決定する必要があります。
しかし、NPCの数は垂直方向に増加し、MODの数は水平方向に増加し、オプションの数はページ内で増加するため、最も柔軟(直観的)で直感的なのはオプション3だと思います。
右の折りたたみセクションの方がいいかもしれません。これにより、さまざまなセクションを読みやすくすることができます。タブのサイズと幅も制限されています。折りたたみ可能なセクションを使用すると、各プラグインのタイトルと目的のためにより多くのスペースがあります。垂直方向に動的に成長できます。
それはすべて、説明する必要のあるものの数(スケーラビリティ)に依存します。
これを評価する別の方法は、効率に基づいています。
オプション1のユーザーは、ワンクリックですべてにアクセスできます。何も隠されていません。
オプション2のユーザーは、すべてを表示するには、マウスを1回クリックしてページをスクロールする必要があります。スクロールするまで一部が非表示になります。
オプション3のユーザーは、すべてを表示するには、2回以上のマウスクリック(MOD /タブの数に依存)を行う必要があります。タブをクリックするまで、多くのものが非表示になります。
したがって、効率に基づく私の投票はオプション1です。