discord-rpc/README.md

64 lines
2.8 KiB
Markdown
Raw Normal View History

2017-07-20 23:59:15 +01:00
# Discord RPC
2017-06-24 00:04:36 +01:00
2017-08-03 18:24:08 +01:00
This is a lib and quick demos that implement the very minimal subset to show current status, and
2017-07-31 23:58:46 +01:00
have callbacks for where a more complete game would do more things. You can use the lib directly
if you like, or use it as a guide to writing your own if it doesn't suit your game as is.
2017-06-24 00:04:36 +01:00
2017-07-31 23:58:46 +01:00
PRs/feedback welcome if you have an improvement everyone might want, or can describe how this
doesn't meet your needs.
2017-07-20 23:59:15 +01:00
2017-08-16 22:00:00 +01:00
## Documentation
The most up to date documentation for Rich Presence can always be found in our [developer site](https://discordapp.com/developers/docs/topics/rich-presence)!
2017-07-20 23:59:15 +01:00
## Usage
2017-07-31 23:58:46 +01:00
Zeroith, you should be set up to build things because you are a game developer, right?
2017-07-26 00:00:12 +01:00
First, head on over to the [Discord developers site](https://discordapp.com/developers/applications/me)
2017-07-31 23:58:46 +01:00
and make yourself an app. Keep track of `Client ID` -- you'll need it here to pass to the init
function.
2017-07-26 00:00:12 +01:00
### From package
Download a release package, extract it, add `/include` to your compile includes, `/lib` to your
linker paths, and link with `discord-rpc`.
Note that the release packages were compiled using Visual Studio 2015, so the [Visual C++ Redistributable for VS2015](https://www.microsoft.com/en-us/download/details.aspx?id=48145) will be a requirement for your game. If you wish to avoid this dependency, you should compile the libraries yourself using whatever dependencies are already in your game.
2017-07-26 00:00:12 +01:00
### From repo
2017-07-31 23:58:46 +01:00
There's a [CMake](https://cmake.org/download/) file that should be able to generate the lib for
you; I use it like this:
2017-07-25 21:40:30 +01:00
```sh
2017-07-31 23:58:46 +01:00
cd <path to discord-rpc>
2017-07-20 23:59:15 +01:00
mkdir build
cd build
2017-07-31 23:58:46 +01:00
cmake .. -DCMAKE_INSTALL_PREFIX=<path to install discord-rpc to>
2017-07-26 00:00:12 +01:00
cmake --build . --config Release --target install
2017-07-20 23:59:15 +01:00
```
2017-07-31 23:58:46 +01:00
Sometimes I use the generated project files. There are a couple of CMake options you might care about:
| flag | default | does |
|------|---------|------|
| `ENABLE_IO_THREAD` | `ON` | When enabled, we start up a thread to do io processing, if disabled you should call `Discord_UpdateConnection` yourself.
| [`BUILD_SHARED_LIBS`](https://cmake.org/cmake/help/v3.7/variable/BUILD_SHARED_LIBS.html) | `OFF` | Build library as a DLL
2017-07-20 23:59:15 +01:00
2017-11-15 04:40:32 +00:00
You can also try the `build.py` script for an easy compile for whatever OS you are on.
2017-07-20 23:59:15 +01:00
## Sample: send-presence
This is a text adventure "game" that inits/deinits the connection to Discord, and sends a presence
update on each command.
2017-08-03 18:24:08 +01:00
## Sample: button-clicker
This is a sample [Unity](https://unity3d.com/) project that wraps a DLL version of the library, and
2017-08-16 22:00:00 +01:00
sends presence updates when you click on a button.
2017-09-06 22:28:49 +01:00
## Sample: unrealstatus
This is a sample [Unreal](https://www.unrealengine.com) project that wraps the DLL version of the
library with an Unreal plugin, exposes a blueprint class for interacting with it, and uses that to
make a very simple UI.