Chess-like Board Game Engine + Anarchy Chess Engine

Winter 2023 - Present

Status: This project is still in progress, though it is nearly done! 

All of the Board Game Engine logic is already implemented, and the Anarchy Chess Engine already has all of the standard rules of Chess implemented along with many of the Anarchy Chess special moves. All that's left to do is add the remaining special moves and compile and release this as a C++ library.

Resources

GitHub Repository 

What is this Chess-like Board Game Engine?

The first part of this project, the Chess-like Board Game Engine, is a game engine that controls the backend for any "Chess-like" board game.

In this context, a "Chess-like" board game is a board game that:

Note that these are the only limitations to this engine, so more complex board game mechanics are supported, such as:

What is an Anarchy Chess Engine?

For those unfamiliar, Anarchy Chess is a subreddit for Chess memes. Last year, it became famous for creating many made-up Chess rules that everyone on the subreddit pretends are real. All of these moves are "special moves" for preexisting pieces, meaning they are conditional moves that pieces can only make in limited circumstances and which can potentially cause unusual effects on the state of the board. For example, En Passant is a special move in regular Chess, as it allows a pawn in some circumstances to capture a piece on a space that the pawn does not occupy. A list of some of the most popular of these moves can be found on the Anarchy Chess Wiki.

This Anarchy Chess Engine demonstrates the capabilities of the Chess-like Board Game Engine by using the powerful tools of the engine to implement all of the logic of Chess along with many of these special moves. Once this engine is complete, it will include all of the special moves listed on the Anarchy Chess Wiki along with some more that are relatively popular. 

What technical skills does this project showcase?

The aim of this project is to showcase proper C++ software design practices whenever possible. When working on this project, I took care to create everything in the most "correct" way I know.

Some programming practices I focused on include:

Some design practices I focused on include:

Some C++ features this project showcases include: