Insanichess is a free and open-source project implemented in pure Dart with Flutter for client applications. Insanichess will stay free forever and all source is available to everyone on this repository.
Are you ready to experience chess on a whole new level? More squares and more pieces make only your battle plan imagination an obstacle from achieving a victory!
Do you feel bounded while playing chess? Are you playing the same opening over and over again and you became bored? Insanichess is a perfect solution for chess players (and others) that want to experience a chess game on a scope of mediaval battles! Arrange your pawns in a turtle formation, let your cavalry do the breakthrough supported by deadly bishops, all that while your rooks defend your king and queen. Let your battle imagination free in this insane chess variant inspired by classic game of chess and epic mediaval battles!
Do you have a friend that always beats you in chess? Now you have an option to beat him at a REAL chess game!
- Play an online game with custom time control and ability to specify preferred piece color.
- Finished games are stored in the database.
- Play OTB (over-the-board) games. The games are stored locally and can be found in Game History.
- Change settings for online and OTB games.
Currently, support for the following is being added to the Dart backend (sorted by priority):
- Web version.
- Play with random opponent.
- OTB games will be saved on a server instead of locally.
- Profile editing and searching for other players.
- Making friends.
- Tournaments.
- Game statistics.
- Opening explorer.
- Different chess pieces and board styles.
- Sharing of games.
- The sky is the limit ...
The rules of the game are implemented in pure Dart.
The package that holds implementation is insanichess
and its implementation is in packages/insanichess.
The game rules are pretty simple. All pieces move the same as their chess siblings. The only difference in game rules apart from chess are the following:
- Pawns can always move only by one square (even from starting position) and can move diagonally without capturing a piece.
- There is no castling. Your king must stand his ground!
- There is no concept of stalemate or mate. To win a game, you must capture opponent's king.
- The game can result in draw if and only if the players agree to a draw.
Insanichess repository consists of three major parts:
- app is a Flutter project containing client side code (mobile and web app);
- server is a pure Dart project containing server side code;
- packages contains three Dart packages:
insanichess
that holds implementation of game rules,insanichess_engine
that holds implementation of Insanichess evaluation engine, andinsanichess_sdk
that extendsinsanichess
package with functionality that both client and server applications need.
If you have a feature request or a bug to report, please open an issue.