skmp / reicast-emulator

Reicast was a multiplatform Sega Dreamcast emulator
https://reicast.emudev.org
Other
1.1k stars 345 forks source link

Discord Rich Presence functionality #1882

Open Kamaropoulos opened 4 years ago

Kamaropoulos commented 4 years ago

Discord is a widely-used communication platform across the gaming (and not only) community.

As such, it could be a nice addition to adopt or implement some of the functionality it provides for games. One of them is the so-called Rich Presence feature.

Rich Presence is a social feature of Discord that allows users to showcase the game they are currently playing and even what they are doing in it in particular. This serves a double purpose:

  1. It allows gamers to let others know what they are playing,
  2. It increases visibility of the game that is being displayed on the user's profile.

In general, it is something users like as it enhances the social aspect of the platform as a whole. For those reasons, it could be beneficial for us to implement this functionality, plus it's a pretty cool feature so why not have it in the first place!

The idea is to first be able to display that the user is playing on Reicast and then, once the Rich Presence functionality foundations are placed, add the possibility to showcase what game they are playing exactly. Here are some screenshots to illustrate how each stage could look like:

image (only Reicast logo displayed)

image (displaying specific game currently running on the emulator)

For the time being, Rich Presence is only available for Windows, Linux, and Mac. Android support might be added by Discord in the future so this issue can be revisited then to implement Rich Presence functionality for the Android platform as well.

TODO Items:

Useful Resources:

i-am-wololo commented 3 years ago

Showing the game's icon is impossible, since it would require to add an asset for every game, and i think discord has limited slots for that.

Kamaropoulos commented 3 years ago

@Dio-Off-Brando Discord does indeed have a limit for the assets you can have but the number is high enough to make it feasible to use multiple ids and use the correct id that has the current game in its assets. Visually the result would be indistinguishable.