Monday Development Facts #1

Learn what Dingly’s developing!

Blog Cover

Welcome to Monday Development Facts! As usual, it’s a horrible acronym but it perfectly describes what this blog will be about. It’ll specifically pertain to my developments, and you can appreciate the fact that I didn’t call it Dingly’s Monday Development Facts! (Though you’re always free to call it DMDF)

I like your energy!

Latest commits on github
Latest commits on github
Latest commits

If I’ve not bombarded you with intensive ads about my game, then you might be curious to know about the one and only voice chat Mafia/Werewolf/Town of Salem like Discord bot, also known as Discord Deception Games!

DDG in its alpha state
DDG in its alpha state
DDG in its alpha stage

You don’t need to say! Discord Deception Games is a bot which allows you to host a variety of mafia games, and is meant to include other types of deception games as development progresses. There was once a working version, however, as the bot is going through a rewrite, it’s currently unplayable. But do not worry! There will be a playable version coming very soon, and a much more polished version coming later.

Glad you asked! Assuming the bot’s already in the server, all you need to do is creaty a party, which is equivalent to a Town of Salem lobby, choose the game preferred game mode, tell your friends about how great the game is so that they can join, and once you’re ready, you can begin the game and each player will be sent a server invite!

Yes! The bot creates a new server just for your game! The logistics of this isn’t hard, and perhaps I’ll cover it next blog, but it does come with one big constaint. Bots can only create servers if they’re in less than 10 servers.

An image of the discord docs, specifying that bots can only create servers if they’re in less than 10 servers.
An image of the discord docs, specifying that bots can only create servers if they’re in less than 10 servers.
:(

Do not worry! It won’t be distributed :)

More seriously, the invite link will not be distributed. As a user, you have two ways of using the bot. Either by joining an official server which already contains the bot, or by downloading the binary and hosting the bot for one of your servers. While this is inconvenient, the potential for it is enormous and well worth it.

Advantages of Creating a Server

Here’s what we want to include in the bot:

  • A text and voice channel for normal discussion
  • A text and voice channel for mafia
  • A text channel for the dead

The text and voice channel for normal discussion should be self-explanatory. With only these two, the bot doesn’t actually need to create any channels, as it can just use the channel where the game was created, and any regular voice channel would do. However, we also require that players cannot speak during the night or while they’re dead, in both voice chat and the text channel.

The problem here is that to practice that power over all discord members, it requires the highest level of permissions, which is impossible to accomplish as the owner will always have the highest level. This means that the owner will be able to skip and dodge all restrictions placed by your bot. How rebellious!

The second problem is that those aren’t the only two channels we need. We need a text channel for the dead so that we can support the Medium role, a person who has the power to talk to the dead but only during the night! A voice channel and text channel for the Mafia isn’t required, but it’s nice to have. As you can see, the number of channels are accumulating fast, and if we ever have any new ideas that require new channels, it only worsens the problem. It would be impossible to have more than one active game concurrently in one server.

Creating a server just for the game solves both of these problems. The bot will be at the top of his castle, overseeing all members, as it owns the server. The channels will also be created freely without intervening the original server, thus allowing you to play the game in a nice isolated and controlled space.

There are other advantages to creating the server, and we’re trying to make full use of them. For instance, players don’t need to switch back and forth between a server and DMs, since everyone has a #private channel that’s only available to them. We also support discord roles, so once a player dies, their role becomes known through the role assigned (they also become grayed out)!

Summerizing

This blog post was rather an overview of what’s being developed, and hopefully it was interesting enough. Next week, we’ll talk about what’s upcoming with the bot, and after that we’ll take a look at how the internals work and you’ll make your first commit!

Note: I’m not changing the name to Tuesday Development Facts simply because I finished this blog after midnight!

Hello! All “art” covers are made by me. Marvel at them!