Both of us, Jaivir (my team member) and I love to play interactive role-playing type games. Unfortunately, many of these games require someone to narrate and guide it. When we have to introduce the game to someone new, or even play with seasoned players, being the host sucks the fun out of the experience. Thus we wanted to make an AI of some sort that could host the game for us so that we could also participate with our friends!
What it does
The game is fairly simple. Everyone who plays has a target that they need to tag. Once they tag their target successfully they are rewarded points. If they get tagged by their pursuer before they can tag their target, they are eliminated and the pursuer now chases the tagged-players target. Last player standing wins!
The Bot, BAWSE, tracks all in game events and updates them realtime to the discord server. Every player has a "profile picture" that they take and upload to bot. When a player tags their target, they take a picture of their target and send it to the bot. BAWSE then checks to see if the faces match and rewards points!
How we built it
The bot itself is a discord bot that has custom controls made with discord.js. The server is hosted with Node and Express and stores all the player data. The Machine Learning software is made with two open-source libraries: OpenCV and OpenFace. Their sole purpose is to check and see if two pictures have the same face in them.
Challenges we ran into
Accomplishments that we're proud of
- The facial recognition software, albeit might be a little wonky, recognizes and can compare faces
- The custom commands for BAWSE also work and can be scaled to nth degree
What we learned
- Every aspect of the project was new to the both of us and so almost everything was new
- I learned about RESTful API's, designing API's, POST and GET requests, etc.
- Jaivir learned about Machine learning, training models, photo recognition
What's next for AI Assassin
- We most definitely missed out on one big factor of the game. We wanted to implement a proximity sensor that would alert you if there was an assassin within 10 meters of you.
- we also wanted to make a ring that would shrink after 5 hours of game play. Players outside the ring would get instantly eliminated and this would force players to come together for one last epic game.
- A countdown for how many players were left
- Extending the Bot to be able to host and narrate similar narrator based games (using machine learning to generate stories from given texts) like UIltimate Werewolf (or also known as Mafia)