该库已被弃用,取而代之的是 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 | 迅速 |