テフロウのおぼえがき

手抜きや趣味に関しての一覧、手順、ノウハウなど

当ブログの概要を併記して分類を行った記事一覧は下記から

記事一覧

ブラウザゲームをDiscordのアクティビティステータスに表示する方法

はじめに

Discordのアクティビティステータスって便利ですよね。それが表示されていることでフレンドやサーバーメンバーに話題を提供したり、協力プレイのきっかけになったりしてくれます。

でも、ブラウザゲームなんかだと普通にしてもアクティビティステータスに登録できません。ブラウザベースのソシャゲなんかは特に登録しておきたいですよね。

私はGoogle Chromeを利用しているのですが、ブラウザゲームのウィンドウをDiscordのゲーム追加で追加しても、Chromeが登録されてしまい、ゲームプレイ中以外でもブラウザを開いていれば登録したゲームをプレイしているように表示されてしまいます。

解決方法

実はDiscordのアクティビティ、同じように起動したChromeのウィンドウは同じアプリケーションとして認識されてしまうんですが、別のインスタンスとして起動したChromeであれば別のアプリケーションとして認識してくれます。

つまり、別のインスタンスとしてブラウザゲームを起動し、それをゲーム追加することで、そのインスタンスのアクティビティを見てくれるようになります。具体的な手順は下記のとおりです。

  • ショートカット作成
    インスタンスを立てるたびに起動オプションを設定するのは面倒なので、ショートカットを作ってしまいます。
    新規インスタンス用のユーザーデータフォルダが必要になるので適当な場所に専用のフォルダを作成しておきます。
    次に下記の通りに設定したショートカットを作成します。

    リンク先:"[Chromeのアップリケーションパス]" --app=[ゲームのURL] --user-data-dir=[ユーザーデータフォルダのパス]
    ※私はショートカット起動時にアプリケーションモードゲームを開くようにしていますが、それが不要な方はappオプションは省略してください。

    以降、ゲームを起動する際はこのショートカットから起動するようにしましょう。
    ※上記方法だとアクティビティ登録するブラウザゲームの数だけユーザーデータフォルダが必要となります。それを回避するための方法も下記に記載します。
  • ユーザーデータをまとめる方法
    実は厳密にはインスタンスごとに別のアプリケーションとして認識しているわけではなく、user-data-dirオプションの値が違えば実際に参照しているフォルダ関係なく別のアプリケーションとして認識してくれるようです。
    どういうことかというと、ユーザーデータフォルダを一つだけ用意し、そのフォルダへのシンボリックリンクを複数用意し、それぞれそのシンボリックリンクをユーザーデータフォルダとして設定すれば、それぞれ別のアプリケーションとして認識してくれます。
    シンボリックリンクの作成方法は割愛します。
  • ゲーム追加
    上記で作成したショートカットからブラウザを開き、Discordから[Discord→設定→アクティビティ ステータス→追加する→選択:→開いたブラウザを選択→ゲームを追加]
    また、追加済みのゲームから対象のブラウザの表示名を変更しておきましょう。
    以降、ショートカットから起動したゲームはアクティビティに表示されるようになります。
    実際に私で動作を確認しているのはブラウザ版グラブルやブラウザ版クッキークリッカー、どどんとふ、CCFOLIAです。ブラウザの問題なのでブラウザゲームは問わないと思います。

デメリット

  • ブラウザ間のデータ共有ができない
    インスタンスが別となるため、普段使っているブラウザ等とはキャッシュやクッキーが共有されません。また、お気に入りや履歴が共有されません。不便ですがメリットとデメリットを比較して利用を判断してください。もし共有する方法が見つかれば追記します。
  • ゲームの数だけユーザーデータが必要
    原理上、アクティビティ登録したいアプリケーションの数だけユーザーデータが必要になります。管理やディスクサイズに少しだけ影響があります。
    一応回避策はあります。
  • 実際に参照しているユーザーデータが同じインスタンスは同時起動ができない
    特に放置ゲーム等だと、同時起動をしたい場合もあると思いますが、ユーザーデータをまとめた場合は同時起動できません。部分的にまとめたりまとめなかったりして対応してください。
  • シンボリックリンクを利用してuser-data-dirを別扱いするのって許されるかわからない
    Chrome的に問題が発生するかどうかは正直わかりません。自己責任でお願いします。

まとめ

上記方法にてブラウザゲームのアクティビティ登録が実現できます。

少々デメリットもあるため、そこを解消する他の方法、設定、起動オプションでも代用できないかと検討しています。もし見つかれば追記します。