Skip to content

ChloeCrozier/poker_party

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Poker Party

Multi-player poker game

Planned Tech Stack

  • Frontend: JavaScript (HTML, CSS) for UI development in the browser.
  • Backend: Node.js with WebSockets for real-time multiplayer support.
  • Database: Firebase or MongoDB for storing game sessions, player data, and game state.
  • Deployment: DigitalOcean Droplet Server
  • Version Control: GitHub for collaboration and version management.

Stage 1: MVP - Command Line Poker Game (Local Single Player)

Basic Game Setup:

  • Create a command-line interface (CLI) to start a poker game.
  • Allow a player to set game rules (blinds, buy-ins, initial balance).
  • Implement a simple menu to choose actions (start game, set blinds, etc.).

Texas Hold'em Game Logic:

  • Implement card dealing for players (two private cards per player).
  • Program the full poker hand sequence: pre-flop, flop, turn, river.
  • Allow basic player actions (check, fold, call, raise) via CLI.

Dealer, Small, and Big Blinds:

  • Assign dealer, small blind, and big blind randomly for each round.
  • Rotate dealer and blinds after each hand.

Game Phases & Winner Determination:

  • Handle game phases and calculate the winner based on hand rankings.
  • Track player balances and end the game when one player has all the money.

Testing & Debugging:

  • Ensure the game runs smoothly and all phases work as intended.
  • Test for edge cases like running out of money or invalid player actions.

Stage 2: UI-Based Poker Game (Local Multiplayer)

UI Design:

  • Develop a simple graphical user interface (GUI) for the game using JavaScript, HTML, and CSS.
  • Create input fields for setting blinds, buy-ins, and player names.
  • Display poker cards, player information (names, balances), and action buttons (fold, check, raise).

Multiplayer Support (Local):

  • Allow multiple players to play on the same machine.
  • Use the UI to handle each player's turn (allow interaction with buttons).
  • Display dealer, small blind, and big blind on the screen.

Game Logic Integration:

  • Adapt the existing command-line game logic for the new UI.
  • Implement visual updates for the game phases (dealing cards, bets, community cards).
  • Automatically rotate blinds and dealer visually on the screen.

UI Enhancements:

  • Improve the player experience with card animations, betting visuals, and pot updates.
  • Display the current pot and actions for all players in real-time.

Testing & Debugging:

  • Test for smooth transitions between player turns.
  • Ensure game phases and betting logic remain accurate in the new UI environment.

Stage 3: Shared Server Poker Game (Multiplayer Online)

Server Setup:

  • Set up a backend server using Node.js and WebSockets for real-time communication.
  • Handle session creation for multiplayer games: store game ID, player list, and game state.

Game Session Creation:

  • Allow the host to create a new game session with a unique game ID.
  • Let players join a game using the game ID.
  • Ensure the server manages the dealer, blinds, and turns across all connected clients.

Real-Time Multiplayer:

  • Sync game state across multiple clients using WebSockets or Firebase.
  • Handle player actions (check, fold, raise, etc.) and update all players in real-time.

UI Updates for Multiplayer:

  • Extend the existing UI to support real-time updates for multiple players.
  • Display each player's action in real-time (e.g., "Player 1 folds").
  • Sync dealer, small blind, and big blind assignments across all clients.

Player Management:

  • Allow up to 4 players per game session.
  • Handle player disconnections and reconnections.
  • End the game when one player has all the money or everyone leaves.

Security & Validation:

  • Add basic security checks for game inputs and actions.
  • Ensure fair play by randomizing card dealing server-side.

Testing & Debugging:

  • Test multiplayer interactions across multiple devices.
  • Debug real-time synchronization issues and edge cases like player disconnections.

Deployment:

  • Package the app and deploy the server for real-time play on DigitalOcean.
  • Ensure scalability and smooth performance for multiple concurrent sessions.

About

Multi-player poker game

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published