Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

☠️ VibePlay (Ship or Sink)

A chaotic, real-time multiplayer party game powered by React, FastAPI, WebSockets, and a Savage Gemini AI Judge.

Gather your friends in a lobby, deceive each other, and see who survives the Vibe Check.


📸 Screenshots

VibePlay Gameplay


🎮 The Games

1. Who Is The Spy?

  • The Catch: Everyone gets the same secret word... except for one player (The Spy), who gets a slightly different but related word. (Powered by a randomized Gemini seed to ensure words never repeat!)
  • The Play: Take turns giving one-word clues about your word.
  • The Goal: The normal players must find and vote out the Spy. The Spy must figure out what the normal word is and blend in.

2. Roast Battle 🔥

  • The Catch: 2 random players in the room are thrown into the arena. The others spectate.
  • The Play: The battlers get 3 continuous rounds to type out their most brutal roasts against each other.
  • The Goal: Destroy your opponent. At the end of round 3, the Gemini AI Judge processes the transcript, declares a specific winner, provides a savagery percentage (e.g., 80% vs 20%), and adds a savage commentary of its own.

😈 Bonus: Form Sabotage

The Lobby has a hidden 60% chance to wipe either your Alias or Room Code the very first time you try to join, giving you a fake error. Only the real ones make it through on the second try.


🛠️ Tech Stack

  • Frontend: React + Vite, raw CSS (Neon cyberpunk aesthetics)
  • Backend: Python + FastAPI + Uvicorn
  • Communication: Raw WebSockets (asyncio event loop)
  • AI Integration: Google Gemini API (google.generativeai)
  • Validation: Pydantic

🚀 How to Run Locally

Prerequisites

1. Backend Setup

cd src/vibeplay/server
python -m venv venv
source venv/Scripts/activate # (Or venv/bin/activate on Mac/Linux)
pip install -r requirements.txt

Create a .env file in src/vibeplay/server:

GEMINI_API_KEY=your_api_key_here
GEMINI_MODEL=gemini-2.5-flash
HOST=0.0.0.0
PORT=8000
DEBUG=false
MAX_PLAYERS=8
ROUNDS_PER_GAME=3

Run the backend:

python main.py

2. Frontend Setup

cd src/frontend
npm install
npm run dev

3. Play!

Open your browser to http://localhost:5175 (or whatever port Vite gives you). Open a second tab to act as Player 2. Enter the same room code and let the chaos begin!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages