Discourse内でのユーザー生成コンテンツの共有(Halo Infinite向け)

皆さん、こんにちは!私よりもはるかに賢い誰かが、ここで良いアプローチを推奨してくれることを願っています。カスタムなものにするためにDiscourse開発者を雇う必要があるとしてもです。

私はXboxEra.comを所有・運営しています。これは活気があり活発なDiscourse搭載フォーラムを持つ、成長中のビデオゲーム出版物です。

また、2020年からHaloのUGC(ユーザー生成コンテンツ)サイドであるForgeの最新版について、Microsoftと協力して「Forge Council」の一員としてHalo Infiniteに取り組んでいます。

私自身のコミュニティがあり、その多くがHaloに強い関心を持っているため、Forgeが11月にベータ版としてリリースされる際に、マップを共有できる場所を提供したいと考えています。

実現したいこと:

Halo Infiniteのフォーラム(forum.xboxera.com)に、マップやゲームモードを共有したいユーザー専用の投稿作成ワークフローを作成したいと考えています。

ユーザーは、それがコアな対戦マップなのか、ミニゲームなのかといった、自分の作品に関する詳細を入力できるようになります。スクリーンショットを添付したり、主要なゲームタイプ(Slayer、Strongholds、CTFなど)をアドバイスしたり、マップの説明、それが構築されている「マップキャンバス」、協力者、武器などをリストしたり、Halo Infiniteでプレイするためにマップをブックマークするためのリンクを提供したりできるようになります。

各マップは実質的に独自の「スレッド」となり、ユーザーはマップについて議論したり、フィードバックを提供したり、マップ自体を評価したりできるようになります。ユーザーはコミュニティによって提出されたマップのカテゴリ全体を横断して検索し、例えばミニゲームやコアマップなどを絞り込んで検索できるようになります。

理想的には、別のカスタムアプリケーション(例:dayone.xboxera.comを参照)を構築するのではなく、Discourseインスタンス内でこれを構築したいと考えています。

それで、賢い皆さん、何が可能でしょうか?フィードバックや質問は大歓迎です! <3

「いいね!」 1

Custom Wizard Plugin が、あなたの投稿作成ワークフローに使用できるかどうか疑問に思っています。特定のテンプレートに適合するトピックを作成するために使用できると思います。

「いいね!」 1

ゲームの種類ごとにタグを使用できます。

ディスコースを変更せずに、ユーザーに希望する情報を入力してもらうためのテンプレートを使用できます。

対照的に、さまざまな要素に対応するカスタムフィールドを備え、それらをカスタムの方法で表示するカスタムプラグインを作成することもできます。

これを検討しており、どのように機能するかを調査中です。

テンプレートは適していないと感じています。なぜなら、人間は愚かで、指示を読んだり従ったりすることを嫌うからです。そのため、ワークフローが望ましい選択肢となります。

特に、発見性を高めるために表示するという点では、カスタムプラグインが最終的な解決策になると感じています。これは、全体として最優先されるべき設計目標です。

人間については同意します。

発見しやすさ/検索については、ネイティブのディスコースによって課すことができるタグが自然に適合するため、タグで処理するのが最も良いと思います。まだタググループをチェックしていない場合は、チェックしてみてください。それらのセットの中から選択することを強制できます。

「いいね!」 1

これは素晴らしい情報です。

私が目指している(そして明らかに使いやすさとモダンなインターフェースの点で超えたい)最高の例は、おそらく Forgehub です。プラグインの観点から、このようなものを作るのは特に難しい/手間のかかることですか?

「いいね!」 1

標準的なマップリポジトリはどこかにありますか?

もしそうなら、両方のプラットフォームにプラグインを作成して、パブサブ関係を構築し、リポジトリに新しいマップが送信されるたびに新しいトピックを自動的に投稿することができます。

参照: PubSubHubbub Core 0.4 -- Working Draft

以前にそのようなものを作成したことがありますが、残念ながらオープンソースではありません。

これにはかなりの作業(マップリポジトリを所有していない場合は、承認も必要)が必要ですが、非常に実用的です。

「いいね!」 1

理解していることは正しいですか?マップリポジトリとは、HaloWaypoint経由で共有するためのURLが生成された、Forge経由で保存/公開されたすべてのマップということですか(それが彼らのやり方だと仮定して)?

私のForgeの仕組みの理解からすると、それはおそらく現実的ではないでしょう。これは、特定の作品のみをフォーラムで共有する人々のためのものになるでしょう。私の言っていることが理解できることを願っています!

「いいね!」 1

以下のようなことができます。

  • 新しいマップごとにメッセージを受信する
  • ユーザーのものではないマップを除外する(たとえば、Discourse のカスタム属性でユーザーの「Forge Author ID」をリンクするなど、何らかのキーリレーションシップを使用する)。
  • それらのトピックを作成する。

完了です。

別の方法としては、API を調査して、間欠的なポーリングを実装することも考えられます(ただし、ポーリングは一般的にコストが高く、頻繁に実行する必要がある場合はクォータを簡単に使い果たしてしまう可能性があります)。しかし、ここでも何を検索すべきかを知る必要があり、ユーザーの外部 ID を知ることが重要になります。専門的な公開 API がない場合は、既存の Web ページから情報をスクレイピングすることもできます。

「いいね!」 1