pandorabox-io / in-game

Random code and stuff for in-game things
MIT License
3 stars 0 forks source link

Game chat upgrade #84

Closed Klaranth closed 3 years ago

Klaranth commented 3 years ago

orekart Replace game chat with multi client interface, e.g. Matrix client and some integration to improve usability over beerchat. Discord voice chat would be nice.

Hedgehog Have a look at https://alternativeto.net/software/discord-app/?license=opensourcems. Do the research, please, to see which one would work in the Pandorabox environment, and let us know in here what the result of your research is.

eshattow commented 3 years ago

Matrix is the way to do this, now that the main client for Android (Element chat app) has a mature client with beta support for the Matrix Spaces specification (released very recently to Google Play store FYI). Spaces implementation is more discord-like with subchannels grouped as a single project. This allows direct integration with i.e. beerchat, moreso than the IRC bridge. See how Gitter integrated Matrix to replace a bespoke chat system. Matrix will allow other bridged chat protocols to access as well instead of implementing it all in beerchat ; Users in-game would appear as individual entities in the possible Minetest Matrix bridge.

Well this would be a lot of work but for someone interested it is a valid alternative to Discord.

wsor4035 commented 3 years ago

why not just keep it as is, but use the already existing relays to matrix from the irc channels to be grouped into a matrix space? seems like the simplest solution

eshattow commented 3 years ago

why not just keep it as is, but use the already existing relays to matrix from the irc channels to be grouped into a matrix space? seems like the simplest solution

The idea is to relay through Matrix, not IRC, because of the benefits gained by Matrix: Direct messaging, access to all beerchat channels (not just '#main'), in-game commands (authenticating as your in-game user), voice and video, presence (currently pandorabot just spams "joined the game" "left the game" messages as a global context).

IRC bridging in Matrix is very good and has no downside if we just implement Matrix to connect to it, plus there is a Discord bridge and so on from Matrix so we gain so much more.

wsor4035 commented 3 years ago

you can dm the irc bot via matrix bridges, so you could still do in game commands

wsor4035 commented 3 years ago

however discord <> matrix would allow more features than discord <> any other platform

S-S-X commented 3 years ago

Direct messaging

Already possible from IRC and Discord to in game but currently not other way round. From game to other chat platforms will anyway require mintest mod support and not done yet, what Matrix specifically would add to this?

access to all beerchat channels (not just '#main')

Already possible on IRC and Discord (mappings could be done automatically but currently it is specifically selected channels)

in-game commands (authenticating as your in-game user)

Already possible on IRC and Discord

voice and video

Not currently possible over different platforms, what Matrix would add to this?

presence (currently pandorabot just spams "joined the game" "left the game" messages as a global context).

Not currently possible over different platforms, what Matrix would add to this?

Remeber, if thinking about changes that would be added to Minetest itself then this is not correct place to discuss those so please do not add anything that would require changes to minetest itself. We have to rely on current features (at least not require any changes to clients), preferably keeping older clients as compatible as possible with chat system. Minetest stuff is more usuful in minetest issue tracker.

eshattow commented 3 years ago

Some basic work done on this seems to be https://github.com/joenas/matrix-appservice-minetest and https://github.com/diggers-mt/matrix_chat

S-S-X commented 3 years ago

Some basic work done on this seems to be https://github.com/joenas/matrix-appservice-minetest

Seems like very similar to beerchat-proxy but more like PoC with very limited options, no signs of support for possible extensions or support for multiple platforms / API translation. Seems like not actively developed.

and https://github.com/diggers-mt/matrix_chat

This can be useful if developing full featured system but completely useless (for pandorabox) as is, it implements link between minetest chat (without rooms/channels) and single chat channel on Matrix side. Similar to matrix-appservice-minetest matrix_chat is clearly good PoC but lacks API and flexibility. Seems like not actively developed.

Both seems like good examples but current state is not useful and both would basically require rewrite using some pieces of code rearranging it into service / chat framework. For example both could be very useful sources if adding Matrix support for beerchat which I would prefer unless some more flexible actively developed thing is available somewhere.

Why I'd prefer developing beerchat over those two: beerchat seems to be going into right direction allowing freedom of choices with single service / minetest mod setup, I mean it is not locked to single thing like IRC, Discord or Matrix but instead implements some way to provide connectors used to translate protocols between chat platforms and minetest.

Klaranth commented 3 years ago

TL;DR of a very, very, very long discussion that lasted the better part of a Sunday evening (July 4th) (readable from here : https://discord.com/channels/513329453741637637/719950700485935145/860931600770400256) between ThinkSome, SX and Hedgehog:

ThinkSome keeps saying Matrix is better than Discord, because ... not proprietary software. No other benefits or reasons were ever given to multiple requests. Requests for adding tested alternatives for use in a vote were not given.

Apparently a channel has been made (https://matrix.to/#/#pandorabox-ideas:libera.chat?via=libera.chat) in Matrix already for Pandorabox IRC, but not clear who owns this channel, or has responsibility for it. ThinkSome has not claimed responsibility over it. He also has no idea who needs to be contacted to restore a collapsed bridge. Also not clear which channel it should be linked to, and how all other channels need to separately be linked to a new channel in Matrix/Element/Jitsi. ( https://github.com/Half-Shot/matrix-appservice-discord )

SX suggested to ThinkSome: If writing (easy to read) article about [Matrix] please keep it on topic. No single word about how bad some operating system is for using it or how you should not use some baseband processor to connect to it or how bad some other chat platform is. Just what Matrix offers and how to get best out of it.

Hedgehog The question should not be 'let's all move to Matrix. The question should be : Can we have a link on the front page of the wiki to Matrix, so players have a choice?

SX Matrix is option for Discord and IRC, it does same basic things for pandorabox. Chat platform basically. There's people using mostly just Discord, some using mostly just Minetest and some using IRC. And if you link to IRC, DIscord or Minetest then you can use that for chatting. Matrix can and does connect to IRC but I do not know exact technical details, that's however basically what it is and why it is. I've heard that there would also be direct Discord bridges available for Matrix but again I'm not actually that familiar with Matrix and cannot tell how it is best used currently.

So far for me, without utilizing it myself, Matrix seems to be just option to allow connecting to other services that are in turn connected to pandorbox. What I've tried to ask has been about specific use of Matrix for pandorabox / minetest, what it could offer for user who would like to have option for Discord but do not like primitive IRC. And specifically if there is something that should be added to allow using those additional features.

If there is then ideas for that is needed, if there's nothing but it is just bridge to IRC and through that bridge to pandorabox minetest chat then issues opened about Matrix use should be closed and possibly parts about implementing Matrix in Minetest engine moved to Minetest issue tracker which can be found from Github. If it's more just discussion about different chat clients not related directly to pandorabox server / mod modifications then it is #offtopic which is accessible in game, IRC and Discord.

OgelGames commented 3 years ago

I think we already have enough chat options; Discord for those who like Discord, IRC for those who don't like Discord, and in-game chat for those who don't like either of them 😄

Clearly it's working okay as it is, otherwise we wouldn't be hearing about the other options... 😋

eshattow commented 3 years ago

@Klaranth :thumbsdown: You are simply negating what people are saying because you disagree personally. Please do the research, it is irresponsible on a free/libre opensource community project to keep waving the Discord flag. When Matrix (or any chat system that is free/libre opensource okay?) can fulfill that set of features we should be implementing it and let the users decide if the features are enough. @OgelGames please see my comment above https://github.com/pandorabox-io/in-game/issues/84#issuecomment-851741267 if you ignore Discord we find IRC is kneecapped (missing its most important part of the legs) for rich media like pictures, voice capability, and direct messaging that integrates with the game. For very basic chat Matrix is already accessible through the publicly hosted Libera IRC bridge but that is not good enough.

Klaranth commented 3 years ago

@Klaranth 👎 You are simply negating what people are saying because you disagree personally.

Really? Hedgehog The question should not be 'let's all move to Matrix. The question should be : Can we have a link on the front page of the wiki to Matrix, so players have a choice?

Klaranth commented 3 years ago

Still not getting answers from Shadow or ThinkSome to the questions asked, but instead -

Shadow https://github.com/diggers-mt/matrix_chat is diggers-mt/matrix_chat possible to bridge pandorabox #pandorabox-main:matrix.org

S-S-X commented 3 years ago

If there's no real progress better to close this and reopen if it becomes relevant again or when there's some actual progress with planning on how to approach integration.

eshattow commented 3 years ago

Related: #22

Still not getting answers from Shadow or ThinkSome to the questions asked, but instead -

I asked Timo from Veloren game project for advice how they integrated Matrix so smoothly. They built a component named Conduit that acts as a bridge to the Veloren game chat. Most of the Veloren project is now accessible from Matrix, and because it's Matrix, then also leveraging the benefit of tightly integrated (puppet) IRC, Discord, etc. all the things Matrix supports like images voice+video and screensharing. It works great and has those benefits even if nobody uses a Matrix client.

If there's no real progress better to close this and reopen if it becomes relevant again or when there's some actual progress with planning on how to approach integration.

Sorry progress is too slow for you. Try helping instead of complaining.

S-S-X commented 3 years ago

@eshattow

I asked Timo from Veloren game project for advice how they integrated Matrix so smoothly. They built a component named Conduit that acts as a bridge to the Veloren game chat. Most of the Veloren project is now accessible from Matrix, and because it's Matrix, then also leveraging the benefit of tightly integrated (puppet) IRC, Discord, etc. all the things Matrix supports like images voice+video and screensharing. It works great and has those benefits even if nobody uses a Matrix client.

Like already stated before: This issue is not for integration with Minetest engine. we almost sure cannot do that here and if discussing about integrating Matrix into Minetest itself that discussion belongs to https://github.com/minetest/minetest/issues

What I've tried to ask is what Matrix does offer and how we should use extra functionality while also being able to support alternative platforms, basically I'm repeating this comment: https://github.com/pandorabox-io/in-game/issues/84#issuecomment-851771102

If there's something real to actually plan or implement then maybe post it to https://github.com/minetest-beerchat and close this issue. If it requires support from Minetest engine then post it to https://github.com/minetest/minetest and close this issue. (for me it is still unclear if it requires Minetest engine support or if it could be done using mod API, actually I've no idea what are actual goals. That's what I've been trying to find out to be able to tell where this discussion actually belongs)

There was examples of what others have done but both were primitive based on what we already have and both were replacements instead of improvements, if replacement is able to handle only half of what current system already does then it is useless. If however new thing can be added on top of current system then it does not matter how complete or polished it is as long as it wont remove existing useful and popular functionality.

If there's no real progress better to close this and reopen if it becomes relevant again or when there's some actual progress with planning on how to approach integration.

Sorry progress is too slow for you. Try helping instead of complaining.

So kind of yes, progress is slow. But it is not about that, how I see it: Progress is not slow, it is nonexistent and long discussions that are only wasting time here. It has been mostly about talking how "free/libre opensource community project keep waving the Discord flag" which is simply incorrect. One person telling it is bad to wave that flag and other telling that he can wave any flag he wants and third telling that he's not waving any flags, that's not really very useful.

Klaranth commented 3 years ago

Some comments in Minetest on discord about Matrix

The biggest problem I've seen with matrix bridging is that high-volume bots seem to get lost. I'm on VanessaE's server chat and the game chat bridges seem to be blocked very often so I can only see what primary IRC users say and not bridged ones.
https://discord.com/channels/369122544273588224/369122544273588226/889928929618571325

The Matrix bridge also has to serve a lot of people at the same time and sometimes buckles under the strain ... granted though, self-hosted options can be fragile in their own ways. https://discord.com/channels/369122544273588224/369122544273588226/889928431087812708

This is why we don't put all our eggs in the discord basket. IRC and Matrix are not always as comfortable as Discord in so many ways, but at least they aren't prone to the exact same failure modes. https://discord.com/channels/369122544273588224/369122544273588226/888599084296982578

Maybe the thing to do with Matrix is just have a separate runs room, like the way restaurants used to have smoking and non-smoking sections. https://discord.com/channels/369122544273588224/369122544273588226/887087644046151730

Klaranth commented 3 years ago

Huhhila Also something explored by #bifrost:half-shot.uk ... could consider rewording the discussion to be about puppeting bridges, with matrix being one codebase where such have been implemented. (Separation of idea/interface/implementation concerns and wanted/unwanted features from each other might help sometimes)

S-S-X commented 3 years ago

This is why we don't put all our eggs in the discord basket. IRC and Matrix are not always as comfortable as Discord in so many ways, but at least they aren't prone to the exact same failure modes.

Reminder: eggs are not in the Discord basket and not meant to be. Pandorabox Minetest server is not connected to Discord at all. Minetest server is connected to proxy that relays messages between Discord, IRC, Minetest and possibly in future also to other platforms.

BuckarooBanzay commented 3 years ago

Relevant discussion (matrix integration): https://github.com/pandorabox-io/pandorabox.io/issues/699

Klaranth commented 9 months ago

et make bot that randomly reacts on messages

birdlover32767 if you want it then you make it

Hedgehog et : think we already have one

et i have never seen specifically

Hedgehog go to ⁠bot type .quote

et that isn't related to what i am suggesting

Hedgehog It is halfway there to what you are suggesting et : build on that :)