Skip to content

Chess v1.1

Latest

Choose a tag to compare

@gmnate6 gmnate6 released this 03 May 04:02
· 16 commits to main since this release

Chess v1.1 Release

This release marks the second version of the Chess Game, featuring a full client-server chess application built in Java. It includes a Swing-based client with a responsive, intuitive GUI, a custom game engine integrating the Stockfish chess engine for AI play, and a WebSocket server that supports multiplayer.

Features:

  • Client
    • A Swing-based graphical user interface (GUI) for playing chess, with intuitive and responsive board interactions.
    • MVC architecture for clean separation of concerns.
    • Single-player modes against a bot and a unique "solo mode" where the board flips each move.
    • A settings system stored in settings.json for themes, usernames, and other preferences.
    • Centralized asset management with AssetManager for handling images, sounds, fonts, and colors.
  • Engine
    • Full game state management and rule enforcement.
    • Integration with the Stockfish chess engine for challenging AI gameplay.
    • Export to FEN and PGN formats for analyzing or sharing games.
    • Comprehensive unit tests with JUnit Jupiter to ensure reliability.
  • Protocol
    • Sets the ground works for Client-Server communication
    • Handles JSON requests for WebSocket connections
  • Server
    • A GlassFish-based WebSocket server with a /ping endpoint for connectivity checks.
    • JSON serialization/deserialization via Gson for client-server communication.
    • Future plans for lobbies, matchmaking, and multiplayer game support.

Prerequisites

  • Java 17 or later (JDK)

Installation Instructions:

  1. Download Chess-v1.1.zip from Assets:

  2. Unzip Chess-v1.1.zip:

    • Windows: Right-click the file → “Extract All…”
    • macOS/Linux: Open terminal and run:
      unzip Chess-v1.1.zip

    After downloading the release, your directory should look like this:

    • Chess-v1.1/
        ├── chess-client.jar
        ├── chess-server.jar
        ├── README.md
        └── stockfish/
    
  3. (macOS/Linux only): Make the Stockfish binaries executable:

    find stockfish/ -type f -exec chmod +x {} \;
  4. Run the game:

    • Client:

      java -jar chess-client.jar

      Note: You can also double click chess-client.jar

    • Server:

      java -jar chess-server.jar

What's New in v1.1:

  • Protocol Module allows for easy communication between server and client
  • Simple Matchmaking when at least 2 people join the lobby, the server will place the client in matches

Future Work:

  • More Multiplayer support: Allow users to choose who they match with
  • Unit tests: Expanding unit and integration tests for the client and server modules.
  • Enhanced themes and UI customizations: More theme options and customizations will be added.

Full Changelog: https://github.com/gmnate6/Chess/commits/v1.1