このライブラリは、Discord の GameSDK を優先して非推奨になりました。詳細はこちら
これは、ローカルで実行されている Discord デスクトップ クライアントとゲームを接続するためのライブラリです。 Windows、macOS、Linux で動作することが知られています。必要に応じてライブラリを直接使用することも、そのままではゲームに適さない場合は独自のライブラリを作成するためのガイドとして使用することもできます。誰もが望んでいるかもしれない改善がある場合、またはこれがどのようにあなたのニーズを満たしていないかを説明できる場合は、PR/フィードバックを歓迎します。
ここには、現在のステータスを表示するための非常に最小限のサブセットを実装し、より完全なゲームでより多くのこと (参加、観戦など) を実行するためのコールバックを備えたいくつかの簡単なデモが含まれています。
Rich Presence の最新ドキュメントは、開発者サイトでいつでも見つけることができます。 SDK を使用する代わりに、IPC ソケット経由でリッチ プレゼンスを独自にネイティブ実装することに興味がある場合は、「ハード モード」ドキュメントを参照してください。
Zeroith さんは、ゲーム開発者なので、何かを作る準備ができているはずですよね?
まず、Discord 開発者サイトにアクセスし、自分でアプリを作成します。 Client ID
を記録しておいてください。init 関数に渡すためにここで必要になります。
Unreal Engine プロジェクトで Rich Presense プラグインを使用するには:
examples/unrealstatus/Plugins/discordrpc
をプロジェクトのプラグイン ディレクトリにコピーします。[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
で、 Include
フォルダーを作成し、zip からdiscord_rpc.h
とdiscord_register.h
をそこにコピーします。[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
にWin64
フォルダーを作成しますlib/discord-rpc.lib
とbin/discord-rpc.dll
を[RELEASE_ZIP]/win64-dynamic
からWin64
フォルダーにコピーします。 [YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
にMac
フォルダーを作成しますlibdiscord-rpc.dylib
[RELEASE_ZIP]/osx-dynamic/lib
からMac
フォルダーにコピーします。 [YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
で、 Linux
フォルダーを作成します。x86_64-unknown-linux-gnu
を作成します。libdiscord-rpc.so
[RELEASE_ZIP]/linux-dynamic/lib
からLinux/x86_64-unknown-linux-gnu
にコピーします。リッチ プレゼンスをゲームに統合しようとしている Unity 開発者は、次の簡単なガイドに従って成功に向けて始めてください。
Assets
フォルダー内にPlugins
フォルダーをまだ作成していない場合は作成します。DiscordRpc.cs
ファイルをここからAssets
フォルダーにコピーします。これは基本的に SDK のヘッダー ファイルですPlugins
フォルダーの準備ができたので、プラットフォーム固有のプラグインを取得しましょう。
Assets/Plugins/
内にx86
フォルダーとx86_64
フォルダーを作成します。discord-rpc-win/win64-dynamic/bin/discord-rpc.dll
をAssets/Plugins/x86_64/
にコピーします。discord-rpc-win/win32-dynamic/bin/discord-rpc.dll
をAssets/Plugins/x86/
にコピーします。discord-rpc-osx/osx-dynamic/lib/libdiscord-rpc.dylib
をAssets/Plugins/
にコピーします。libdiscord-rpc.dylib
名前をdiscord-rpc.bundle
に変更しますdiscord-rpc-linux/linux-dynamic-lib/libdiscord-rpc.so
Assets/Plugins/
にコピーします。準備は完了です! DiscordRpc.cs
ヘッダー ファイルを使用して SDK と対話する方法のコード例については、例を確認してください。
ご使用のプラットフォーム用のリリース パッケージをダウンロードします。さまざまな事前構築オプションを備えたサブディレクトリがあり、必要なものを選択して、コンパイル インクルードに/include
を追加し、リンカー パスに/lib
追加して、 discord-rpc
にリンクします。動的にリンクされたビルドの場合は、関連ファイルをゲームと一緒に配布する必要があります。
まず、 CMake
必要になります。システムにインストールするにはいくつかの方法があるため、Web サイトを参照してください。多くのパッケージ マネージャーは、CMake をインストールする方法も提供しています。
正しくインストールされていることを確認するには、terminal/cmd のフレーバーにcmake --version
と入力します。バージョン番号を含む応答が得られたら、準備完了です。
ライブラリを生成できる CMake ファイルがあります。時々、次のように使います。
cd < path to discord-rpc >
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX= < path to install discord-rpc to >
cmake --build . --config Release --target install
いくつかの異なるオプションを指定してcmake
を実行するラッパー ビルド スクリプトbuild.py
があります。
通常、 build.py
実行して作業を開始し、生成されたプロジェクト ファイルを使用して作業を進めます。これはclick
ライブラリに依存するため、 build.py
実行する場合は、簡単にpip install click
ライブラリがあることを確認してください。
注意すべき CMake オプションがいくつかあります。
フラグ | デフォルト | します |
---|---|---|
ENABLE_IO_THREAD | ON | 有効にすると、IO 処理を行うためのスレッドが起動されます。無効にすると、 Discord_UpdateConnection 自分で呼び出す必要があります。 |
USE_STATIC_CRT | OFF | (Windows) CRT を静的にリンクできるようにして、ユーザーが再頒布可能パッケージをインストールする必要を回避します。 (事前に構築されたバイナリにより、このオプションが有効になります) |
BUILD_SHARED_LIBS | OFF | ライブラリをDLLとしてビルドする |
WARNINGS_AS_ERRORS | OFF | 有効にすると、 -Werror を使用してコンパイルされます (*nix プラットフォーム上)。 |
なぜこれらが 3 つあるのでしょうか? 3倍楽しい!
CI | バッジ |
---|---|
トラビスCI | |
AppVeyor | |
Buildkite (内部) |
これは、Discord への接続を開始/終了し、各コマンドでプレゼンス更新を送信するテキスト アドベンチャー "ゲーム" です。
これは、ライブラリの DLL バージョンをラップし、ボタンをクリックするとプレゼンスの更新を送信するサンプル Unity プロジェクトです。ルート ディレクトリでpython build.py unity
実行して、正しいライブラリ ファイルを構築し、それぞれのフォルダーに配置します。
これは、ライブラリの DLL バージョンを Unreal プラグインでラップし、それと対話するためのブループリント クラスを公開し、それを使用して非常にシンプルな UI を作成するサンプル Unreal プロジェクトです。ルート ディレクトリでpython build.py unreal
実行して、正しいライブラリ ファイルを構築し、それぞれのフォルダーに配置します。
以下は、コミュニティが開発した非公式のさまざまな言語でのリッチ プレゼンスのラッパーと実装の表です。独自のリポジトリを追加したい場合は、テーブルにリポジトリを追加するプル リクエストを作成してください。リポジトリには以下を含める必要があります。
名前 | 言語 |
---|---|
Discord RPC C# | C# |
ディスコード RPC D | D |
discord-rpc.jar | ジャワ |
java-discord-rpc | ジャワ |
Discord-IPC | ジャワ |
Discord のリッチなプレゼンス | JavaScript |
drpc4k | コトリン |
lua-discordRPC | ルアジット (FFI) |
パイプレゼンス | パイソン |
ソードRPC | 迅速 |