MegaKnight is a chess engine that plays at the level of an intermediate player. Written in C#, it features both an easy-to-use GUI build and a UCI compatible console build.
- User interface: a simple GUI built in MonoGame, with hints for legal moves
- Compatability with other GUIs: MegaKnight includes a console build compatible with the Universal Chess Interface (UCI), allowing it to be used with other GUIs or benchmarked with programs like Fastchess.
- Move validation: ensures all moves made are legal
- Engine play: analyzes the current board state and plays the best possible move
- Download and install the .NET framework.
-
Clone the repository and navigate into its directory.
cd MegaKnight -
Build the GUI version:
dotnet build MegaKnight.csproj -c GUI -o [OUTPUT DIRECTORY]
Alternatively, build the console version:
dotnet build MegaKnight.csproj -c CONSOLE -o [OUTPUT DIRECTORY]
-
Run the .exe file.
start MegaKnight.exe
Alternatively, for the console build, you may also run the DLL file.
dotnet MegaKnight.dll
MegaKnight is currently in active development. Some upcoming features include:
- Adding better pruning techniques to increase engine performance
- Rewriting move generation to be faster
- Updating the GUI to include more functionality, like undoing moves, restarting the game, and switching sides
- Implement an opening book
- Fastchess (for benchmarking and testing)
- Opening book (Note: this isn't actually implemented in play yet, this is just the book used for benchmarking on Fastchess)
- The Chess Programming Wiki
- Notably, PeSTO's evaluation function for piece-square tables and material values
- An article about bitboard intuition
- An article on fast move generation
- Coding Adventure: Chess