Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
Pragma Chess는 게임을 데이터베이스에 저장하고 엔진·오프닝 북·노트로 분석할 수 있게 합니다
Pragma Chess keeps your games in databases and lets you study them with an engine, an opening book and your notes; train against the engine with a tutor; play online. Light, simple, with what really m
게임C++ · KotlinGitHub @francescobianco온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Free, open-source chess database with a native desktop client: game databases, engine analysis, Explain, lichess/chess.com import, opening books. Windows, macOS, Linux.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Your chess, in one place — and an engine that tells you why .
A free, open source chess database for studying, training and playing.
Press E on any move and the board shows why it is good or bad.
An open source chess database for studying, training and playing: light,
simple, with what really matters. For Windows, macOS and Linux.README 전문 보기 ↗| 🧠 Explain | The engine doesn't just score the move: arrows on the board show the material that falls and the reply that makes the difference. |
| 📚 A real database | PGN, lichess.org, chess.com and ChessBase files; search by position on millions of games, in seconds. |
| 🎯 Train with a tutor | Play the engine from your own opening book; a tutor stops you on mistakes and offers to take back or explain. |
| 🌐 Play online | lichess.org and freechess.org from the same board — engine off, clocks on, and an estimated Elo for both sides when the game ends. |
| 🔁 Everywhere | Native on Windows, macOS and Linux, with an Android companion; sync your folder over FTP, WebDAV or Git. |
An open source chess database for studying, training and playing: light, simple, with what really matters. For Windows, macOS and Linux.
Web site: https://yafb.net/pragma-chess/ (English, Italian and Spanish, with screenshots, downloads and the guide) · Discussions for questions and ideas · Issues for problems. Contributing: report a wrong explanation, translate, write code. See DESIGN.md for the vision and architecture, CHANGELOG.md for what changed, and DISTRIBUTING.md for how we make it known.
The latest version, always at these links:
| System | Download |
|---|---|
| Windows 10/11 (64-bit) | Installer · Portable zip |
| macOS 12+ (Apple Silicon) | Disk image |
| Ubuntu 24.04+ / Debian 13+ | .deb |
| Fedora | .rpm |
| Other Linux (x86-64, from 0.4.0) | AppImage: make it executable and run it |
| Android 8+ (beta) | APK |
Every version, with files named after it, is on the releases page. The packages are built by GitHub Actions from packaging/.
The mobile app is in beta and we'd love your feedback; it will soon be on the official app store. It reads your databases offline, records the games you play on the phone and analyses them with an engine app such as Stockfish (any Open Exchange engine, as in DroidFish; the app offers to install one); pair it with the desktop client in Options ▸ Connect Mobile App… to keep both in sync.
Download the APK (Android 8+, about 14 MB; it has the same version as the desktop client). Open the link on the phone and allow installing from that source when Android asks. Tell us what works and what doesn't in the issues: the phone model and the Android version help.
The GUI lives in gui/qt. It talks to the database through the GameDatabase
interface (gui/qt/src/app/GameDatabase.h).
Databases are .pdb files — SQLite databases tagged with PRAGMA application_id
(PRAG) and a schema version in PRAGMA user_version, upgraded by migrations
when an older file is opened. By default they live in
a localized chess folder in the home directory, next to Desktop and Documents:
~/Chess/Pragma/Databases/ (English)
~/Scacchi/Pragma/Databases/ (Italian)
Projects are .pch files (YAML) saved from the File menu. A project is the
workspace: it captures the whole working environment — database, open game and
move, board orientation, engine, which panels are visible and how much room
each one takes — and is stored by default in ~/Chess/Pragma/Projects/
(localized like the databases folder). The last session is restored
automatically on startup, attached to its project file. The View menu shows
and hides the panels, and View ▸ Reset Panel Layout puts them back.
An existing chess folder is reused if the language changes; PRAGMA_CHESS_DIR
overrides it. On first launch the folder is seeded with Classic Games.pdb.
Game ▸ New Game starts a game that is entered move by move on the board
(click or drag the pieces) and analyzed as it grows; Game ▸ Save Game to
Database adds it to the open .pdb. Playing a different move in a stored
game never changes it: the new line becomes an unsaved game.
Explain (the light bulb between the previous and next move buttons, or
E) shows why the evaluation is what it is compared with the position
before the last move: the refutation of a mistake, the material a move wins,
a mate it allows or misses. It starts the engine if needed: the border of the
board breathes while the engine is looking and turns blue when the answer is
on the board.
Game ▸ New Training… asks which colour you want and starts a game in which the engine answers as the other one. It is a plain game with Engine ▸ Training Mode switched on: while it is your move the engine's best line is hidden (the score is not), and you can only move your own pieces. The checkmate or stalemate that ends the game is stored in the open database with the result filled in. Game ▸ New Game switches training off again.
The engine's answer crosses the board slowly, growing and wearing a halo, so a move you did not make is impossible to miss.
Right-click a player in the games list and choose Who Is This? ▸ It's Me, A Friend or An Opponent. The database remembers it: the tree lists your games, your friends and your opponents, and a game you played opens with your pieces at the bottom of the board.
In the tree next to the games list, Board under the database has two views that follow the board. Position lists the games in which the position on the board occurs, reached in any move order; Variant lists the games that begin with exactly the moves played to get there. Their counts and the list change as you move through the game or play new moves.
Database ▸ Connect Source… connects the games of a lichess.org or chess.com account to the open database. They are imported and kept up to date in the background while the database is open; Database ▸ Manage Sources… syncs, edits, signs in again or removes sources. lichess.org needs signing in, which happens in the browser.
torneionline.com (the Italian federation's rating site) is found by FIDE or FSI ID: every game of the player's tournaments is added with players, Elo, tournament, round and result but no moves, since the site has none, ready for the moves to be entered by hand.
The Book menu chooses a Polyglot opening book (.bin) from the Books folder
(~/Chess/Pragma/Books) or anywhere else. The Opening Tree panel shows the
book moves of the position on the board with their weight and the name of the
opening each move leads to; click one to play it. Names come from an ordinary
database of type Opening Book, where each game is a named line (Event is the
name). Two are installed ready made in Books/Opening Names, English and
Italian; the one of the interface language is used unless you choose another
in Options ▸ Opening Names, which lists each database by its own name in your
language (set in Database ▸ Database Settings) and also any opening book
among your databases. Open one to add or rename variations. Pragma Chess ships Pragma Openings, built from the public domain
lichess chess-openings
collection; pragma-book builds and probes books on the command line.
Options ▸ Switch Language chooses the language of the interface for your user account; it applies the next time Pragma Chess starts. English, Italian and Spanish today: your language is welcome, and it takes no code.
The toolbar holds three buttons: Sync Now, New Game and New Training. The first of them (Ctrl+Y) syncs everything in one go and in the order that keeps the pieces consistent: the games of the connected sources come down into the database, the project file and the session are written, and only then does the folder go to the server. What is pushed is always what you are looking at. File ▸ Sync Now is the same button; Options ▸ Sync Settings… holds it too, with a Sync before closing option, which is remembered and also offered by the dialog that asks to save a modified project on quit.
Syncing reconciles, it deletes nothing on its own. Every computer ends up
with the union of what all of them have: a file that appears anywhere is
added everywhere, and two computers editing the same file keep both
versions. A file deleted by hand from the Pragma folder is noticed (each
computer keeps what it last synced in a hidden .pragma-chess.mine there)
and you are asked whether to delete it everywhere or restore it; Manage
Files… in the Sync Settings deletes files from the server and every
computer, after a confirmation. Nothing else is ever removed.
Options ▸ Sync Settings… connects the Pragma folder to a folder on an FTP
or WebDAV server (Nextcloud, a NAS…) or to a Git repository. With Git the
real files never become a repository: each sync copies them into a clone
kept by Pragma Chess, commits and pushes, one commit per sync that changes
files, named after them (databases are binary, so the history grows with
every change). Every computer set up with the same server folder
keeps the same databases and projects: changes are sent and received every few
minutes and a .pragma-chess.sync file on the server tracks what changed
where.
Dependencies, on Debian/Ubuntu or on macOS with Homebrew and the Xcode Command Line Tools:
make deps # Linux: sudo apt install build-essential cmake ninja-build qt6-base-dev qt6-svg-dev libqt6sql6-sqlite qt6-tools-dev qt6-l10n-tools qt6-translations-l10n libssl-dev inotify-tools
# macOS: brew install cmake ninja pkgconf qtbase qtsvg qttools yaml-cpp openssl@3 fswatch
make start # build, launch, and rebuild + restart on every change under gui/qt
make run # build and launch once
make build # build only
make test # build and run the tests
make stockfish # build the bundled Stockfish into the build (start and run do it once when missing)
make install # install for the current user in ~/.local (PREFIX=/usr/local for everyone)
make install adds the menu entry and the icon, so the desktop shows the
Pragma Chess logo in the launcher, dock and window list.
make start and make run register the development build the same way for
the current user (make desktop-dev), because on Wayland the dock only shows
the icon of an installed menu entry.
make start keeps the running window if a build fails, so you can fix the
error and save again. It uses inotifywait when available and falls back to
polling otherwise.