該庫已被棄用,取而代之的是 Discord 的 GameSDK。在這裡了解更多
這是一個用於將您的遊戲與本地運行的 Discord 桌面用戶端連接的庫。眾所周知,它可以在 Windows、macOS 和 Linux 上運行。如果您願意,可以直接使用該庫,或者如果它不適合您的遊戲,則可以將其用作編寫自己的庫的指南。如果您有每個人可能想要的改進,或者可以描述這如何不能滿足您的需求,歡迎 PR/回饋。
這裡包括一些快速演示,它們實現了顯示當前狀態的最小子集,並具有回調,以便更完整的遊戲可以執行更多操作(加入、觀看等)。
Rich Presence 的最新文件始終可以在我們的開發者網站上找到!如果您有興趣透過 IPC 套接字滾動自己的 Rich Presence 本地實現,而不是使用我們的 SDK(嘿,您有空閒時間,對吧?),請查看「硬模式」文件。
Zeroith,你應該準備好建造東西,因為你是遊戲開發者,對吧?
首先,前往 Discord 開發者網站並為自己製作應用程式。追蹤Client ID
您將需要它來傳遞給 init 函數。
要將 Rich Presense 外掛程式與虛幻引擎專案結合使用:
examples/unrealstatus/Plugins/discordrpc
- 複製到專案的插件目錄[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
中,建立一個Include
資料夾,並將discord_rpc.h
和discord_register.h
從 zip 複製到其中[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
如果您是希望將 Rich Presence 整合到您的遊戲中的 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
。有幾種不同的方法可以在您的系統上安裝它,您應該參考他們的網站。許多套件管理器也提供了安裝 CMake 的方法。
為了確保它安裝正確,請在您的終端/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
有一個包裝器建置腳本build.py
,它使用幾個不同的選項來運行cmake
。
通常,我會執行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 平台上)。 |
為什麼我們有這三個?三倍樂趣!
CI | 徽章 |
---|---|
特拉維斯CI | |
應用程式載體 | |
建築風箏(內部) |
這是一款文字冒險“遊戲”,可以初始化/取消初始化與 Discord 的連接,並發送每個命令的狀態更新。
這是一個範例 Unity 項目,它包裝了庫的 DLL 版本,並在您點擊按鈕時發送狀態更新。在根目錄中運行python build.py unity
來建立正確的庫檔案並將它們放在各自的資料夾中。
這是一個範例 Unreal 項目,它使用 Unreal 外掛程式包裝了庫的 DLL 版本,公開了用於與之互動的藍圖類,並使用它來製作一個非常簡單的 UI。在根目錄下運行python build.py unreal
來建立正確的庫檔案並將它們放在各自的資料夾中。
以下是非官方的、社群開發的各種語言的 Rich Presence 包裝器和實作的表格。如果您想新增您的儲存庫,請發出拉取請求,將您的儲存庫新增至表中。存儲庫應包括:
姓名 | 語言 |
---|---|
不和諧的 RPC C# | C# |
不和諧 RPC D | D |
Discord-rpc.jar | 爪哇 |
java-discord-rpc | 爪哇 |
Discord-IPC | 爪哇 |
不和諧豐富的存在 | JavaScript |
drpc4k | 科特林 |
lua-discordRPC | LuaJIT (FFI) |
pypresence | Python |
劍RPC | 迅速 |