For my final project in year 12, I decided to create a basic chess engine in C#. The engine understands basic UCI commands, uses alpha-beta search with late-move reduction, uses piece-square tables and material counting for the evaluation, uses MVV-LVA move sorting, and uses a 0x88 board representation for move generation.
To compile the engine, open Chess Engine.sln with Visual Studio and run the program.