Diese Bibliothek wurde zugunsten von Discords GameSDK veraltet. Erfahren Sie hier mehr
Dies ist eine Bibliothek zur Verbindung Ihres Spiels mit einem lokal ausgeführten Discord-Desktop-Client. Es ist bekannt, dass es unter Windows, macOS und Linux funktioniert. Sie können die Bibliothek direkt verwenden, wenn Sie möchten, oder sie als Leitfaden zum Schreiben Ihrer eigenen verwenden, wenn sie nicht so wie sie ist zu Ihrem Spiel passt. PRs/Feedback sind willkommen, wenn Sie eine Verbesserung haben, die sich jeder wünschen könnte, oder wenn Sie beschreiben können, dass diese Ihren Anforderungen nicht entspricht.
Hier sind einige schnelle Demos enthalten, die die sehr minimale Teilmenge implementieren, um den aktuellen Status anzuzeigen, und Rückrufe dafür enthalten, wo ein vollständigeres Spiel mehr Dinge tun würde (Beitreten, Zuschauen usw.).
Die aktuellste Dokumentation für Rich Presence finden Sie immer auf unserer Entwicklerseite! Wenn Sie daran interessiert sind, Ihre eigene native Implementierung von Rich Presence über IPC-Sockets zu implementieren, anstatt unser SDK zu verwenden – hey, Sie haben doch freie Zeit, oder? – schauen Sie sich die Dokumentation zum „Hard Mode“ an.
Zeroith, Sie sollten in der Lage sein, Dinge zu entwickeln, weil Sie ein Spieleentwickler sind, oder?
Gehen Sie zunächst zur Discord-Entwicklerseite und erstellen Sie selbst eine App. Behalten Sie die Client ID
im Auge – Sie benötigen sie hier, um sie an die Init-Funktion zu übergeben.
So verwenden Sie das Rich Presense-Plugin mit Unreal Engine-Projekten:
examples/unrealstatus/Plugins/discordrpc
– in das Plugin-Verzeichnis Ihres Projekts[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
einen Include
Ordner und kopieren Sie discord_rpc.h
und discord_register.h
aus der ZIP-Datei dorthin[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
einen Win64
Ordnerlib/discord-rpc.lib
und bin/discord-rpc.dll
aus [RELEASE_ZIP]/win64-dynamic
in den Win64
Ordner [YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
einen Mac
Ordnerlibdiscord-rpc.dylib
aus [RELEASE_ZIP]/osx-dynamic/lib
in den Mac
Ordner [YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
einen Linux
Ordnerx86_64-unknown-linux-gnu
libdiscord-rpc.so
von [RELEASE_ZIP]/linux-dynamic/lib
nach Linux/x86_64-unknown-linux-gnu
Wenn Sie ein Unity-Entwickler sind und Rich Presence in Ihr Spiel integrieren möchten, befolgen Sie diese einfache Anleitung, um den Einstieg in den Erfolg zu finden:
Plugins
Ordner in Ihrem Assets
-Ordner, falls Sie noch keinen habenDiscordRpc.cs
von hier in Ihren Assets
-Ordner. Dies ist im Grunde Ihre Header-Datei für das SDK Wir haben unseren Plugins
Ordner bereit, also gehen wir plattformspezifisch vor!
x86
und x86_64
-Ordner in Assets/Plugins/
discord-rpc-win/win64-dynamic/bin/discord-rpc.dll
nach Assets/Plugins/x86_64/
discord-rpc-win/win32-dynamic/bin/discord-rpc.dll
nach Assets/Plugins/x86/
discord-rpc-osx/osx-dynamic/lib/libdiscord-rpc.dylib
nach Assets/Plugins/
libdiscord-rpc.dylib
in discord-rpc.bundle
discord-rpc-linux/linux-dynamic-lib/libdiscord-rpc.so
nach Assets/Plugins/
Jetzt kann es losgehen! Codebeispiele zur Interaktion mit dem SDK mithilfe der Header-Datei DiscordRpc.cs
finden Sie in unserem Beispiel
Laden Sie ein Release-Paket für Ihre Plattform(en) herunter – sie verfügen über Unterverzeichnisse mit verschiedenen vorgefertigten Optionen, wählen Sie das aus, das Sie benötigen, fügen Sie /include
zu Ihren Kompilierungs-Includes, /lib
zu Ihren Linker-Pfaden hinzu und verknüpfen Sie es mit discord-rpc
. Für die dynamisch verknüpften Builds müssen Sie die zugehörige Datei zusammen mit Ihrem Spiel versenden.
Erstens benötigen Sie CMake
. Es gibt verschiedene Möglichkeiten, es auf Ihrem System zu installieren, und Sie sollten sich auf deren Website informieren. Viele Paketmanager bieten auch Möglichkeiten zur Installation von CMake.
Um sicherzustellen, dass es korrekt installiert ist, geben Sie cmake --version
in Ihre Terminal-/cmd-Variante ein. Wenn Sie eine Antwort mit einer Versionsnummer erhalten, können Sie loslegen!
Es gibt eine CMake-Datei, die die Bibliothek für Sie generieren kann; Manchmal verwende ich es so:
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
Es gibt ein Wrapper-Build-Skript build.py
, das cmake
mit einigen verschiedenen Optionen ausführt.
Normalerweise führe ich build.py
aus, um Dinge zu starten, und verwende dann die generierten Projektdateien, während ich an Dingen arbeite. Es hängt von click
Bibliothek ab, also führen Sie einen kurzen pip install click
durch, um sicherzustellen, dass Sie es haben, wenn Sie build.py
ausführen möchten.
Es gibt einige CMake-Optionen, die Sie interessieren könnten:
Flagge | Standard | tut |
---|---|---|
ENABLE_IO_THREAD | ON | Wenn diese Option aktiviert ist, starten wir einen Thread für die IO-Verarbeitung. Wenn die Option deaktiviert ist, sollten Sie Discord_UpdateConnection selbst aufrufen. |
USE_STATIC_CRT | OFF | (Windows) Aktivieren Sie diese Option, um das CRT statisch zu verknüpfen und zu vermeiden, dass Benutzer das weitervertreibbare Paket installieren müssen. (Die vorgefertigten Binärdateien ermöglichen diese Option) |
BUILD_SHARED_LIBS | OFF | Erstellen Sie eine Bibliothek als DLL |
WARNINGS_AS_ERRORS | OFF | Wenn aktiviert, wird mit -Werror kompiliert (auf *nix-Plattformen). |
Warum haben wir drei davon? Dreifacher Spaß!
CI | Abzeichen |
---|---|
TravisCI | |
AppVeyor | |
Buildkite (intern) |
Dies ist ein Text-Adventure-„Spiel“, das die Verbindung zu Discord initiiert/deinifiziert und bei jedem Befehl eine Anwesenheitsaktualisierung sendet.
Dies ist ein Unity-Beispielprojekt, das eine DLL-Version der Bibliothek umschließt und Anwesenheitsaktualisierungen sendet, wenn Sie auf eine Schaltfläche klicken. Führen Sie python build.py unity
im Stammverzeichnis aus, um die richtigen Bibliotheksdateien zu erstellen und sie in ihren jeweiligen Ordnern abzulegen.
Dies ist ein Unreal-Beispielprojekt, das die DLL-Version der Bibliothek mit einem Unreal-Plugin umschließt, eine Blueprint-Klasse für die Interaktion damit bereitstellt und diese verwendet, um eine sehr einfache Benutzeroberfläche zu erstellen. Führen Sie python build.py unreal
im Stammverzeichnis aus, um die richtigen Bibliotheksdateien zu erstellen und sie in ihren jeweiligen Ordnern abzulegen.
Nachfolgend finden Sie eine Tabelle mit inoffiziellen, von der Community entwickelten Wrappern und Implementierungen von Rich Presence in verschiedenen Sprachen. Wenn Sie möchten, dass Ihr Repository hinzugefügt wird, stellen Sie bitte eine Pull-Anfrage, um Ihr Repository zur Tabelle hinzuzufügen. Das Repository sollte Folgendes enthalten:
Name | Sprache |
---|---|
Discord RPC C# | C# |
Discord RPC D | D |
discord-rpc.jar | Java |
java-discord-rpc | Java |
Discord-IPC | Java |
Discord-reiche Präsenz | JavaScript |
drpc4k | Kotlin |
lua-discordRPC | LuaJIT (FFI) |
pypräsenz | Python |
SwordRPC | Schnell |