Skip to content

Chess v1.0

Choose a tag to compare

@gmnate6 gmnate6 released this 29 Apr 17:52
· 23 commits to main since this release

Chess v1.0 Release

This release marks the first 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 sets the foundation for future multiplayer support.

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.
  • 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.0.zip from Assets:

  2. Unzip Chess-v1.0.zip:

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

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

    • Chess-v1.0/
        ├── chess-client.jar
        ├── chess-server.jar
        └── 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
    • Server:
      java -jar chess-server.jar

What's New in v1.0:

  • Initial public release of the Chess Game with a working client, engine, and server setup.
  • Swing-based GUI for local chess games, with customizable themes and user preferences.
  • Stockfish integration for AI-based gameplay and chess analysis (FEN/PGN export).
  • WebSocket server exposing a ping endpoint for future multiplayer features.

Known Issues:

  • The server currently only supports a ping endpoint; multiplayer functionality will be added in future releases.
  • Further unit tests for client and server modules are planned for future updates.

Future Work:

  • Multiplayer support: A lobby, matchmaking, and game session management system is in development.
  • 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.0