Эта библиотека устарела в пользу GameSDK Discord. Узнайте больше здесь
Это библиотека для взаимодействия вашей игры с локально запущенным настольным клиентом Discord. Известно, что он работает в Windows, macOS и Linux. Вы можете использовать библиотеку напрямую, если хотите, или использовать ее в качестве руководства для написания своей собственной, если она не подходит вашей игре как есть. Пиар/отзывы приветствуются, если у вас есть улучшение, которое может понадобиться всем, или если вы можете описать, почему оно не соответствует вашим потребностям.
Сюда включены несколько быстрых демонстраций, которые реализуют очень минимальный подмножество для отображения текущего статуса и имеют обратные вызовы для того, где более полная игра будет выполнять больше действий (присоединение, наблюдение и т. д.).
Самую актуальную документацию по Rich Presence всегда можно найти на нашем сайте для разработчиков! Если вы заинтересованы во внедрении собственной реализации Rich Presence через сокеты IPC вместо использования нашего SDK — эй, у вас ведь есть свободное время, не так ли? — ознакомьтесь с документацией «Hard Mode».
Zeroith, вы должны быть готовы создавать что-то, потому что вы разработчик игр, верно?
Сначала зайдите на сайт разработчиков Discord и создайте себе приложение. Следите за Client ID
— он понадобится вам для перехода к функции инициализации.
Чтобы использовать плагин Rich Presense с проектами Unreal Engine:
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
Если вы разработчик Unity и хотите интегрировать Rich Presence в свою игру, следуйте этому простому руководству, чтобы начать путь к успеху:
Plugins
внутри папки Assets
, если у вас ее еще нет.DiscordRpc.cs
отсюда в папку Assets
. По сути, это ваш заголовочный файл для SDK. У нас готова папка Plugins
, так что давайте перейдем к конкретной платформе!
x86
и x86_64
внутри Assets/Plugins/
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/
Вы готовы к работе! Примеры кода о том, как взаимодействовать с SDK с помощью заголовочного файла DiscordRpc.cs
, см. в нашем примере.
Загрузите пакет выпуска для вашей платформы (платформ) — у них есть подкаталоги с различными предварительно созданными параметрами, выберите тот, который вам нужен, добавьте /include
в свои компиляционные включения, /lib
в пути компоновщика и свяжите его с помощью discord-rpc
. Для динамически связанных сборок вам необходимо отправить связанный файл вместе с игрой.
Во-первых, вам понадобится CMake
. Есть несколько разных способов установить его в вашей системе, и вам следует обратиться к их веб-сайту. Многие менеджеры пакетов также предоставляют способы установки CMake.
Чтобы убедиться, что он установлен правильно, введите cmake --version
в свой вариант терминала/cmd. Если вы получите ответ с номером версии, все готово!
Есть файл 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
, поэтому выполните быструю pip install click
чтобы убедиться, что она у вас есть, если вы хотите запустить build.py
.
Есть несколько параметров CMake, которые могут вас заинтересовать:
флаг | по умолчанию | делает |
---|---|---|
ENABLE_IO_THREAD | ON | Если этот параметр включен, мы запускаем поток для обработки ввода-вывода. Если этот параметр отключен, вам следует самостоятельно вызвать Discord_UpdateConnection . |
USE_STATIC_CRT | OFF | (Windows) Включите статическое связывание CRT, не требуя от пользователей установки распространяемого пакета. (Предварительно созданные двоичные файлы позволяют эту опцию) |
BUILD_SHARED_LIBS | OFF | Сборка библиотеки как DLL |
WARNINGS_AS_ERRORS | OFF | Если этот параметр включен, компилируется с -Werror (на платформах *nix). |
Почему у нас их три? В три раза веселее!
КИ | значок |
---|---|
ТрэвисСИ | |
AppVeyor | |
Строительный комплект (внутренний) |
Это текстовая приключенческая «игра», которая инициализирует/деинитизирует соединение с Discord и отправляет обновление присутствия по каждой команде.
Это пример проекта Unity, который представляет собой оболочку DLL-версии библиотеки и отправляет обновления присутствия при нажатии кнопки. Запустите python build.py unity
в корневом каталоге, чтобы создать правильные файлы библиотеки и поместить их в соответствующие папки.
Это пример проекта Unreal, который оборачивает версию библиотеки DLL плагином Unreal, предоставляет класс проекта для взаимодействия с ним и использует его для создания очень простого пользовательского интерфейса. Запустите python build.py unreal
в корневом каталоге, чтобы создать правильные файлы библиотеки и поместить их в соответствующие папки.
Ниже приведена таблица неофициальных оболочек и реализаций Rich Presence, разработанных сообществом, на разных языках. Если вы хотите добавить свой репозиторий, отправьте запрос на включение, добавив ваш репозиторий в таблицу. Репозиторий должен включать в себя:
Имя | Язык |
---|---|
Дискорд RPC С# | С# |
Дискорд РПК Д | Д |
discord-rpc.jar | Ява |
Java-discord-RPC | Ява |
Discord-IPC | Ява |
Богатое присутствие Discord | JavaScript |
drpc4k | Котлин |
Lua-discordRPC | ЛуаЖИТ (FFI) |
Пиприсутствие | Питон |
МечRPC | Быстрый |