Skip to content

Developer guide

How can I build the game on my own computer?

This will be your folder structure:

.
├── chess-library
├── conquer_chess
├── magic_enum
└── SFGraphing

Go to the place where you want these 4 folders to be created, then do:

git clone https://github.com/richelbilderbeek/conquer_chess
git clone https://github.com/Neargye/magic_enum --branch v0.9.7
git clone https://github.com/Disservin/chess-library.git
git clone https://github.com/richelbilderbeek/SFGraphing -b patch-1

Additionally, install Qt Creator and SFML:

sudo apt install libsfml-dev qtcreator

Start Qt Creator and open the Qt Creator project game.pro.

How do you upload the Linux executable?

Prefer a video?

Watch the YouTube video Conquer Chess: how to deploy the Linux Steam Runtime 3.0 (Sniper) build

Using a GitHub Actions script that uploads the executable and all required shared objects.

Then, download all these into the steam_build/linux64 folder.

Then run ./scripts/run_steamcmd_to_upload.sh to upload these.

How do you upload the Windows executable?

Prefer a video?

Watch the YouTube video Conquer Chess: deploying the Windows version

Using an AppVeyor script that uploads the executable and all required DLLs.

Then, download all these into the windows_binary folder.

Then run ./scripts/run_steamcmd_to_upload.sh to upload these.

How did you set the AppVeyor script to SFML 2.6.1?

How does that look like?

Click on SFML 2.6.1

  • Click on 'Subtree'
How does that look like?

Click on 'Subtree'

  • Extract the full commit number from the GitHub URL, in this case 163b97d4625073093ae73585695cc4cfe4480998
How does that look like?

Extract the full commit number from the GitHub URL

  • In the root folder, the file vcpkg.json must use that commit number as a builtin-baseline.
How does that look like?

Here is an example (and complete) vcpkg.json:

{
  "name": "conquer-chess",
  "version": "0.13.0",
  "dependencies": [
    {
      "name": "sfml",
      "features": [
        "audio",
        "graphics",
        "network",
        "window"
      ]
    }
  ],
  "builtin-baseline": "163b97d4625073093ae73585695cc4cfe4480998"
}

Due to this, vcpkg will look for SFML 2.6.1 and all its dependencies at that point in its commit history.

How did you generate the FEN strings

I often used https://www.365chess.com/analysis_board.php.

How is the user input handled?

See architecture

Where is the code documentation?

See the Doxygen generated documentation.