이 라이브러리는 Discord의 GameSDK를 위해 더 이상 사용되지 않습니다. 여기에서 자세히 알아보세요
이는 로컬에서 실행되는 Discord 데스크톱 클라이언트와 게임을 인터페이스하기 위한 라이브러리입니다. Windows, macOS, Linux에서 작동하는 것으로 알려져 있습니다. 원하는 경우 lib를 직접 사용할 수도 있고, 현재 게임에 적합하지 않은 경우 직접 작성하기 위한 가이드로 사용할 수도 있습니다. 모두가 원하는 개선 사항이 있거나 이것이 귀하의 요구 사항을 어떻게 충족시키지 못하는지 설명할 수 있는 경우 PR/피드백을 환영합니다.
여기에는 현재 상태를 표시하기 위해 최소한의 하위 집합을 구현하고 보다 완전한 게임이 더 많은 작업(참여, 관전 등)을 수행할 수 있는 콜백이 포함된 몇 가지 빠른 데모가 포함되어 있습니다.
Rich Presence에 대한 최신 문서는 개발자 사이트에서 언제든지 찾을 수 있습니다! SDK를 사용하는 대신 IPC 소켓을 통해 Rich Presence의 고유한 기본 구현을 롤링하는 데 관심이 있다면(시간이 있으신가요?) "하드 모드" 문서를 확인하세요.
제로이스, 당신은 게임 개발자이기 때문에 뭔가를 만들 수 있는 준비가 되어 있어야겠죠?
먼저 Discord 개발자 사이트로 가서 앱을 만들어보세요. Client ID
를 추적하세요. init 함수에 전달하려면 여기에서 필요합니다.
Unreal Engine 프로젝트에서 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
폴더를 만듭니다.[RELEASE_ZIP]/win64-dynamic
의 lib/discord-rpc.lib
및 bin/discord-rpc.dll
Win64
폴더에 복사합니다. [YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
에서 Mac
폴더를 만듭니다.[RELEASE_ZIP]/osx-dynamic/lib
에서 libdiscord-rpc.dylib
Mac
폴더로 복사합니다. [YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
에서 Linux
폴더를 생성합니다.x86_64-unknown-linux-gnu
만듭니다.[RELEASE_ZIP]/linux-dynamic/lib
에서 libdiscord-rpc.so
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
입력하세요. 버전 번호가 포함된 응답을 받으면 준비가 완료된 것입니다!
lib를 생성할 수 있는 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배!
CI | 배지 |
---|---|
TravisCI | |
앱베이어 | |
빌드카이트(내부) |
이것은 Discord에 대한 연결을 초기화/비활성화하고 각 명령에 대한 현재 상태 업데이트를 보내는 텍스트 어드벤처 "게임"입니다.
이는 라이브러리의 DLL 버전을 래핑하고 버튼을 클릭할 때 현재 상태 업데이트를 보내는 샘플 Unity 프로젝트입니다. 루트 디렉터리에서 python build.py unity
실행하여 올바른 라이브러리 파일을 빌드하고 해당 폴더에 배치합니다.
이것은 Unreal 플러그인으로 라이브러리의 DLL 버전을 래핑하고, 상호 작용을 위한 블루프린트 클래스를 노출하고, 이를 사용하여 매우 간단한 UI를 만드는 샘플 Unreal 프로젝트입니다. 루트 디렉터리에서 python build.py unreal
실행하여 올바른 라이브러리 파일을 빌드하고 해당 폴더에 배치하세요.
다음은 다양한 언어로 된 Rich Presence에 대한 비공식 커뮤니티 개발 래퍼 및 구현 표입니다. 당신의 것을 추가하고 싶다면 테이블에 저장소를 추가하는 풀 요청을 해주세요. 저장소에는 다음이 포함되어야 합니다.
이름 | 언어 |
---|---|
디스코드 RPC C# | 기음# |
디스코드 RPC D | 디 |
불일치-rpc.jar | 자바 |
자바-불화-rpc | 자바 |
디스코드-IPC | 자바 |
불일치의 풍부한 존재 | 자바스크립트 |
drpc4k | 코틀린 |
루아-discordRPC | 루아JIT(FFI) |
피프레젠스 | 파이썬 |
소드RPC | 스위프트 |