Close

Developing the Chess game

A project log for Mat@ir

A spherical chessboard where a robotic arm plays moves from an online game.

nasserNasser 02/26/2025 at 02:220 Comments

For our project, since we are playing on a spherical chessboard, the rules of chess are not the same as in classical chess. A variant of chess will be played. Given the spherical nature of the board, we had the choice between two variants: 
Spherical chess (link), which fully utilizes the unique properties of the chessboard.

Cylinder chess (link), which is typically played on a cylindrical board but can also be adapted to a spherical one.

After researching both variants, we decided to settle on cylinder chess for two main reasons. First, it is much less confusing and easier for players to understand. Second, since we will be coding our chess game from scratch, implementing cylinder chess is significantly simpler. It is essentially standard chess but without the horizontal "walls," allowing pieces to wrap around the board horizontally.

As mentioned, we will be developing the game from scratch for two reasons:

  1. We couldn't find any good open-source examples that fit our needs.
  2. Since the game must be playable online, designing the code from the ground up will allow us to easily integrate the networking functionality later.

The game will be developed using GameMaker Studio, as we are already very comfortable with the software. It also provides solid networking capabilities and supports HTML export, which is essential for making the game playable in a web browser.

Making the game was pretty straightforward; it was essentially like coding a normal chess game, except that whenever a position exceeded the chessboard limits, it would wrap around to the other side. In GameMaker, we implemented it like this:

And as a said the rest was just coding a normal chess game, this was the final result :

(Chess Set - Pixel Art)

The next step was to implement networking into the game.

Discussions