Submitting to the SigmaHacks Community Track
Inspiration
COVID-19 has made a large majority of society stay at home. Many people are now spending their entire day on electronic devices such as their computers and laptops for work, school, and entertainment. In an effort to combat the loneliness epidemic, our team wanted to create a game that promotes connectivity amongst the users. Chatbot Chaos is a fun and interactive game that allows for communication and fun for players all over the World Wide Web.
What it does
Chatbot Chaos is an online browser game that allows a user to chat with two real people and one chatbot, their mission: Pick out the player who is the chatbot!
When first starting the game, the user will land on the login page where they can input their desired username. After pressing submit, the user will then be transported into a new page with a chatroom with three other players: two of whom are real, and one who is the chatbot. From there on the players will talk amongst themselves in order to figure out who among them is truly a chatbot.
How we built it
We developed the game with HTML, CSS, and JavaScript. We used repl.it to collaborate online. For the animation on the landing page, we generated a background in p5.js. To allow for a connection between players, we created rooms in Socket.io. Once users join the room, they are assigned an ID that matches them to the voting system. We used the InferKit API to port the GPT-2 natural language processing model into our chatbot to create realistic text generation. Our domain, chatbotchaos.space, was hosted on domain.com.
Challenges we ran into
One challenge we ran into was the animated background on the title screen. We originally had dots moving randomly, but we became more ambitious and decided to program rotating triangles, which posed more complications
Another challenge we had was implementing the API. There was confusion about the link in the fetch request as well as where to send the API key in the request, and we had a limited number of requests (around 100) before our free trial ran out.
Accomplishments that we're proud of
We’re proud of being able to implement the chatbot, and of being able to find an API that worked. Most other chatbot APIs are geared towards business, and we had to dig quite a lot to find the one we used. We are also proud of our socket.io room implementation, which not only allowed the users to communicate with each other but also with the chatbot itself.
What we learned
We learned how to create a messaging system where players around the world are able to connect over the internet. In learning how to use the InferKit API, we learned how to implement requests using Node.js, and how to use the API responses interactively within the chat room. Last but not least, we are proud of our background animation on the front page of the website.
What's next for Chatbot Chaos
In the future, our team would love to train multiple chatbots, giving each one a different personality. We could also add minigames with the chatbot. An example of one such game could include a chatroom with two players and a chatbot, in which both players receive a unique random word. In order to win, a player must get the chatbot to say their secret word before the other player can do so. Also, we might implement different levels, where the higher level you are the more sophisticated the chatbot's language becomes, and the harder it is to distinguish from human players.
Built With
- css3
- html5
- inferkit-api
- javascript
- p5.js
- replit
- socket.io
Log in or sign up for Devpost to join the conversation.