We have split our engine into components and then compiled them together into applications
Currently there is no playable engine, this is caused by the hindrance of performance in our main move validation and generation. We are trying to optimise our code to the point where the engine can look far enough ahead without taking too long to make a move before any full development begins of the engine.
All our chess engines make use of the FEN notation for loading the initial board. This allows the user to have a easier time changing the way the board functions on start-up. We have 3 Core components to the application. A Networking library used for multiplayer, a chess library used for board management and move input / validation. Lastly a GUI library for giving the user a interactive experience and non-complicated inputs.
We have packaged a simple executable that provides the user with playable chess where each piece can be dragged around the board. And moves are highlighted when the player selects a piece.
This makes use of a packaged GUI engine created based off of our Game Engine. It was modified in a way to be more optimal for the chess experience and not bloated with our other game engine functions to keep the library size to the minimum we needed.
Alongside the GUI library created. We thought it would be fun to build a playable version of the game, not limited one computer. This did require us to delve a bit into networking and create a solution that was not to complicated and yet could transfer the moves of the game reliably from one system to another.
Once we work on a propper networking library, it would be packed into this to prevent any errors from not being handled properly.