A real-time multiplayer web-based game inspired by Among Us, built with modern technologies including React, TypeScript, Node.js, and Phaser.js.
Check out the game in action: Demo Video
https://github.com/teerth123/Among-Us/raw/main/demo/demo.mp4" type="video/mp4
- Real-time Multiplayer - Powered by Socket.IO for seamless player interactions
- Role-based Gameplay - Imposters vs Crewmates with distinct abilities
- Live Movement - Smooth player movement with WASD controls
- Voting System - Democratic elimination through polling
- Room-based Games - Create or join private game rooms
- Kill Mechanics - Imposters can eliminate other players
- Game State Management - Lobby, waiting, playing, and results phases
- React 19 - Modern UI library with latest features
- TypeScript - Type-safe development
- Vite - Lightning-fast build tool and dev server
- Phaser 3.88.2 - Powerful 2D game framework
- Socket.IO Client - Real-time communication
- Node.js - JavaScript runtime
- Express 5.1.0 - Web application framework
- Socket.IO - WebSocket communication
- TypeScript - Server-side type safety
- CORS - Cross-origin resource sharing
Among-Us/
├── demo/ # Demo videos and assets
│ └── demo.mp4 # Gameplay demonstration
├── frontend/ # React + Vite client
│ ├── src/
│ │ ├── Google.tsx # Main game component with Phaser
│ │ ├── Game.tsx # Alternative game implementation
│ │ └── ...
│ └── package.json
├── backend practice/ # Node.js server
│ ├── src/
│ │ ├── models/
│ │ └── ...
│ └── package.json
└── README.md
- Node.js (v18+ recommended)
- npm or yarn
-
Clone the repository
git clone https://github.com/teerth123/Among-Us.git cd Among-Us -
Install Frontend Dependencies
cd frontend npm install -
Install Backend Dependencies
cd "../backend practice" npm install
-
Start the Backend Server
cd "backend practice" npm start # Server will run on http://localhost:3000
-
Start the Frontend Development Server
cd frontend npm run dev # Frontend will run on http://localhost:5173
-
Open your browser and navigate to
http://localhost:5173
- Enter Username - Set your player name
- Create/Join Room - Start a new game or join existing room with password
- Wait for Players - Minimum 4 players required to start
- Game Starts - Players are assigned roles (Crewmates vs Imposters)
- Gameplay:
- Crewmates: Survive and identify imposters
- Imposters: Eliminate crewmates without being caught
- Voting - Discuss and vote to eliminate suspicious players
- Win Conditions: Crewmates win by eliminating all imposters, Imposters win by eliminating enough crewmates
- WASD - Move your character
- Q - Kill (Imposters only)
- P - Start polling/voting
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
npm run preview # Preview production buildnpm start # Start server
npm run build # Compile TypeScript- Room System: Create password-protected game rooms
- Role Assignment: Automatic imposter/crewmate assignment (20% imposters)
- Real-time Movement: Smooth player synchronization
- Voting Mechanism: Democratic player elimination
- Game Phases: Lobby → Waiting → Playing → Results
- Visual Indicators: Role-based player colors for imposters
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source. Feel free to use, modify, and distribute.
Teerth - @DexTee_17
- Add task completion system
- Implement sabotage mechanics
- Add proper maps and environments
- Emergency meeting functionality
- Enhanced UI/UX
- Mobile touch controls
- Spectator mode for eliminated players
Enjoy playing and contributing to the project! 🎮✨