โ† Back to Projects

99 - Multiplayer Card Game

Real-time multiplayer card game with turn-based state management, featuring a robust CI/CD pipeline and cloud deployment.

Overview

99 is a real-time multiplayer card game built with modern web technologies. The game supports multiple players in simultaneous sessions, with turn-based state management and low-latency synchronization using WebSockets and Redis.

The project demonstrates full-stack development skills, from frontend game logic to backend state management, and includes a production-ready CI/CD pipeline with automated deployment to AWS.

Features

  • Real-time multiplayer gameplay with WebSocket connections
  • Turn-based state management with Redis for low-latency synchronization
  • Session recovery using cookies for seamless reconnection
  • CI/CD pipeline with GitHub Actions for automated builds
  • Multi-container deployment (Node.js, Redis, Nginx) on AWS EC2
  • GitHub Container Registry (GHCR) for container management

Rules

Card scores

  • Number cards have score equal to their number (2 is worth 2, 3 is 3, etc.)
  • Jacks have 0 score - essentially a skip turn
  • Queens can be either + or - 20 (players can choose)
  • Aces can be either 1 or 11
  • Kings have 0 score. They are kill cards (see King Challenge below)

Gameplay

  • Each player is dealt 2 cards
  • Each player must play a card during their turn, then pick a card from the deck
  • If the score goes over 99, the player is out

King Challenge

If a player plays a king, they can choose any other player to eliminate.

  • The targeted player can defend by playing either a king or a 4.
  • If the targeted player plays a king, the original (attacking) player is eliminated instead.
  • If the targeted player plays a 4, the attack is neutralized, and both players survive.
  • If the targeted player has no king or 4, they are eliminated.

Tech Stack

  • TypeScript
  • Next.js
  • Node.js
  • Express.js
  • WebSockets
  • Redis
  • AWS EC2
  • Docker
  • Nginx
  • GitHub Actions

Visuals

Screenshots and demos coming soon.