Inspiration
We all grew up playing racing games, and we wanted to bring back that kind of fun with our own twist. We also wanted to find a more interesting use for AI in a game, since so many AI projects today are chatbots and assistants.
That's how we came up with Jerity: a multiplayer demolition derby where an AI referee directly changes what happens. We thought it would be funny to play a game where you're not only competing against your friends, but also trying to convince an AI referee to help you out or mess with someone else.
We wanted to combine something we loved growing up with modern AI to make a game that feels both familiar and completely different.
What it does
Jerity is a multiplayer demolition derby for 4 to 8 players, where everyone uses their phone as a controller. Instead of steering like a normal car, you tilt your phone in whichever direction you want to go, like rolling a marble around a tray. Tilt left and you head left, tip it forward and you head up the screen, and the further you tilt, the faster you go. The goal is to ram everyone else and be the last car still driving. Players join by scanning a QR code, with nothing to download, and compete across five rounds for the highest score.
The twist is Jerity, our AI referee. During each round, players can talk to Jerity and try to convince him to give them an advantage or put another player at a disadvantage.
Jerity uses Google's Gemini to judge what players say and decide what to do. He might give someone a shield, slow another player down, swap two players' positions, or reverse someone's controls. Then he announces his ruling out loud in his own voice, so every game plays out differently.
As the game goes on, Jerity slowly becomes more corrupted. His face and the arena start to visually decay, and his rulings become increasingly chaotic.
How we built it
We built Jerity in JavaScript, with a Node.js server and a browser-based frontend, so players can join directly from their phones without downloading anything.
Each phone uses its motion sensors as a controller and sends its tilt to the server through Socket.IO, while the game itself is shown on a shared screen. The server runs all of the physics with Planck.js (car movement, collisions, knockbacks and damage) 30 times a second, then streams the result to every screen. Since the server decides what happens, every device stays in sync and cheating is much harder.
For the AI, Groq's Whisper turns what players say into text, Gemini decides what Jerity should do, and Fish Audio gives Jerity his voice.
The most interesting part was connecting the AI to the game. Gemini chooses from a set of actions and returns its choice as structured data. The server then checks that choice, keeps its numbers within safe limits, and applies it to the players in the middle of the round.
Every sound effect is generated live in the browser with the Web Audio API. The game is hosted on Vercel and Render.
Challenges we ran into
Our biggest challenge was connecting Jerity's AI to the actual game. Getting Gemini to understand players and reply was one thing; making its decisions affect the cars was another. We had to translate the AI's choices into specific actions our game engine could understand and execute, without letting it break the game.
Timing was a challenge of its own, because Jerity has to listen, think and talk while the round is still going. Everyone gets a shared six-second window to speak, and every step after that (speech-to-text, Gemini's decision and Jerity's voice) has a time limit, so a slow response can't stall the match. Cars keep driving the whole time, and if the round ends before Jerity finishes, his ruling is cancelled so it can't spill into the next round.
The physics was harder than expected because of our omnidirectional controls. Instead of steering like a normal car, you tilt your phone the way you want to go, like rolling a marble. Our first version pointed the car exactly where the phone tilted, which made turning feel robotic and twitchy. We rewrote it so cars curve toward where you're tilting in smooth arcs, while still feeling like heavy bumper cars that slide and bounce. We also had to rethink things a normal car gets for free: what counts as a hard turn that flips you, which way a stopped car should go, and making sure a big hit still knocks you around instead of your tilt instantly cancelling it.
Getting all the pieces to work together was also hard. The multiplayer system, physics engine, AI and voice features all had to communicate properly, and the game had to stay smooth and in sync across every device while everyone drove in real time.
Accomplishments that we're proud of
We're proud of the idea itself. It excited all of us from the start, and we enjoyed working on it the whole way through. We liked taking something as familiar as a demolition derby and combining it with modern AI to make something new.
We're also proud that Jerity actually changes the game instead of just being an AI character that talks. An AI referee that makes decisions and changes what happens in a match was the main thing we set out to build.
Finally, we're proud of the multiplayer experience: anyone can scan a QR code and start playing on their phone in seconds, with nothing to download.
What we learned
We learned how much work goes into making a multiplayer game run smoothly across different devices.
We also got more experience with AI APIs and connecting their output to a real application. Integrating AI into something interactive is much more complicated than just getting a response from a model.
And we learned how to work together under time pressure: dividing up the work, solving problems as they came up, and deciding which features mattered most.
What's next for Jerity
Our long-term lofty goal is to turn Jerity into a full game and release it on Steam.
We'd like to add more maps, new game modes, more abilities for Jerity, and more ways for players to customize their cars.
We also want to make Jerity's personality deeper. Right now he remembers what happens over the course of a match; next, we want him to remember players across games, develop favorites and rivalries, and change how he treats certain people.
We enjoyed building Jerity, and we'd love to turn it into a game people play with their friends.
Built With
- css
- fish-audio
- google-gemini
- groq-whisper
- html
- javascript
- node.js
- planck.js
- socket.io
- vercel
- web-audio-api
- websockets
Log in or sign up for Devpost to join the conversation.