Inspiration
There have been so many times where my friends and I would absolutely be down to "hop on" a game, but we were never able to decide which one. Sure, steam has its own features to see who owns what game, but if Discord started out as the "chat app for gamers", then why not help it go back to its roots?
What it does
Hop On! is a Discord bot that helps the common Discord friend group pick a dang game to play! Did you know that, every year, over 10,000 hours are spent picking a game? I didn't either because I totally made that statistic up, but can you imagine? All that time picking when they could be playing! It's like the Gamer's equivalent of scrolling through Netflix when you have nothing specific in mind to watch!
This bot aims to solve all that nonsense by leaving the decision of what game we should play up to automation and OpenAI's gpt-3.5-turbo model. Simply link your steam account with /link, and then run /matchmaker to get started and see who in the server shares a similar taste in games with you!
For a full list of commands, please check out the README!
How we built it
I have always had a knack for creating Discord bots, so when the prompt was "video games" I thought I should bridge the gap between social interaction and gaming. I wrote the bot in TypeScript, because I love typing things that probably don't need to be typed! The backend database was Supabase, where I stored a table pairing Discord IDs and Steam IDs and a table of cached games (because I've found that Steam's API was unreliable sometimes). Integrating Supabase was straightforward thanks to Supabase.js. However, OpenAI was a bit tricky to get going. There is also an NPM package that exists for OpenAI, however, I've found some of the structuring with it confusing, so I ended up writing my own client classes on top of them to make it more straightforward for me to develop. Finally, Discord.js was only straightforward for me because of its familiarity, and I've worked with it in the past.
Challenges we ran into
The error handling was probably the hardest in this project than any other one that I've dealt with, but I definitely made the most of it within the time I've had.
Accomplishments that we're proud of
I am absolutely proud that I was able to implement three main commands in such a short time period.
What we've learned
I've learned that planning for these time-frames is so important. Because, once you fall behind schedule, it's a bit hard to get back on it. Not impossible, though!
What's next for HopOn!
If there's interest for a Discord bot such as this one, I would be more than willing to refactor it outside of the short time period I had to make it! I believe I have something cooking here with using OpenAI to help gamers out.
Built With
- discord.js
- openai
- postgresql
- steam
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.