A modern web-based implementation of the classic Galaga arcade game with multiplayer support.
galaga-arcade/
├── client/ # Frontend game client with Node.js server
├── mp-server/ # Rust WebSocket multiplayer server
├── docker/ # Docker configurations
├── docs/ # Documentation
└── scripts/ # Build and utility scripts
cd client
npm install
npm run devThe game will be available at http://localhost:8080
cd mp-server
cargo runThe WebSocket server will run on port 8000
Using Docker:
docker-compose -f docker/docker-compose.yml up- Single Player Mode: Classic arcade gameplay
- Endless Mode: Survive as long as possible with increasing difficulty
- Multiplayer Mode: Battle against other players online
- Customizable Settings: Volume control and theme selection
- Responsive Design: Works on desktop and mobile browsers
- WASD - Move ship
- Space/Right Click - Fire weapons
- P - Pause game
- Frontend: Vanilla JavaScript with ES6 modules
- Client Server: Node.js static file server
- Multiplayer Backend: Rust with WebSocket support
- Containerization: Docker and Docker Compose
The client uses a modular architecture with separate modules for:
- Game loop and mechanics
- Player controls and movement
- Enemy AI and spawning
- Audio management
- UI/Menu systems
- Combat and collision detection
The Rust server handles:
- WebSocket connections
- Player matchmaking
- Game state synchronization
- Real-time player movement updates
- Fork the repository
- Create your 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
ISC License - see LICENSE file for details
Zachary Harris (zacharyharris27@gmail.com)