Inspiration

You've probably seen the online games where you chat with someone and guess whether it's a human or an AI. We loved the idea, but those games are one-on-one and over in a minute. We wanted to know what happens when you put that question in a room full of friends. Among Us showed that hidden-identity games are some of the most fun you can have with a group, and Roblox party games showed how addictive fast mini-games are. Intrusion combines the two: one of the robots in your lobby isn't a player. It's an AI, and it's trying to blend in.

What it does

Intrusion is a 3D multiplayer party game for 3 to 10 players, plus one hidden AI. Everyone is a little robot in a lush meadow world, and the theme is nature vs. metal, humanity vs. machine. Players run from spawn to a series of mini-games, competing for points. After each mini-game, everyone votes on who they think the AI is.

  • Every play is evidence. Reacting too fast, being too consistent, or playing too perfectly can give the bot away. Then again, a human might just be good at the game.
  • Turing checks put a random player on the spot partway through a mini-game. The result feeds a "sus meter" that hints but never proves anything, so it starts arguments instead of settling them.
  • No one can tell who's who. Each player sees everyone else with different colors and accessories, so friends in the same room can't just say "I'm the green one."
  • The clock is ticking. You get log₂(players) votes, rounded up, to find the AI. Catch it early and you score more points. Run out of votes and the machine wins.
  • Handler mode (5 or more players): one human is secretly working with the AI and can sabotage the others. Being the bad guy is half the fun.

How we built it

  • Frontend: a 3D scene in Three.js / Vite, with our robot modeled in Blender and exported to glTF. The robot is made of separate pieces with no skeleton, so poses like kneeling and sitting, plus the "corruption" glitch effect, are animated in code.
  • Backend: a Node/TypeScript real-time server that runs lobbies, game state, mini-games, and voting.
  • The AI player: an open-source LLM hosted on AMD Developer Cloud handles the bot's chat and voting. Scripted behavior handles its gameplay, using reaction and typing data we recorded from our own team so it plays like a real (average) human.
  • Design process: we kept a decisions log throughout, recording why we made each call and which ideas we cut.

Challenges we ran into

  • Friends in the same room break the game. A shuffle that changed everyone's look mid-match wiped out everyone's suspicions. The fix was giving each player their own view of everyone else's appearance.
  • Making detection fun, not automatic. Our first Turing check basically caught the bot for you, so we turned it into a noisy clue.
  • Balancing the odds. We used probability to set the vote count so random guessing wins about 50% of the time in small lobbies and about 33–36% in big ones. That makes clues matter more as the lobby grows. Handler mode gets one extra vote to make up for the saboteur.
  • Making a bot that plays like a person and not like a machine with perfect reflexes.

Accomplishments that we're proud of

  • A game design where every rule has a reason behind it. Our decisions log made the whole team argue about the right things.
  • A loading screen that explains the game in a few seconds: robots playing in a meadow until one collapses and gets taken over.

What we learned

  • Making AI convincing has more to do with imperfection than intelligence: delays, hesitation, and average performance.
  • Social deduction games depend on information design. Small choices about what each player can see change the whole game.

What's next for Intrusion

  • Public matchmaking and a bigger rotation of mini-games
  • A points shop for cosmetics, shown in the lobby and the post-game reveal
  • More game modes, like unknown bot counts, "ghost rounds" with no AI at all, and a bounty board of clues
  • A post-game reveal that breaks down the AI's tells, which doubles as practice for spotting AI in the wild
Share this project:

Updates

Submission history