Skip to content

Elderviolet is a quiet, strategic chess engine blending ancient wisdom, deep calculation, and relentless positional precision.

License

Notifications You must be signed in to change notification settings

xingji-studio/Elderviolet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elderviolet logo

A UCI chess engine written in pure C++.
Focused on search strength, clean architecture, and informative UCI output.

License Stars Forks Watchers

Last commit Commit activity Commits since latest Repo size

Issues Issues closed Open PRs Closed PRs

Release Release date Downloads

C++ Build manual Chess Engine UCI

Status Theme Author

---

Overview

Elderviolet is a UCI-compatible chess engine implemented in pure C++ (no external dependencies).
It does not provide a GUI. To play or test the engine, connect it to a UCI GUI such as:

  • Arena
  • CuteChess / cutechess-cli
  • BanksiaGUI
  • ChessBase

Features

Search & pruning:

  • PVS
  • Aspiration window
  • LMR / LMP
  • Null-move pruning
  • Razor
  • Futility pruning (incl. reverse futility)
  • Mate distance pruning

Move ordering:

  • Transposition table (TT) with mate score handling
  • Killer moves
  • History heuristic

Tactical filters:

  • SEE pruning
  • Full SEE fallback (see_full.h)

Parallel:

  • Lazy SMP

Build

This repository is header-heavy and uses main.cpp as the entry point.

Windows (MSVC)

Example (single translation unit build):

cl /O2 /std:c++20 /EHsc main.cpp

GCC / Clang

g++ -O3 -std=c++20 main.cpp -o Elderviolet

Tip: for local testing you can add native optimizations:

g++ -O3 -std=c++20 -march=native main.cpp -o Elderviolet

Run (UCI)

Run the engine in a GUI, or from a terminal.

Example UCI session:

uci
isready
ucinewgame
position startpos moves e2e4 e7e5
go depth 12

Common options (depending on your build) are typically:

  • Hash (MB)
  • Threads

Project Layout

Key files in the repository root:

  • main.cpp — program entry point
  • Engine.h — engine coordination / high-level interface
  • uci.h — UCI protocol handling and option parsing
  • Search.h — search (PVS, pruning, SMP)
  • Evaluation.h — evaluation
  • MoveGeneration.h — move generation
  • Position.h — board representation / state
  • Attack.h — attack tables / helpers
  • TT.h — transposition table
  • ZobristTables.h — hashing keys / tables
  • see_full.h — full SEE implementation
  • types.h — core types / constants
  • logo.png — project logo

Notes

  • The engine binaries (*.exe) in this folder are build artifacts and may be platform/CPU specific (e.g. AVX2).
  • For strength testing, prefer running matches with cutechess-cli and fixed settings.

License

MIT License (see LICENSE).

About

Elderviolet is a quiet, strategic chess engine blending ancient wisdom, deep calculation, and relentless positional precision.

Resources

License

Stars

Watchers

Forks

Packages

No packages published