
Discord Party
A Discord bot that plays a collection of minigames with your friends
Developed in JavaScript (NodeJS)
Being one of my biggest and proudest achievements, this project holds a lot of merit for me. This project was an amalgamation of previous Discord projects that I had done all the way back in 2017. This was my final Discord bot that I had developed, and I had given it my all, using all the knowledge that I had gained from previous years. I was heavily inspired by Mario Party (surprisingly enough), and initially envisioned this as a board game similar to Mario Party, however I quickly realized that it was too complicated to handle in a text-only environment, so I opted for simple minigame collections instead, which surprisingly enough was not common in Discord
I started development on this bot during the pandemic in 2020 (before discord introduced Activities). I had used the library "eris", which was a much more efficient and lightweight alternative to discord.js (the package I had used before). This gave massive improvements to the stability right off the bat, as I wouldn't have to worry about unnecessary bloat that would slow down the perfomance of my chatbot, as I needed all the performance I could have if I were to be running these kinds of games.
Cleanliness visually was one of my goals, I wanted it to look attractive and streamlined so that anyone could pick it up and use it without much learning curve
Below are some examples of the design, along with some of the features of the chatbot:
Lobby System
List of Commands/Minigames (there are much more miscellaneous commands on pages after)
Profile/Win Tracking system
To store information, I used a mix of MongoDB and internal structures like Sets to store information. MongoDB was used for more long term information, like the stats that you saw in the profile system, while Sets were used for temporary uses, such as infomration for minigames. One thing I wish I would have done was make the transition to a SQL database for the minigames, as if the chatbot needed to restart, then it would have the ability to resume the game once it turned back on.
I had made a total of 5 minigames, supporting both singleplayer against a bot and multiplayer with friends, a token system which allows you can buy icons for your profile, and a log to see your past 10 games and their results. After 4 months of development, I decided that the chatbot was ready to be released to the public. After it got approved, the chatbot started to join server after server, and so many people were using the bot that it actually got incorrectly flagged for spamming funnily enough. On its first day up, the bot had joined 1000 servers, which was a record for me compared to my earlier projects, and on the first day too? Simply amazing.
In the middle of the chatbot's life, I had included some more features, including 2 more minigames (Matchup and Hangman), more icon customization, and a new language option. With the help of 2 users, I had translated the text of the bot into Spanish and Italian. This was a first for me, as all of my bots were in English, and it really helped me learned the ins and outs of localization and how it works, especially in games and other applications.
However, I could not keep the bot up forever. I was getting much more busy with high school, and the costs to keep it up and running was too much, and it was experiencing instability issues with how many servers it was actually joining. So in early 2022 I decided to pull the plug on the server hosting the chatbot, and there ends the journey of one of my most ambitious projects. I was incredibly proud of it though. It taught me how to manage a community and how to appease fans, and how to create an app that is both novel and easy to use, both of which are incredibly important in modern app design. At it's peak, the bot had reached a server count of 7,269 servers and 16,000 users, which is an astonishing number if you really think about it. My small app that I had made as a hobby project was being enjoyed by over 10,000 people.
Discord Party's statistics, based on MongoDB Documents
Discord has changed a lot these past years. They introduced a new feature called "Activities" which allow you to play games and do other activities with your friends, which was the mission of my bot. They also introduced this new feature called "Slash Commands", a new framework that all bots must follow (and that my chatbot did not). With these two things combined, I don't think I'll revisit this chatbot anytime soon, atleast not to rework it from the ground up. However, I am glad for everything I had experieneced related to this bot and I am proud of my work and how it touched so many people all over the world.