Inspiration
Quip Bot is a Discord bot that implements a multiplayer game that takes inspiration from the popular party game “Quiplash”. We wanted to create QuipBot because we've all enjoyed playing similar online party games throughout quarantine. Also, as avid users of Discord, we thought that it would be a fun and rewarding experience creating a game within such a familiar, popular application.
What it does
QuipBot can be invited into any server as a bot, accessing the server’s input from multiple players, and displaying the game’s text-based output in a series of rounds. The bot will have voting mechanisms through emote reactions and keep track of player scores. Players can input their own prompts that the bot stores as a list. Pairs of players will then receive a random prompt that another player created, and respond to it in a witty manner. Once every player has responded, these pairs of players will have their responses shown simultaneously, then judged through other players’ message reaction emotes. The points are distributed accordingly, and the next round continues!
How we built it
Our project uses the Discord API wrapper JDA, which we picked among other options because it allowed us to code in Java. Using the functionalities of JDA, we worked on the project in two distinct regions—the GameListener class that served as our method of receiving, categorizing, and responding to user input, and the Game class that handled all the technical aspects related to gameplay. Creating the distinction between the event listener and the game ended up allowing the overall structure much more flexibility, as well as making it possible to have multiple game instances running in separate servers at the same time.
Challenges we ran into
The main challenge we faced was the difficulty of sharing code among team members, and trying to debug unique problems that came up. Instead of having shared code, our group needed to have multiple bots in order to really try out new functions in our test Discord server. Additionally, being forced to work within a pre-existing environment like Discord and the JDA wrapper had some limitations that we had to overcome. Many things had to be looked up on Google or Youtube, which was helpful but time consuming. Working with data from user input within a server was also sometimes difficult, as it was hard to regulate when and what text input the bot should receive. Sometimes the game would break with users who entered wrong commands at the wrong time, and sometimes there were initial bots in Discord servers that already had our same commands, so we had to work around these challenges.
Accomplishments that we're proud of
Since most of us use Discord ourselves, gaining a deeper understanding of a system that we casually use everyday with our friends was definitely fulfilling and educational. During our learning and testing process, it was extremely fun making bots that could do entertaining, inside-joke-esque things within our friend groups. Making a program like a bot that could be instantly tangible and interactive was satisfying as well. Seeing our friends enjoy testing the game was a great feeling, and was extremely encouraging towards making progress and creating new features for our game bot. Additionally, coding and birthing a bot that works well with a team certainly created a strong bond between our group and will be a fond memory of our friendship in the future and beyond.
What we learned
During this project, we not only got the chance to learn how to create a fun, multiplayer game, but also how to interact with a pre-existing software system like Discord. First, we learned how to make a game itself, with rules, scores, prompts, and more inspired by the preexisting game Quiplash. Then, we began with learning Javascript, as Discord.js is a popular way of creating Discord Bots. However, when we took into consideration how we were most proficient at Java, we used a Discord API wrapper called JDA in order to code the bot with Java. We learned how to take user commands, channel messages, emote reactions, and utilize private messaging capabilities within Discord to make the game function. Afterwards, we learned how to keep a bot running on a server 24/7 as well, in order to have the bot function on many computers and servers.
What's next for QuipBot
Although we're extremely proud of how far QuipBot has come, it still definitely contains many bugs. There are smaller fixes that we need to make, like user input timing speeds. We'd also like to create a visual timer so players can know how long they have to input their responses. Overall, we just want our friends to have fun using QuipBot in the future!
Built With
- discord
- java
- jda




Log in or sign up for Devpost to join the conversation.