This is a submission for the June Solstice Game Jam.
I built Among Liars, a realtime multiplayer elimination where six humans join a room, but the game secretly adds a seventh player: a Gemini-powered AI hiding inside the Spy side.
There are two teams:
The game is inspired by the Turing Test, but instead of asking "Can AI answer like a human?", it asks something more playable:
Can AI survive being socially judged by humans?
When the game begins, six human players are split into two teams: three Detectives and three Spy Agents. A hidden Gemini-powered AI is then added to the Spy side, creating a team of four spies. The Detectives must identify the AI, while the Spy Agents work together to keep it hidden.
Each round starts with a 2-minute warmup where teams can plan in private rooms. Detectives discuss who feels suspicious. Spies coordinate how to protect the AI.
Then one Detective asks a wildcard-style question to the Spy side. The question is automatically sent to every living Spy player and also to the Gemini AI. Everyone answers under pressure, and the Detective has to read the answers like evidence.
The trick is that Spy-side players receive new cover names every round, so Detectives cannot simply track the AI by name or position. They have to judge tone, timing, weirdness, confidence, and emotional detail.
A question like:
"Describe a tiny mistake you made today without making it sound important."
is much harder than a normal trivia question because it asks for texture, not correctness.
That is where the game becomes interesting.
Sometimes AI sounds too polished.
Sometimes humans sound fake on purpose.
Sometimes the suspicious answer is suspicious because it is AI.
Sometimes it is suspicious because a Spy is protecting the AI.
That tension is the core of Among Liars.
You can play it here:
**Live Demo:** [https://amongliars.vercel.app](https://amongliars.vercel.app)
[https://github.com/abbasmir12/amongliars](https://github.com/abbasmir12/amongliars)
The frontend is built with:
and a custom black-and-white visual style.
The backend uses Supabase for:
I used Supabase Realtime instead of a custom WebSocket server, so messages, answers, player changes, and round changes update live across browser tabs and devices.
The game includes:
Each round is designed to feel like a small interrogation.
First, there is a 2-minute warmup. During this time everyone can continue talking publicly, but the private rooms are where the real strategy happens.
Detectives discuss:
Spies coordinate:
After warmup, one living Detective is selected.
That Detective receives a 90-second question window.
The Detective writes a wildcard pressure prompt. Once submitted, the question is automatically sent to every living Spy-side player, including the human Spies and the hidden Gemini AI.
The Spy side then receives a 45-second answer window.
Human Spies type their responses while Gemini generates its answer through a Supabase Edge Function.
All responses are stored in Supabase and displayed as evidence cards.
Finally, the selected Detective receives a 30-second final read window and must click the answer card they believe belongs to the AI.
The resolution is intentionally asymmetric:
One of the most important mechanics is the rotating identity system.
Spy-side players never keep the same visible name between rounds.
A player might be:
TAVI
in Round 1ORION
in Round 2MICA
in Round 3This prevents cheap detective work.
Detectives cannot simply memorize player names, positions, or patterns tied to a specific identity.
Instead, they must judge the answers themselves.
Previous round results preserve the original cover names, so historical evidence remains readable even after identities rotate.
The wildcard question is the heart of the game.
The best questions pressure the difference between a lived human answer and a generated answer.
Examples:
These questions are not about facts.
They are about texture.
They force players to produce awkward, emotional, sensory, or social details under pressure.
That is where the Turing Test becomes playable.
The Gemini integration runs server-side through a Supabase Edge Function.
When a Detective submits a question, the function:
The Gemini API key is never exposed to the browser.
I also added multiple AI behavior styles so Gemini does not always respond with the same personality.
Sometimes it answers plainly.
Sometimes it is guarded.
Sometimes it is short, awkward, or oddly direct.
The goal is not to make the AI sound perfectly human every time.
The goal is to make it difficult to separate from the Spy side.
I am submitting for both optional prize categories.
Among Liars is built directly around the idea of the Turing Test.
But instead of making the test a static question-and-answer screen, I turned it into a social game.
The AI is not judged by one answer alone.
It is judged by how it survives inside a room full of humans who are actively suspicious of it.
The game asks:
Can a machine imitate a human well enough to survive pressure, suspicion, and social reading?
That felt like a more interactive tribute to Alan Turing's original imitation game.
Gemini is not a decorative feature in this project.
It is the hidden player.
The entire game loop depends on Gemini:
I integrated Gemini through a server-side Supabase Edge Function so the API key remains protected and the AI response becomes part of the realtime game state.
The AI is also given its current undercover identity and round context, allowing it to behave like a player inside the match rather than a generic assistant.
Among Liars started from a simple question:
What if the Turing Test was not a test, but a game night?
The result is a tense social deduction game where humans are reading AI, humans are imitating AI, and nobody can fully trust what "normal" sounds like.
That is the fun part.
In this game, the AI does not need to be perfect.
It just needs to survive.