Jump to content

Migrating to a new communication platform


Stan`
 Share

Recommended Posts

There has been a fair amount of discussion recently about switching from the IRC platform QuakeNet to another platform for instant messaging. I've listened to a few people and the main reason for moving off QuakeNet would be the lack of TLS encryption.

Recent discussion:

There are a few requirements other than TLS. The solution should:

  • be open source
  • be libre,
  • be free,
  • ideally not be  self hosted or at least part of something we already host.
  • provide a web chat, for people not willing to install extra software.
  • should allow logging the channels for posterity
  • be accessible for maintainers

Which basically leaves us three big families of solutions XMPPMatrix, and obviously IRC. There is also Revolt, but it's not mature enough yet, and our test server seems to have been deleted. This also defacto forbids things like Discord. There is also Mattermost, but we would need to self-host it. Same thing for Rocket.Chat used by Godot: https://chat.godotengine.org/home You can read their reasons there.

XMPP has the advantage that we're already hosting a server for the lobby, and that could open with interesting synergies if linked with the game. 

Matrix is a good contender, although there seem to be a preference for XMPP in the opensource world for some reason. There is already a semi-official matrix channel see https://linktr.ee/wildfire_games

Something nice is it seems to offer VOIP chat recently, which could help for hard or complex discussions which can go quickly off rails with chat.

Zulip: is another option. I haven't really heard of it, so might be nice for our usage, but maybe nice to test it out.

IRC has my vote. We have all the tooling for it, it's lightweight and simple, and you can use bridges if you really want to connect to it from somewhere else. I'm currently using a XMPP bridge to connect there. There are three main servers we could use: 

  • Oftc https://oftc.net/: The server debian uses and other project such as https://legacy.dotslashplay.it/
  • Libera.Chat https://libera.chat/, The server most people went to after the Freenode debacle. Everybody is there, which also means should the reason it was created occur again, we'd have to move away form it.
  • Freegamedev https://freegamedev.net/ : A server made for open source games, which has invited us over. There does not seem to be a lot of people there, so we might be isolating ourselves, we might meet new devs though.

I'd like to hear your opinions and will enrich the posts as I go. Feel free to suggest other discussions from the forums or IRC that might be relevant.

EDIT1: Added Zulip

  • Like 4
Link to comment
Share on other sites

For the use cases we use Quakenet for right now (general chat (#0ad) and development related chat (#0ad-dev) I believe it's rather import not to self-host it, so it is still available in cases our own infrastructure is down. That has been quite helpful in the past already.

I'd prefer to continue to use IRC for that, but wouldn't be opposed to use Matrix either. As much as I'd like to use XMPP, it's probably not a fitting choice, as Matrix seems to have bigger momentum nowadays and if we don't self-host it, we can leverage existing infrastructure anyway. Regarding the IRC network, I believe Libera.Chat would offer the most upsides. Most of the regular IRC users are probably there already anyway. As for the risk that something like the Freenode fiasco happens again, I believe that's rather unlikely, because everybody should've learned from it. I consider the risk that Freegamedev goes away much higher. My preference would be Libera.Chat, followed by OFTC.

There is also another use case we'd like to have a solution for and that's a real-time communication channel to provide support for players, where moderators and WFG representatives can talk privately with players. In my opinion that's something we should definitely self-host, as the communication there might contain sensitive data, which would just cause additional hassle when being shared with a third-party service. We also want to log these chats to be able to review them for complaints and appeals. A self-hosted solution just gives us much more control over that. Such a solution doesn't have to be a traditional chat solution though, but could in theory also be an existing help desk solution offering an integrated chat. I'd however appreciate if it'd be a light-weight solution, for example a chat plugin for the forums would be probably already be sufficient for that for now. Leveraging existing infrastructure like our XMPP server for that would make sense as well though, as that'd mean we could integrate support functionality easier into the game and use the existing user database for authentication, if we want to do so in future.

Link to comment
Share on other sites

My vote is for matrix. Yes you need to get an account, but Matrix can be encrypted, and I have had a very nice time using it. I have heard that moderation isn't the best, though, So that's one minus. Another worry is a good instachat might detract from the people who use the forums. I've looked around the Battle for Wesnoth project and literally no one's on the forums.

Another thing though, and It's something some people might not want to hear, is we might want to have discord. I know the privacy policies are gross, and it's not open source etc. etc. etc. I hate discord probably more than the average person myself, but from what I can see this project has only a handful of people working on it.

I'm not saying 0 A.D. is dying or anything, but it's tiny for a game of this quality and size. We need to try to make this project a bit more accessible for the "new kids". Moving to git/Gitea is a plus, because people won't have to deal with a weird/ outdated version tracker. But we also need an easy way for people to get into the community. Most people don't want to have to download a new app, get another account, figure out an entire new interface and all that stuff. The communities for minetest, endless sky and even battle for wesnoth (which none of them look as cool as 0 A.D.) are bigger than ours. What's the big difference?  Well they all use GitHub for version control, (but we have mirrors and that doesn't really help) but they also have discord.

Again I'm not saying Discord is amazing, I really hate it, but we might want to grit our teeth and have a discord in some capacity in order to get more people. We can have bridges and stuff and backups and other methods but I think if we want 0 A.D. to flourish it might be our best bet.

In summary, if we need an instachat my personal vote is for Matrix, but I would strongly suggest we as a community swallow our pride/take a hit on our lofty OSS values and embrace discord to a certain extent so we have more than two dozen people in the community. I know more people visit, but it seems like its only Gurkan Kan Wowgetoffyourphone, me, Vantha, and Stan and like 3 others are the people who post more than once or twice a month. And I'm sure contributing code is something similar.

(Also, why does the forum text field say my content needs approved by a moderator?)

  • Like 1
Link to comment
Share on other sites

3 hours ago, ShadowOfHassen said:

(Also, why does the forum text field say my content needs approved by a moderator?)

Because it does :) I'm trying something new with this thread, which is important. 

3 hours ago, ShadowOfHassen said:

[...] + 1 for matrix

Discord

We have a few unofficial discords linked on https://linktr.ee/wildfire_games :) I'm on at least ten :) But I prefer the ones I have linked there. One of them is handled by @psypherium Sadly, we have discord only gamers, and foss only developers. Also, given the harassment some developers have had in the past from the community, I think it makes sense to keep them somewhat separated for now.

Quote

There is also another use case we'd like to have a solution for and that's a real-time communication channel to provide support for players, where moderators and WFG representatives can talk privately with players. In my opinion that's something we should definitely self-host, as the communication there might contain sensitive data, which would just cause additional hassle when being shared with a third-party service. We also want to log these chats to be able to review them for complaints and appeals. A self-hosted solution just gives us much more control over that. Such a solution doesn't have to be a traditional chat solution though, but could in theory also be an existing help desk solution offering an integrated chat. I'd however appreciate if it'd be a light-weight solution, for example a chat plugin for the forums would be probably already be sufficient for that for now. Leveraging existing infrastructure like our XMPP server for that would make sense as well though, as that'd mean we could integrate support functionality easier into the game and use the existing user database for authentication, if we want to do so in future.

I'm not sure how this would not be handled by having specific channels, maybe password protected, where everybody is kicked beside a moderator, a bot, and a user? Or is it just PM support in the game? 

Link to comment
Share on other sites

10 minutes ago, Stan` said:

I'm not sure how this would not be handled by having specific channels, maybe password protected, where everybody is kicked beside a moderator, a bot, and a user? Or is it just PM support in the game? 

IRC channels have the downside that IRC network operators are be able to read that communication, which certainly isn't optimal, but would be fine for me. Instead of password + kicking everybody else, making such channels invite only would probably be easier. Libera.Chat also offers a channel mode (+S) to only allow users connected via a TLS-encryption to join a channel (Freegamedev supports that as well, as they don't allow unencrypted connections at all). Maybe let's start with that, see how it goes and consider a more elaborate solution later on.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

In my opinion, Discord and Matrix have bad interfaces for reading archived messages, because they require linearly scrolling perhaps thousands of pages in order to reach a certain time period, unless search is lucky enough to find it.

On the other hand, Matrix group chats are good for efficient interviews about misconduct reporting or troubleshooting advice, because they have end-to-end encryption and good desktop notifications on message receipt.

Any communication system that we choose needs to be moderated, which means that we need to have volunteers for moderating it. I don't like the idea of "volunteering" people to do things that we one isn't willing to do oneself. So, we should pay attention to what our moderators are willing to moderate.

I am boycotting Discord for privacy reasons.

I would be willing to moderate a Matrix presence for WFG if it's only used for real-time communications and messages are auto-deleted after, say, 24 hours. Perhaps Matrix messages could be archived permanently on a website similar to irclogs.wildfiregames.com.

I think that the best course of action is both moving to a better IRC server and considering Matrix non-public group chats to be acceptable official WFG communication channels. This would accomplish the goals of security and privacy for all use cases.

4 hours ago, Dunedan said:

Regarding the IRC network, I believe Libera.Chat would offer the most upsides. Most of the regular IRC users are probably there already anyway. As for the risk that something like the Freenode fiasco happens again, I believe that's rather unlikely, because everybody should've learned from it.

I think that what everybody should have learned from the Freenode fiasco is that the fundamental flaw was not the people running it, which can change unexpectedly, but the structure of the organization. Libera.chat (according to vv221) replicates the excessively centralized structure of Freenode.

4 hours ago, ShadowOfHassen said:

Another worry is a good instachat might detract from the people who use the forums.

Yes, this is a concern. We could end up with the "September that never ended", having to answer the same questions on Matrix over and over. Also, some public Matrix rooms I'm in are being spammed on a regular basis. We don't see spam in our IRC channels.

 

Edited by Norse_Harold
Link to comment
Share on other sites

22 minutes ago, Norse_Harold said:

On the other hand, Matrix group chats are good for efficient interviews about misconduct reporting or troubleshooting advice, because they have end-to-end encryption and good desktop notifications on message receipt.

Would IRC have bad end to end encryption? Or would it only be the notification system that will be lacking?

22 minutes ago, Norse_Harold said:

Matrix non-public group chats to be acceptable official WFG communication channels. This would accomplish the goals of security and privacy for all use cases.

I feel like using matrix should be on a case by case basis, if the final solution isn't matrix. I've tested the limits of stretching me thin with many chat apps and media and i think it should happen where everyone should be which would be IRC. It's annoying to be pinged off server.

25 minutes ago, Norse_Harold said:

Yes, this is a concern. We could end up with the "September that never ended", having to answer the same questions on Matrix over and over. Also, some public Matrix rooms I'm in are being spammed on a regular basis. We don't see spam in our IRC channels.

I think this is the reason the FAQ exists :) @Langbart did a great job on that.

Link to comment
Share on other sites

1 hour ago, Stan` said:

Would IRC have bad end to end encryption? Or would it only be the notification system that will be lacking?

IRC only supports end-to-end encryption if each person in the conversation supports it. This typically involves using an OTR or PGP plugin and verifying the fingerprint of each person.

The average 0ad user who is only talking to a moderator on a temporary basis, for example in order to make a report of misconduct, will probably not be willing to install an IRC client and set all of that up and verify fingerprints in order to talk for an hour. In fact, they're almost always using a web-based interface to IRC.

Matrix, on the other hand, supports end-to-end encryption immediately and with no hassles. just make an account, start a group chat with the moderators and you're on your way.

IRC's notification system depends on how the web-based interface implements it. QuakeNet's web-based interface just has a relatively quiet beep sound when a user gets a mention or a private message. OFTC's web-based interface requires flash in order to get likely the same quiet beep sound. There's no desktop notification or loud sound, so it makes it difficult to get a new user's attention.

Link to comment
Share on other sites

36 minutes ago, Norse_Harold said:

 

The average 0ad user who is only talking to a moderator on a temporary basis, for example in order to make a report of misconduct, will probably not be willing to install an IRC client and set all of that up and verify fingerprints in order to talk for an hour. In fact, they're almost always using a web-based interface to IRC.

But they'll be willing to install a matrix client and register a new account? Or is it supported on the web as well? 

Also isn't TLS enough in that case? I mean we are not such a high profile target (sadly)

Link to comment
Share on other sites

5 hours ago, Stan` said:

We have a few unofficial discords linked on https://linktr.ee/wildfire_games :) I'm on at least ten :) But I prefer the ones I have linked there. One of them is handled by @psypherium Sadly, we have discord only gamers, and foss only developers. Also, given the harassment some developers have had in the past from the community, I think it makes sense to keep them somewhat separated for now.

So what if we picked the biggest discord and granted it the status of "official community discord" have the people extended it and put a link somewhere on the website, then for anyone who wants to use discord they can. Because I think just a discord link for gamers/newer devs might be useful. (I will not be using it because I like the forums better, but I think it's a tactical choice that is needed.)

Edited by ShadowOfHassen
Link to comment
Share on other sites

7 hours ago, Stan` said:

But they'll be willing to install a matrix client and register a new account? Or is it supported on the web as well? 

The web-based interface, Element, uses the browser's desktop notification system, so installing a Matrix client isn't necessary. Almost everyone I've invited to talk on Matrix has registered a new account for it. Only an email address is necessary to register a Matrix account, which is great considering that a lot of social media platforms are requiring mobile phone numbers.

7 hours ago, Stan` said:

Also isn't TLS enough in that case? I mean we are not such a high profile target (sadly)

TLS encrypted real-time chat would certainly be an improvement from what we have currently. Ideally, we would control the data instead of allowing IRC server operators to potentially read our conversations. We will potentially be discussing personal information about users who are in protected categories and being harassed by other users, exposure and mitigation of high priority security flaws, investigation techniques related to network attacks and cheating, etc. Professionals establish defense-in-depth by using end-to-end encryption. They also implement information security policies regarding access to sensitive information. This way if there is a leak then it's easier to trace what the source of the leak was instead of having to consider the possibility of a compromised server or hijacked IRC op accounts.

Link to comment
Share on other sites

9 hours ago, ShadowOfHassen said:
14 hours ago, Stan` said:

So what if we picked the biggest discord and granted it the status of "official community discord" have the people extended it and put a link somewhere on the website, then for anyone who wants to use discord they can. Because I think just a discord link for gamers/newer devs might be useful. (I will not be using it because I like the forums better, but I think it's a tactical choice that is needed.)

The link is already in the linktree of the website. The problem is that making it official means you have to offer game and modding support there.

Link to comment
Share on other sites

3 hours ago, Stan` said:

The link is already in the linktree of the website. The problem is that making it official means you have to offer game and modding support there.

I don’t actually see that as a problem if we get more community members. Naturally they’ll start helping with that stuff.

 

in the meantime basically there’d be a few devs who just need to be @ed after the community stops triaging (that already happens now )

Link to comment
Share on other sites

17 hours ago, Stan` said:

We have a few unofficial discords linked on https://linktr.ee/wildfire_games

Kind of unrelated, but I'd prefer if we'd only list services run or moderated by Wildfire Games there or make it at least clear which ones aren't official services.

16 hours ago, Norse_Harold said:

I think that what everybody should have learned from the Freenode fiasco is that the fundamental flaw was not the people running it, which can change unexpectedly, but the structure of the organization. Libera.chat (according to vv221) replicates the excessively centralized structure of Freenode.

A more decentralized structure of IRC networks would've reduced the impact of the Freenode fiasco, but wouldn't have prevented the fiasco itself. To prevent it a different organizational structure than the one Freenode had would've been necessary. I believe that's what changed when Libera.Chat got set up and that the people running it learned from Freenode. However, only time will tell if that's really the case.

16 hours ago, Stan` said:

I feel like using matrix should be on a case by case basis, if the final solution isn't matrix.

If the solution isn't going to be Matrix, there can still be an unofficial Matrix room, but official communication should then not happen via Matrix.

14 hours ago, Stan` said:

Also isn't TLS enough in that case?

From my perspective it is, especially if we host the service ourselves. As we want to be able to log conversations between moderators and players, end-to-end encryption would only add unnecessary complexity to that.

15 hours ago, Norse_Harold said:

IRC's notification system depends on how the web-based interface implements it. QuakeNet's web-based interface just has a relatively quiet beep sound when a user gets a mention or a private message. OFTC's web-based interface requires flash in order to get likely the same quiet beep sound. There's no desktop notification or loud sound, so it makes it difficult to get a new user's attention.

In principle we don't have to use the web clients provided by the networks, but could set up our own. Whether that makes sense is another question though.

Link to comment
Share on other sites

32 minutes ago, Dunedan said:

Kind of unrelated, but I'd prefer if we'd only list services run or moderated by Wildfire Games there or make it at least clear which ones aren't official services.

I can add unnoficial to the two discord servers and the matrix one, but in this case the goal was to not discourage users only willing to use discord to try the game which goes towards what @ShadowOfHassen wanted to do.

33 minutes ago, Dunedan said:

From my perspective it is, especially if we host the service ourselves. As we want to be able to log conversations between moderators and players, end-to-end encryption would only add unnecessary complexity to that.

If we use IRC for everything we wouldn't be in that situation. Would TLS be not enough in that case in your opinion?
 

Link to comment
Share on other sites

1 hour ago, ShadowOfHassen said:

I don’t actually see that as a problem if we get more community members. Naturally they’ll start helping with that stuff.

Not many people usually step up though. Moderation is a pretty tough job

Link to comment
Share on other sites

Shortly after the time that the original author/maintainer of Phabricator announced his intention to stop maintaining it, the group of people who got together with an aim to continue/take over development and support used a service called Zulip to discuss how they'd do that. I remember feeling fairly impressed by the service at the time, as it seemed an improvement above my experiences with IRC, Gitter, and Matrix.

It meets most of the criteria established at the top:

  • TLS encryption
    •  between client and server; and all data is encrypted at rest
  • be open source
  • be libre,
    • Apache 2.0 license
  • be free,
    • As an OSS project we'd be eligible for their "Standard" cloud package for free
  • ideally not be  self hosted or at least part of something we already host.
    • Is cloud hosted (with self-hosting as an option)
  • provide a web chat, for people not willing to install extra software
    • A web client is available (as are desktop, mobile, and terminal clients)
    • Tagging specific channels as public is possible, so no need to sign in to read chat
  • should allow logging the channels for posterity

There's also bridges for IRC/matrix/XMPP/etc.; optional voice/video chat integration (Jitsi by default); private channels/topics; user administration & moderation; etc.

Of particular interest to us, the service supports what it calls "linkifier"s - detecting phrases such as "D1234" and adding a hyperlink pointing to the relevant issue/commit/whatever. (How this appears in an exported archive I'm not sure.)

And it supports integrations with gitea, trac, phabricator, transifex, jenkins.

Anyway... just suggesting it as an alternative to what's been mentioned thus far. Thoughts?

  • Like 1
Link to comment
Share on other sites

Hey thanks for chiming in @s0600204! I have heard of Zulip before think it was @andy5995 who set up an instance before:

 

7 minutes ago, s0600204 said:

 

Anyway... just suggesting it as an alternative to what's been mentioned thus far. Thoughts?

I think it's worth considering at least. Do you know any project currently actively using it ?

  • Like 1
Link to comment
Share on other sites

I don't know zulip but it seems to offer threadding over irc, but for that we have the forum and I think important topics can and should live here just as before. Also seems to need self-hosting.

For casual development chat I don't think irc is lacking at all. Has the advantage to run even if our infra is down. And joining a network/channel is really simple for most everyone.

Migrating to a different irc networks isn't that big of a deal either so freegamedev is fine by me if that feels like the natural choice, worst case we just migrate again.

Link to comment
Share on other sites

23 hours ago, Dunedan said:

Libera.Chat also offers a channel mode (+S) to only allow users connected via a TLS-encryption to join a channel (Freegamedev supports that as well, as they don't allow unencrypted connections at all).

I have a little addition to that: I just noticed that OFTC offers the same +S channel mode as Libera.Chat. So all of the three mentioned IRC networks would support ensuring users are connected via a TLS-encrypted connection.

I also verified that the official web clients of Libera.Chat and OFTC internally also use TLS-encryption when connecting to the IRC server to ensure that people using the web clients can join channels with mode +S.

  • Like 1
Link to comment
Share on other sites

On 15/08/2024 at 3:45 PM, ShadowOfHassen said:

(Also, why does the forum text field say my content needs approved by a moderator?)

I'm curious about this, does it allow:

- feedback about rejected comments?

- editing a comment after rejection so it can be accepted?

- whitelisted users?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...