Repository navigation
Chess v1.0
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.jsonfor themes, usernames, and other preferences. - Centralized asset management with
AssetManagerfor 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
/pingendpoint for connectivity checks. - JSON serialization/deserialization via Gson for client-server communication.
- Future plans for lobbies, matchmaking, and multiplayer game support.
- A GlassFish-based WebSocket server with a
Prerequisites
- Java 17 or later (JDK)
Installation Instructions:
-
Download
Chess-v1.0.zipfrom Assets: -
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/ -
(macOS/Linux only): Make the Stockfish binaries executable:
find stockfish/ -type f -exec chmod +x {} \; -
Run the game:
- Client:
java -jar chess-client.jar
- Server:
java -jar chess-server.jar
- Client:
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