Esta biblioteca foi descontinuada em favor do GameSDK do Discord. Saiba mais aqui
Esta é uma biblioteca para fazer a interface do seu jogo com um cliente de desktop Discord executado localmente. É conhecido por funcionar em Windows, macOS e Linux. Você pode usar a biblioteca diretamente, se desejar, ou usá-la como um guia para escrever a sua própria biblioteca, caso ela não se adapte ao seu jogo como está. PRs/feedback são bem-vindos se você tiver uma melhoria que todos possam desejar ou puder descrever como isso não atende às suas necessidades.
Incluídas aqui estão algumas demonstrações rápidas que implementam o subconjunto mínimo para mostrar o status atual e têm retornos de chamada para onde um jogo mais completo faria mais coisas (entrar, assistir, etc.).
A documentação mais atualizada do Rich Presence sempre pode ser encontrada em nosso site do desenvolvedor! Se você estiver interessado em implementar sua própria implementação nativa do Rich Presence por meio de soquetes IPC em vez de usar nosso SDK - ei, você tem tempo livre, certo? - verifique a documentação do "Modo Hard".
Zeroith, você deveria estar preparado para construir coisas porque é um desenvolvedor de jogos, certo?
Primeiro, acesse o site de desenvolvedores do Discord e crie um aplicativo para você. Acompanhe o Client ID
- você precisará dele aqui para passar para a função init.
Para usar o plugin Rich Presense com projetos Unreal Engine:
examples/unrealstatus/Plugins/discordrpc
— para o diretório de plugins do seu projeto[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
, crie uma pasta Include
e copie discord_rpc.h
e discord_register.h
para ela a partir do zip[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
, crie uma pasta Win64
lib/discord-rpc.lib
e bin/discord-rpc.dll
de [RELEASE_ZIP]/win64-dynamic
para a pasta Win64
[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
, crie uma pasta Mac
libdiscord-rpc.dylib
de [RELEASE_ZIP]/osx-dynamic/lib
para a pasta Mac
[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/
, crie uma pasta Linux
x86_64-unknown-linux-gnu
libdiscord-rpc.so
de [RELEASE_ZIP]/linux-dynamic/lib
para Linux/x86_64-unknown-linux-gnu
Se você é um desenvolvedor Unity que deseja integrar o Rich Presence ao seu jogo, siga este guia simples para começar a ter sucesso:
Plugins
dentro da sua pasta Assets
se você ainda não tiver umaDiscordRpc.cs
daqui para sua pasta Assets
. Este é basicamente o seu arquivo de cabeçalho para o SDK Temos nossa pasta Plugins
pronta, então vamos especificar a plataforma!
x86
e x86_64
dentro de Assets/Plugins/
discord-rpc-win/win64-dynamic/bin/discord-rpc.dll
para Assets/Plugins/x86_64/
discord-rpc-win/win32-dynamic/bin/discord-rpc.dll
para Assets/Plugins/x86/
discord-rpc-osx/osx-dynamic/lib/libdiscord-rpc.dylib
para Assets/Plugins/
libdiscord-rpc.dylib
para discord-rpc.bundle
discord-rpc-linux/linux-dynamic-lib/libdiscord-rpc.so
para Assets/Plugins/
Você está pronto para rolar! Para exemplos de código sobre como interagir com o SDK usando o arquivo de cabeçalho DiscordRpc.cs
, confira nosso exemplo
Baixe um pacote de lançamento para sua(s) plataforma(s) - eles têm subdiretórios com várias opções pré-construídas, selecione aquele que você precisa adicionar /include
às suas inclusões de compilação, /lib
aos caminhos do vinculador e vincule com discord-rpc
. Para as compilações vinculadas dinamicamente, você precisará enviar o arquivo associado junto com o jogo.
Primeiro, você vai querer CMake
. Existem algumas maneiras diferentes de instalá-lo em seu sistema e você deve consultar o site delas. Muitos gerenciadores de pacotes também oferecem maneiras de instalar o CMake.
Para ter certeza de que está instalado corretamente, digite cmake --version
em seu tipo de terminal/cmd. Se você receber uma resposta com um número de versão, estará pronto!
Há um arquivo CMake que deve ser capaz de gerar a biblioteca para você; Às vezes eu uso assim:
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
Existe um script de construção wrapper build.py
que executa cmake
com algumas opções diferentes.
Normalmente, eu executo build.py
para começar e, em seguida, uso os arquivos de projeto gerados enquanto trabalho nas coisas. Depende da biblioteca click
, então faça um pip install click
para ter certeza de que você o possui se quiser executar build.py
.
Existem algumas opções do CMake que você pode gostar:
bandeira | padrão | faz |
---|---|---|
ENABLE_IO_THREAD | ON | Quando ativado, iniciamos um thread para fazer o processamento io; se desativado, você mesmo deve chamar Discord_UpdateConnection . |
USE_STATIC_CRT | OFF | (Windows) Permite vincular estaticamente o CRT, evitando exigir que os usuários instalem o pacote redistribuível. (Os binários pré-construídos habilitam esta opção) |
BUILD_SHARED_LIBS | OFF | Construir biblioteca como uma DLL |
WARNINGS_AS_ERRORS | OFF | Quando habilitado, compila com -Werror (em plataformas *nix). |
Por que temos três desses? Três vezes mais diversão!
IC | distintivo |
---|---|
TravisCI | |
AppVeyor | |
Buildkite (interno) |
Este é um "jogo" de aventura em texto que inicia/desativa a conexão com o Discord e envia uma atualização de presença a cada comando.
Este é um exemplo de projeto do Unity que agrupa uma versão DLL da biblioteca e envia atualizações de presença quando você clica em um botão. Execute python build.py unity
no diretório raiz para construir os arquivos de biblioteca corretos e colocá-los em suas respectivas pastas.
Este é um exemplo de projeto Unreal que envolve a versão DLL da biblioteca com um plug-in Unreal, expõe uma classe de blueprint para interagir com ela e usa isso para criar uma interface de usuário muito simples. Execute python build.py unreal
no diretório raiz para construir os arquivos de biblioteca corretos e colocá-los em suas respectivas pastas.
Abaixo está uma tabela de wrappers não oficiais desenvolvidos pela comunidade e implementações do Rich Presence em vários idiomas. Se você quiser que o seu seja adicionado, faça uma solicitação pull adicionando seu repositório à tabela. O repositório deve incluir:
Nome | Linguagem |
---|---|
Discórdia RPC C# | C# |
Discord RPC D | D |
discord-rpc.jar | Java |
java-discord-rpc | Java |
Discord-IPC | Java |
Presença rica em discórdia | JavaScript |
drpc4k | Kotlin |
lua-discordRPC | LuaJIT (FFI) |
presença de pi | Pitão |
EspadaRPC | Rápido |