Screeps Discord?

  • I have no idea why anyone thinks discord would be a better choice than slack.

    Voice chat isn't that great at these game speeds, and given this is a coding game I don't understand why we'd move to a platform with less snippet support.

  • @artch Steam already provides this potential of friends seeing what people are playing. I'd also bet that most people have more friends on Steam than on Discord.

    Besides, I don't want the entire Screeps community to know what else I'm doing with my time. And from that directly follows: the opposite as you're describing can happen as well. It can draw players away from your game as well.

    Personally I use discord with a few distinct, small groups of friends. For example, my fixed Rocket League team mates. I absolutely loathe the larger communities such as "official" groups for Game X. I tried a bunch and ended up leaving each of them.

  • Culture

    Looks like there isn't even github integration with discord, which means all of the development channels (such as #screepers, #screepsmods, #quorum, and several others) would no longer have github notifications sent to them. For that reason alone I think most of the third party development projects will want to stay on Slack- toss in the inability to collapse snippets and the crappier syntax highlighting and I think this would be a step back.

  • Culture

    @gankdalf no, I don't mean that. With that particular method you have to literally create a webhook for every repository in your organization, and you have to manually maintain it. WIth the slack integration you can set up an integration with an entire organization using the single integration.

    You also get a lot more customization-

    0_1518628761242_Screen Shot 2018-02-14 at 9.18.43 AM.png

    As someone who manages several development Slack networks I can say without a doubt that it is much more work to maintain that on discord than it is for slack.

  • @tedivm are you sure you need one for every repository?

  • Culture

    I would probably end up creating a slack just for ScreepsPlus and possibly stuff like #screepsmods, many of us use the github integration to watch for updates for mods, tools, even the private server itself.

    ScreepsPlus also uses a slack webhook to offer Grafana alerts through slack, usually via a direct DM to a player or private channel, discord would make that impractical even with their webhook support.


  • Culture

    @gankdalf if you enable that particular webhook you lose all granular control over the repositories while using Discord.

    Here's the main difference, to cut right to the specifics-

    • Slack works by creating an integration with Github that basically sends all of the information to Slack. Then the Slack Github Integration (created by the Github team) allows you to specify a variety of options on the Slack side for how that is managed. Since Slack has all the information you can make changes really easily inside of the Slack integration.

    • Discord does not have any Github capabilities in it's system. Instead it receives messages from the webhook and acts as a proxy, passing it on to the appropriate channels as configured by the webhook. All of the management of that comes from the Github side of things rather than from the chat server integration.

    This has a huge difference in how these things get managed.

  • Culture

    If ScreepsPlus ends up with a slack server I will simply move all of the development channels I manage over to that Slack server, and just point my various bots at it as well.

  • @tedivm I would do the same. I'm not going to juggle both Discord and Slack development at the same time.

  • @tedivm Okay, that makes so much more sense now. So to repeat. The difference is that in Slack, you login to your GitHub account and manage everything there, while in Discord you would need to create a webhook between each pair of channels and repositories you wanted to connect, since the organization wide webhook would post all of the selected events to the specific channel with no customization on which repository it came from.

    Yeah that sounds like a decent amount of work to setup. Although, it does seem like it is a one-time setup per repository.

  • Culture

    @gankdalf true, it would mostly be one time (unless someone wanted changes).

    Maybe you can answer a question for me, since my discourse knowledge is a bit limited. Can anyone add a webhook, or would the "admins" of the network have to add each one?

    With Slack we admins can enable an Integration, such as Github, and then allow users to manage the features of that Integration. So once we added Github, players who aren't admins (such as @ags131) can add their own repositories and organizations without having to coordinate with the admins at all.

    How would that work with Discord? It seems like we'd either have to allow anyone to create webhooks (which I am not sure is possible) or the admins would have to manage this task every time someone wanted to add a new github repo or organization.

  • YP

    @daboross said in Screeps Discord?:

    In the slack, we have 163 public channels, each with a different discussion topic. In discord, we'd either have to greatly pare down this number, or force everyone to have all 163 channels in their sidebar.

    on the other side 130 of those channels are probably empty because all messages expired... I don't think we need that many channels anyways.

    in discord you can have categories/subchannel .. so it's maybe even easier to create a clear channel structure

    one advantage of discord is that it's easy to be on multiple discord servers.. you can simply give a link to someone to join a channel on a different server or invite people... I would suggest not to have coalition channels on the main discord server.

    aliances and coalitions could actually use bots/api to manage their users on their servers... there is for sure a way to check if a discord user is a certain player


  • I am not a fan of either service due to their proprietary nature. I would much rather screeps have an official IRC channel(s).

  • YP

    @tedivm said in Screeps Discord?:

    How would that work with Discord? It seems like we'd either have to allow anyone to create webhooks (which I am not sure is possible) or the admins would have to manage this task every time someone wanted to add a new github repo or organization.

    discord has a very good permission system. there is a permission just for webhooks you can give to everyone .. or just to a group of users.. to allow creation in every channel.. or just to specific channels.. or maybe to a category...

  • @tedivm You could allow anyone to manage webhooks, which sadly allows deleting other people's webhooks. That is probably not ideal. There is no default "ownership" of a webhook, so all webhooks are the servers.

    You could create a role that could be handed out by admins that allowed the same thing, but to a subset of users manually selected to try and prevent abuse. Also not great.

    Someone could create a discord bot that managed webhooks using commands and gave ownership and limits to users, so that they couldn't create 10,000 webhooks and couldn't delete webhooks they didn't own.

    There is also the admin-only possibility, but that is probably the worst out of these options.

    As an extra note on the discord bots. I personally find discord bots very useful for displaying reference documents and other frequently asked questions in other servers, since you can save responses in it. For example it could be used to send direct links to the API reference with commands like

    !screeps dismantle
    !screeps privateserver
    !screeps tutorial

    And since they can do anything a normal console program running on the host computer could do, they are also capable of grabbing anything off the web, parsing it, and then taking some action on it. I have gone as far as to have them read item databases through an API and then read them using text to speech into voice chat. Obviously, this specific use-case has no purpose in Screeps, but it should give some reference to what the bots can do.

    I have created many discord bots, and I don't want to put this too lightly because time you don't have to spend is time you don't have to spend, but setting up one of these bots isn't very hard.

  • Culture

    @gankdalf your !screeps dismantle example is known as slash commands on Slack and are trivial to setup. We could totally do that if someone wanted to put the effort in.

    That being said the situation you describe for managing webhooks sounds like a nightmare. Either we have to let everyone access them and then clean up after the trolls, or we have to have a select group of people who have to do extra work now. The alternative for both of those would be that people can't add github webhooks for their projects.

  • YP

    @tedivm we don't have that many github integrations on slack... every developer only needs one webhook.

    most current integrations on slack are even public, so everybody can disable or remove them

  • @tedivm I will note that most discord communities I have seen do not try to have everyone on the same server for some things. For example, one of the games I play has a server structure like this:

    Official Server

    • general chat
    • official announcements
    • webhooks to main project
    • FAQ static channel
    • Guild/Alliance list static channel
    • trading

    Guild/Alliance Server

    • private channels
    • public channel for recruiting
    • lots of custom channels

    3rd Party Project Server

    • support channels
    • suggestions
    • project github webhooks

    The only reason this actually works in discord is because servers are free, fast to setup, and effortless to switch between. The closest similarity to Slack is more like discord servers are the slack channels, so when someone wants to create a channel for their own alliance, they create a server and link it back to the main server instead of creating a channel in the main server. This makes it far easier for newcomers to determine which channels are user-created alliances and 3rd party projects.

    Obviously, it gets a bit tricky if you want a generic channel that includes github notifications for every 3rd party project, since they would all need their own webhooks, but it depends on if that is actually the desired result.

  • YP

    @ags131 said in Screeps Discord?:

    if we are considering moving, we should also consider and evaluate other platforms too, rather than just debating slack vs discord. (I know there are several slack clones out there, don't recall their names though)

    I don't think there are many viable alternatives... many need self hosting and therefor at least some amount of hardware, support and adminstration. Also I think working mobile apps on iOS and Android are important.