H-uru / Plasma

Cyan Worlds's Plasma game engine
http://h-uru.github.io/Plasma/
GNU General Public License v3.0
205 stars 81 forks source link

Game does not properly show up in Discord #909

Open Tottel opened 3 years ago

Tottel commented 3 years ago

For starters, it's not auto-detected as a game. On top of that, trying to add it manually does not work properly, because it shows up as "External.Release"

image

It would be great if the game could auto-appear on Discord. If that is not possible, at least have it show up with a relevant name.

Deledrius commented 3 years ago

Thanks for the feature request!

Unfortunately, the current Discord SDK appears to be explicitly incompatible with FOSS, and the GPL in particular.

It would be nice to implement some of these features for people using the platform, but Discord is not friendly to non-commercial, FOSS.

According to the devblog, you should be able to manually set the name: https://blog.discord.com/all-your-game-are-detection-fd06b1683137 . I have not tested this feature myself, and have no way to do so as I do not run their software. Documentation on this feature appears to be scarce, or else I'm looking for the wrong thing.

Hopefully someone else can chime in with more information.

dpogue commented 3 years ago

My understanding from the messages in the Cyan Discord is that the MOULa client shows up as "External.Release" and the H'uru client doesn't show up at all.

The window name is set to the Product String, which is slightly different between the builds:

My guess is that in the absence of the Discord SDK, it's trying to parse the window/process title to determine the game name, and doing something naïve like taking everything after the - (and then deciding in the H'uru case that the result isn't a valid title).

Might be easy to experiment with changing the Product String on a H'uru local build to see what results we can get and try to figure out if there's a consistent parsing algorithm being used by Discord. My quick search hasn't turned up any documentation about how exactly they pull info from detected games.

Hazado commented 3 years ago

It pulls it from the Windows Title, and looks like it uses whatever is after the last dash. You can edit it manually as stated above. You just click the name in the discord client section for adding games and it lets you edit it. See screenshot below. Changed it to "Uru Live - Hazado", Current MOULA client. image

I tested with the latest Plasma client I built myself and that shows up as "Uru Live" without making changes image

Hazado commented 3 years ago

Looks like if you want it to be added automatically need to integrate the discord sdk. https://discord.com/developers/docs/rich-presence/how-to

DurinMephit commented 3 years ago

When I visit that page, it says that SDK is deprecated and the current one to look at is https://discord.com/developers/docs/game-sdk/sdk-starter-guide

I see this request as being two separate concerns, only one of which this community can easily address:

Hazado commented 3 years ago

To include the discord SDK would require a license amendment by legal@cyan.com. I.E. the below would need to be integrated into the current license.

If you modify this Program, or any covered work, by linking or combining it with the Discord Game SDK (or a modified version of that library), containing parts covered by the terms of the Discord Developer Terms of Service, the licensors of this Program grant you additional permission to convey the resulting work.

Might look like this, but legal@cyan.com would need to bless it

If you modify this Program, or any covered work, by linking or combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent JPEG Group JPEG library, Microsoft Windows Media SDK, Apple QuickTime SDK or Discord Game SDK (or a modified version of those libraries), containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG JPEG Library README, Windows Media SDK EULA, QuickTime SDK EULA, or the Discord Developer Terms of Service, the licensors of this Program grant you additional permission to convey the resulting work. Corresponding Source for a non-source form of such a combination shall include the source code for the parts of OpenSSL and IJG JPEG Library used as well as that of the covered work.

Hoikas commented 3 years ago

Unfortunately, a new license exception will never happen. Not only would Cyan have to agree, but, because we do not require a CLA, we would also have to contact and acquire approval from every single contributor ever. Some of those contributors are no longer listed in the GitHub view because they have deleted their accounts. Hence the following remark at the end of the README:

Further introduction of non-free libraries likely would require a revised license and thus permission from all contributors to the codebase. That being problematic, any additional non-free libraries are unlikely to be accepted by Cyan Worlds or the development community.