Discourse ゲーミフィケーション

<div data-theme-toc="true"></div>
:discourse2: 概要
:open_book: インストールガイド
:test_tube: デモ

機能

Discourse は標準でゲーミフィケーション機能(バッジ、信頼レベル)を備えていますが、コミュニティによってはさらにレベルアップしたい場合があります。そこで登場するのが GitHub - discourse/discourse-gamification です。

このプラグインを使用すると、管理者はコミュニティ参加によってポイントが付与されるコミュニティスコアリングコンテストを簡単に作成および調整できます。

ポイントは、その日のイベントに対して1時間ごとに自動的に更新され、スコアは1日1回、過去10日間のスコアを再計算します。

Cheers

ユーザーは、コミュニティで特定の操作を実行することで「Cheers」を獲得します。各ユーザーのCheersスコアは、ユーザーカード、ユーザープロフィールに表示され、ユーザーディレクトリで有効にすることができます。

プラグインは気に入ったが、「cheers」という名前がコミュニティに最適ではない場合、Discourse のすべてのテキストをカスタマイズする を使用して、任意の名称に変更できます。

リーダーボード

管理者は複数のリーダーボードを作成でき、それぞれにカスタムの以下の設定が可能です。

  • 開始日
  • 終了日
  • 競合するユーザー
  • リーダーボードのプライバシー

デフォルトでは、/leaderboard にデフォルトのリーダーボードが用意されており、スコアが付与され始めた最初の日からのすべてのユーザーが表示されます。

デモは Discourse Meta で確認できます。

スコアリング対象

現在、以下のイベントで Cheers が付与されます。

  • 毎日の訪問
  • 受諾されたフラグ
  • 与えられたいいね
  • 受け取ったいいね
  • 作成された投稿
  • 読まれた投稿
  • 受諾された解決策(Discourse Solved (Accepted answer plugin) が必要)
  • 読んだ時間
  • 作成されたトピック
  • 受諾されたユーザー招待

今後のスコアリング対象については、ロードマップ を参照してください。

スコアのバックフィル

UI の「スコアの再計算」ボタンを使用して、履歴スコアを計算するバックフィルを実行できます。これは /admin/plugins/gamification ページにあります。

これは、スコアリング対象や対象となるスコアリングカテゴリを変更した場合に、リーダーボードを再計算するためにも使用できます。1日に最大5回までリスコアを生成でき、期間を選択(またはカスタム設定)できます。

設定

グローバルなカスタマイズには以下が含まれます。

  • 各アクションのスコア乗数
  • ポイントを獲得できるカテゴリの制限
  • プラグインの有効化と無効化

これらのプラグインレベルの設定は、/admin/site_settings/category/plugins?filter=plugin%3Adiscourse-gamification にあります。

リーダーボードを作成、削除、更新するには、管理者は /admin/plugins/gamification にアクセスできます。

ウィジェットとしての使用

これは、Right Sidebar Blocks theme component 内の小さな形式のウィジェットとしても表示できます。詳細についてはそちらを参照してください。

スコアに基づくバッジ

Enable Badge SQL を使用して、ゲーミフィケーションスコアに基づく自動バッジを設定できます。

ユーザーが9000以上のCheersを持っている場合のバッジの例を以下に示します。

SELECT user_id, current_timestamp AS granted_at
FROM gamification_scores
WHERE (:backfill OR user_id IN (:user_ids))
GROUP BY 1
HAVING SUM(score) > 9000

変更履歴

  • 2022-05-02T03:00:00Z - 公開リリース
  • 2022-05-10T05:00:00Z - 最近の変更をロードマップに追加

ロードマップ

(おおよその順序)

  • リーダーボードが prioritize usernames in ux の無効化を尊重するようにする

  • リーダーボードの表彰台で高解像度のアバターを使用する

  • バッジごとのカスタムスコアリングを追加する

  • リアクションごとのスコアリングを追加する(Discourse Reactions Beyond Likes が必要)

  • チャットイベントのスコアリングを追加する(Discourse Chat が必要)

  • 投票イベントのスコアリングを追加する(投票の作成、投票への参加)

  • メディアイベントのスコアリングを追加する(画像の投稿、動画の投稿、oneboxの投稿)

実装済み:

  • カスタムスコア列のユーザーディレクトリでi18nテーブルタイトルを修正
  • ステージングユーザーを無視
  • 匿名化されたユーザーを無視(メールアドレスが @anonymized.invalid に一致)
  • リーダーボード編集フォームのスタイル設定
  • リーダーボードの「あなた」リンクがフローティングヘッダーに対応するために、より大きなオフセットを必要とする..
  • 自分のユーザーの位置が100を超える場合に、リーダーボードで自分のユーザーのハイライトが機能しない問題を修正
  • ユーザーカード/プロフィールのCheersスコアにi18nの桁区切りを追加
  • リーダーボードに期間フィルターを追加
  • リーダーボード設定にデフォルトの期間フィルターを追加
  • リーダーボード設定に excluded_groups_ids を追加
  • 管理者がユーザーに任意のポイントを付与/削除できるようにし、Discourse外のスコアリングイベントとの統合を可能にする
  • スコアをクリックするとリーダーボードにリンクするようにする(ユーザープロフィールとユーザーカードの両方)

:discourse2: 私たちがホストしていますか?このプラグインは、当社の Business および Enterprise プランで利用可能です Gamification | Discourse - Civilized Discussion

「いいね!」 112

投稿が新しいトピックに分割されました:プロフィールにリンクされたリーダーボードを選択

投稿が新しいトピックに分割されました:特定のリアクションに基づいてポイントを減点する

2件の投稿が新しいトピックに分割されました:特定の期間のトップ20リーダーボードの作成

posts_created のゲーミフィケーション スコアリングに、いくつかの追加要素を考慮して調整が行われたことをお知らせします。

「いいね!」 6

素晴らしいです。各ボードで異なる採点設定を可能にする機能提案です。これにより、各ボードを個別のコミュニティ主導のコンペティションに使用できます。

例えば、「今月の最も多くの投稿」ボードでは、投稿作成スコア値を1に設定し、他のすべてを0にします。一方、「今月の最高のいいね」ボードでは、いいねが付与されたスコア値を1に設定し、他のすべてを0にします。

「いいね!」 1

これのような/u?order=likes_given&period=monthlyですか?

はい、それは似たようなアイデアですが、デフォルトのユーザーリストレイアウトではなく、ゲーミフィケーションボードの一部としてです。

Discourseのユーザーリスト(/u)は、さまざまな方法で表示できます。たとえば、グローバルサイトのユーザーリストには適していますが、ユーザーランキングページにはそれほど適していないユーザーカードディレクトリテーマコンポーネントなどです。したがって、各ゲーミフィケーションボードに個別の設定を使用するという提案は有効であり、この状況ではDiscourseのユーザーリストを使用するよりも理にかなっています。

「いいね!」 1

投稿が新しいトピックに分割されました:ポルトガル語フォーラムのゲーミフィケーション スコアリング

サイドバーからこのリーダーボードリンクを削除するにはどうすればよいですか?カスタムセクションリンク設定には表示されておらず、Moreメニューに移動させたいのですが、自動的に追加されているようです。

Metaはこれを解決したようですが、私の方では設定可能なオプションが見当たりません。

「いいね!」 1

サイトの管理者として、このセクションをカスタマイズできます。

まさに、そこにあるべきだと思います

「いいね!」 1

「もっと」セクションにドラッグするには「=」を使用できるはずです。

投稿を読み間違えました。すみません。

2件の投稿が新しいトピックに分割されました:リーダーボード表示に最低ユーザー要件はありますか?

投稿が新しいトピックに分割されました:「応援を得るにはどうすればよいですか?

2件の投稿が新しいトピックに分割されました: スコアランキングオプションの違い

投稿が新しいトピックに分割されました:「[ユーザーがポイントを失うことに不満を表明] (/t/users-complaining-about-losing-points/344927)」

いつの間にか追加されたようですが、どうすればできますか?

「いいね!」 1

@Kartoon お探しのものはこれだと思います。

「いいね!」 1

こんにちは @Discourse:wave:

Cheers を獲得できるイベントは「元に戻す」ことができるのでしょうか?例えば、フォーラムメンバーの返信を解決済みとしてマークすると、そのメンバーは 5 Cheers を受け取ります。しかし、後でその返信は解決済みではなかったと判断してマークを解除した場合、付与された 5 Cheers は失われますか? :thinking:

「いいね!」 2