Welcome to Northchess, an online multiplayer chess game developed as part of the Northcoders Software Development Bootcamp. This Flutter-based project showcases our team's skills in mobile and game development.
Northchess consists of two main components:
- Frontend (This Repository): A Flutter-based mobile application that handles the game logic, user interface, and player interactions.
- Backend: A Dart-based server that manages real-time updates and multiplayer functionality. (Backend Repository)
- Full chess gameplay, including special moves like En Passant and Castling
- Multiple game variants: Classic, Edge Wrap, Horde, and Endgame
- Real-time board updates
- Pawn promotion
- Checkmate and stalemate detection
- Online multiplayer and offline practice mode
- Clean, modern interface with high-quality chess pieces
- Language: Dart
- Framework: Flutter
- Key Packages:
flutter_svg
: For displaying chess piecesweb_socket_channel
: For real-time communication with the backend
- Flutter SDK (latest stable version)
- Dart SDK (latest stable version)
- An IDE (Visual Studio Code or Android Studio)
- Git
- Backend server running (see backend repository for setup instructions)
- Clone the repository:
$ git clone https://github.com/henryloach/nc_abcs_boardgame_frontend
- Navigate to the project folder:
$ cd northchess-frontend
- Install dependencies:
$ flutter pub get
- Ensure the backend server is running for multiplayer functionality.
- Connect a device or start an emulator.
- Run the app:
$ flutter run
For more details, see the Flutter setup guide.
- Classic: Traditional chess rules
- Edge Wrap: Pieces can move across board edges
- Horde: White starts with extra pawns
- Endgame: Limited pieces from the start
- Frontend (This Repository):
- Implements all game logic and state management
- Handles user interactions and game moves
- Communicates with the backend for multiplayer functionality
- Backend:
- Manages WebSocket connections for real-time updates
- Handles player matchmaking and game session management
- Relays move information between players in multiplayer games
We welcome contributions to both the frontend and backend! Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/AmazingFeature
) - Make your changes
- Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Ensure your code adheres to our coding standards and include tests for new features.
This project is licensed under the MIT License.
This project was created during the 13-week Northcoders Software Development Bootcamp. The program focuses on full-stack development and provides 480 contact hours of training. While the bootcamp primarily teaches JavaScript, we applied our skills to build this Flutter/Dart application with a complementary backend.
For more information, visit the Northcoders Website.
Thank you for your interest in Northchess. If you have any questions or feedback, please open an issue on this repository. Enjoy playing! ♟️