Sissa is a libSDL implementation of a network chess game.

Background

Developed between 2006 and 2007, this is the outcome of a university project, with the purpose of learning how to develop a game for GNU/Linux.

It was an opportunity to get familiar with GCC, GNU Make, GDB, Valgrind and other excellent tools.

Resources

Books that I read:

  • Programare C și C++ pentru Linux - Dragoș Acostăchioaie
  • Linux Game Programming - Mark "Nurgle" Collins et al.
  • Design Patterns - The "Gang of Four"
  • Focus on SDL - Ernest Pazera

Tutorials that I followed:

Books

Screenshot

Gameplay screenshot

How it works

The first thing people want to know when they hear about this project is whether this chess game has any AI implemented so you can play against the computer. The answer is no. This was meant to be played over the network, between two humans. What it does is to validate moves, to show hints for possible next moves, to detect checkmate and to log the moves.

As a player, you choose whether to host a new game or to join an existing one. To connect, you need to know the IP address of the opponent.

How it was done

I wanted to separate the GUI from the logic, so there are two modules: a shared library with the logic, which knows nothing about SDL, and a binary with the GUI, which knows nothing about chess.

The graphics are from Wikipedia.

Get it