Chess game written in V programming language(in development) Thank you for your stars
Still in active development, but the full ruleset and play against a UCI engine now work.
VChess talks to any UCI engine (Stockfish, etc.). In the main menu switch
Opponent to Engine and pick a Level (Easy / Medium / Hard / Max),
then start the game.
Engine resolution order:
--uci <path>command line flagassets/engine/stockfishnext to the executable (drop your own binary here to bundle one)stockfishfound in the systemPATH
./vchess --uci /usr/bin/stockfishThe engine binary is intentionally not committed to the repo (Stockfish is ~76 MB
and platform specific). Install it from your package manager, or place a binary in
assets/engine/stockfish.
You need Vlang installed to play: https://vlang.io
to build use:
# 1. Clone the repo
git clone https://github.com/xn0px90/vchess/
# 2. Build project
cd vchess && v .
# 3. Executable file named "vchess" will appear. Executable have to be in the same folder with assets/
./vchess
This is a non-fatal warning emitted by the sokol graphics library when it cannot query the system DPI from the display server (common in minimal X11 sessions, containers, or remote desktops). The game continues with a default scale of 96 DPI.
If the UI appears too small or too large you can override the DPI scale:
VCHESS_DPI_SCALE=1.5 ./vchess # e.g. 1.5× scaling on a HiDPI displayTo set a persistent Xft DPI value for your X11 session:
echo 'Xft.dpi: 96' >> ~/.Xresources
xrdb -merge ~/.XresourceseglChooseConfig() returned no configs means the EGL driver found no matching
OpenGL framebuffer configuration. This happens when:
- GPU drivers are missing, broken, or mismatched (Mesa vs NVIDIA).
- Running inside a container or remote session without
/dev/driaccess. - Wayland / XWayland backend mismatch.
Quick fix — force software (Mesa llvmpipe) rendering:
./vchess --software
# or equivalently:
./vchess --disable-gpu
# or via environment variable:
LIBGL_ALWAYS_SOFTWARE=1 ./vchessSoftware rendering works everywhere but is slower than GPU rendering.
Verify your EGL / GL stack:
echo "session=$XDG_SESSION_TYPE desktop=$XDG_CURRENT_DESKTOP"
glxinfo -B 2>/dev/null | head -20
eglinfo 2>/dev/null | head -40 # needs: sudo apt install mesa-utils-extra
ls -l /dev/dri- ● Pieces displayed ✅
- ● FEN support ✅
- ● Move rollback ✅
- ● Workable on Android ✅
- ● Properly resizable window ✅
- ● All pieces movable ✅
- ● Main menu & buttons ✅
- ● Preffered color menu option ✅
- ● Theme switching ✅
- ● Progress autosaves ✅
- ● PGN support ❌
- ● Icon sets switching ❌
- ● Animations ✅
- ● Rules ✅
- ● Stockfish integration & UCI ✅
- ● Bluetooth multiplayer ❌
- ● USB Support ❌
- ● E-Board support ❌


