🌐 A Modern, Feature-Rich Web-Based Chess Game for All Players 🌐
- Introduction
- Features
- System Requirements
- Installation
- Getting Started
- Usage
- Demo
- Contributing
- Security
- Code of Conduct
- Support
- License
- Acknowledgements
Chess Ultimate is an open-source, web-based chess game designed to provide a seamless and engaging experience for players of all skill levels. Built with HTML5, CSS3, and JavaScript, it adheres to classic chess rules while offering modern features like multilingual support, customizable themes, and an AI opponent. The game is responsive, works across devices, and includes advanced functionalities such as move history, timers, and pawn promotion, making it ideal for casual play, learning, or competitive practice.
Hosted on GitHub Pages, Chess Ultimate is accessible online without installation, though it can also be run locally. As an open-source project, it encourages contributions to enhance its features, fix bugs, or improve accessibility.
Note: This project is under active development. Some features (e.g., sound effects, AI sophistication) may have limitations or bugs. Your feedback is invaluable!
- Classic Chess Gameplay: Implements standard chess rules, including castling, en passant, and pawn promotion.
- Play Modes:
- Human vs. Human (local play on the same device).
- Human vs. AI (basic random-move AI for black pieces).
- Multilingual Support: Available in English, Spanish, French, German, Japanese, Korean, and Chinese.
- Customizable UI:
- Color Schemes: Choose from 23 themes (e.g., Blue, Rainbow, Galaxy, Vintage).
- Piece Styles: Select from Unicode, Classic, Modern, Aesthetic, Pixel, 2D Brown & White, or 3D Brown & White.
- Board Size: Adjust board size via a slider (50–100 vmin).
- Game Features:
- Move History: Tracks moves in standard algebraic notation, with support for undo/redo.
- Timers: Optional 10-minute timers for white and black, with start/pause functionality.
- Captured Pieces: Displays captured pieces for both players.
- Analysis Bar: Visualizes material balance based on piece values.
- Pawn Promotion: Interactive modal for choosing Queen, Rook, Bishop, or Knight.
- Settings:
- Toggle board labels (ranks/files).
- Adjust animation speed (0.1x to 2x).
- Enable/disable sound effects (note: audio paths are currently invalid).
- Responsive Design: Optimized for desktop, tablet, and mobile devices.
- Visual Effects:
- Animated piece movements with customizable speed.
- Particle.js background for a dynamic landing page.
- Flashing squares for move feedback.
- Accessibility: Keyboard-navigable controls and ARIA attributes for screen readers.
- Local Storage: Saves settings (language, theme, piece style, etc.) across sessions.
- No Ads: A distraction-free experience.
To run Chess Ultimate, ensure you have:
- Web Browser: Modern browser (e.g., Chrome, Firefox, Edge, Safari) with JavaScript enabled.
- Operating System: Any (Windows, macOS, Linux, iOS, Android) with a compatible browser.
- Disk Space: Minimal (~5 MB for the application files, including assets).
- Internet Connection: Required for initial asset loading (e.g., Bootstrap, Font Awesome) unless hosted locally.
- Dependencies: None (all assets are loaded via CDNs or local files).
Follow these steps to set up Chess Ultimate locally:
-
Clone the Repository:
git clone https://github.com/VoxDroid/Chess-Ultimate.git
-
Navigate to the Project Directory:
cd Chess-Ultimate
-
Open the Application:
- Double-click
index.html
to open it in your default web browser. - Alternatively, serve the files using a local server (recommended for proper asset loading):
Then access
python -m http.server 8000
http://localhost:8000
in your browser.
- Double-click
-
Verify Functionality:
- Ensure the landing page loads with the logo and "Play Game" button.
- Click "Play" to start a game and test a move (e.g., move a pawn from e2 to e4).
- Check that the navbar, settings, and game info panel are functional.
Note: Sound effects are currently disabled due to invalid audio file paths in
chess_script.js
. Update theSOUND_EFFECTS
object to point to valid.mp3
files to enable them.
To start playing Chess Ultimate:
-
Access the Game:
- Play online at voxdroid.github.io/Chess-Ultimate.
- Or open
index.html
locally as described in Installation.
-
Navigate the Landing Page:
- Click the "Play Game" button to enter the game interface.
- The landing page features a logo with a floating animation and a particle.js background.
-
Explore the Interface:
- Navbar: Access language, color scheme, piece style, settings, and game info toggles.
- Chessboard: Displays an 8x8 board with optional rank/file labels.
- Game Info Panel: Shows timers, move history, analysis bar, and controls (new game, undo, redo, flip board, AI move).
- Captured Pieces: Lists pieces captured by each player.
-
Start a Game:
- Click "Play Game" to initialize a new board.
- Move pieces by clicking a piece and then a valid destination square.
- Use the AI Move button to let the AI (black) make a random move.
-
Customize Settings:
- Open the settings modal via the cog icon.
- Adjust board size, animation speed, sound effects, or toggle labels.
- Save settings automatically to local storage.
- Human vs. Human:
- Players take turns moving pieces (white moves first).
- Click a piece to highlight valid moves, then click a destination square.
- Special moves (castling, en passant, promotion) are supported.
- Human vs. AI:
- Play as white; click the "AI Move" button to let the AI move black pieces.
- The AI currently selects random valid moves with a 1.5-second delay.
- Controls:
- New Game: Resets the board and timers.
- Undo/Redo: Reverts or reapplies the last move.
- Flip Board: Switches the board orientation (white/black perspective).
- Start/Pause Timer: Activates 10-minute timers for each player.
- AI Move: Triggers an AI move for black.
- Language: Select from 7 languages via the navbar dropdown.
- Color Scheme: Choose from 23 themes to style the board and UI.
- Piece Style: Switch between Unicode or image-based piece sets.
- Settings:
- Toggle board labels for ranks (1-8) and files (a-h).
- Adjust board size using the slider or +/- buttons.
- Set animation speed for piece movements.
- Enable/disable sound effects (requires valid audio files).
- Move History: View moves in algebraic notation (e.g., "e4", "Nxf3").
- Timers: Track time for each player (10 minutes default).
- Analysis Bar: Shows material advantage based on piece values (Pawn=1, Knight/Bishop=3, Rook=5, Queen=9).
- Captured Pieces: Displays captured pieces with the selected piece style.
- Pawn Promotion: Choose a piece when a pawn reaches the opponent’s back rank.
- Notifications: Alerts for check, checkmate, stalemate, or turn changes.
Try Chess Ultimate live at voxdroid.github.io/Chess-Ultimate.
We welcome contributions to Chess Ultimate! To get involved:
- Review the Contributing Guidelines for details on submitting issues, feature requests, or pull requests.
- Fork the repository, make changes, and submit a pull request.
- Adhere to the Code of Conduct to ensure a respectful community.
Example contributions:
- Improve the AI with a stronger algorithm (e.g., minimax with alpha-beta pruning).
- Fix sound effect paths or add new audio files.
- Enhance accessibility (e.g., better ARIA support, keyboard navigation).
- Add new piece styles or color schemes.
Security is a priority for Chess Ultimate. If you discover a vulnerability:
- Report it privately as outlined in the Security Policy.
- Avoid public disclosure until the issue is resolved.
All contributors and users are expected to follow the Code of Conduct to maintain a welcoming and inclusive environment.
Need help with Chess Ultimate? Visit the Support page for resources, including:
- Filing bug reports or feature requests.
- Community discussions and contact information.
- FAQs for common issues (e.g., sound effects, AI behavior).
Chess Ultimate is licensed under the MIT License. See the LICENSE file for details.
- Bootstrap: For responsive layout and UI components.
- Font Awesome: For icons used in the navbar and controls.
- Google Fonts: For the Poppins font family.
- particles.js: For the dynamic landing page background.
- VoxDroid: For creating and maintaining the project.
- Contributors: Thanks to all who report issues, suggest features, or contribute code.
- Chess Community: For inspiring this project with resources like chess.com.