Scorpio - Le Bottin des Jeux Linux

Scorpio

🗃️ Specifications

📰 Title: Scorpio 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Puzzle 🚦 Status: 06. Tested & Working
🏷️ Category: Puzzle ➤ Board Game ➤ Chess ➤ Engine ➤ CECP & UCI 🌍️ Browser-based:
🔖 Tags: Puzzle; Board Game; Chess Engine; CECP Protocol; UCI Protocol 📦️ Package Name:
🐣️ Approx. start: 2005-04-18 📦️ Arch:
🐤️ Latest: 2021-01-29 🍥️ On Deb repo:
📍️ Version: Latest : 3.0.11 / Dev : 436e2ec 📦️ Deb:
🏛️ License type: Free/Free price 📦️ RPM:
🏛️ License: Free 📦️ AppImage:
🏝️ Perspective: Third person 📦️ Snap:
👁️ Visual: Text 📦️ Flatpak/Athenaeum:
⏱️ Pacing: Turn-Based ⚙️ Generic bin.: ✓
👫️ Played: Single 📄️ Source: ✓
🎖️ This record: 5 stars 📱️ PDA support:
🎖️ Game design: 5 stars 👫️ Contrib.: Goupil & Louis
🎰️ ID: 12738 🐛️ Created: 2010-08-20
🐜️ Updated: 2021-11-14

📖️ Summary

[fr]: Une IA de jeu d'échecs (une IA spécialisée dans ce type de jeux) gratuite et multi-plateforme, puissante (puissance estimée à 2995 Elo pour la v.2.8, classée 82ème sur 2779 candidats au CCRL 40/15, classement "CCRL 404 - All engines" du 16 janvier 2021), communiquant avec les protocoles CECP et UCI (les protocoles les plus courants sont CECP aka Winboard/Xboard, et UCI). Elle a permis de développer le moteur généraliste Nebiyu (même auteur, capable de jouer à différentes variantes de jeux d'échecs, aux Dames, Reversi, Go et Amazons). Elle combine des représentations de tablier Bitboards & 0x88 et utilise de nombreuses techniques d'évaluation sophistiquées. [en]: A free and multi-platform chess AI (an AI specialized in this type of games), powerful (power estimated at 2995 Elo for v.2.8, ranked 82nd out of 2779 candidates at CCRL 40/15, ranking "CCRL 404 - All engines" of January 16, 2021), communicating with the CECP and UCI protocols (the most common protocols are CECP aka Winboard/Xboard, and UCI). It allowed to develop the generalist engine Nebiyu (same author, able to play different variants of chess games, Checkers, Reversi, Go and Amazons). It combines Bitboards & 0x88 board representations and uses many sophisticated evaluation techniques.

🎥️ Videos

🎮️ Quelques exemples / Some examples (Showcase) : LC0 vs Scorpio, Stockfish NNUE vs Scorpio, Stockfish NNUE vs Scorpio,

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t(202xxx) ts(202xxx) gd(202xxx) gu(202xxx) id(202xxx) r(202xxx) lp(202xxx) g(202xxx) g(202xxx) g(202xxx) g(202xxx) g[fr](202xxx) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

💵 Commercial : (empty)

🍩️ Resources
• Nebiyu (generalist engine, for chess, Checkers, Reversi, Go & Amazons) : [Nebiyu]
🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames] [Chess Programming Wiki] [Computer Chess Rating Lists ("CCRL 404 - All engines")]

🐘 Social
Devs (Daniel Shawul [fr] [en]) : [Site 1 2] [mastodon] [twitter] [PeerTube] [YouTube] [Interview 1 2]
Game : [Blog] [Forums] [mastodon] [twitter] [PeerTube] [YouTube]

🐝️ Related


📦️ Misc. repositories


🕵️ Reviews
[metacritic] [OpenCritic] [iGDB]

📰 News / Source of this Entry (SotE) / News (SotN)
[Changes with v. 3.0.11 (20210117)]

🐘 Social Networking Update (on Mastodon)

🛠️ Title:
🦊️ What's:
🏡️
🐣️
🔖 #linux

🐧 Update:
💼️
📌️ Changes:
📖 Our entry: https://bit.ly/bottinLightOn
🐘 From:
🏝️ http://youtu.be/
🕵️ http://youtu.be/
🕹️ http://youtu.be/
🐧 http://youtu.be/

Source of this Entry:

📕 Description [fr]

Un moteur de jeu d'échecs sophistiqué et puissant, par Daniel Shawul.
En C++.

Scorpio est une IA de jeu d'échecs (une IA spécialisée dans ce type de jeux) gratuite et multi-plateforme, puissante (puissance estimée à 2995 Elo pour la v.2.8, classée 82ème sur 2779 candidats au CCRL 40/15, classement "CCRL 404 - All engines" du 16 janvier 2021), communiquant avec les protocoles CECP et UCI (les protocoles les plus courants sont CECP aka Winboard/Xboard, et UCI). Elle a permis de développer le moteur généraliste Nebiyu (même auteur, capable de jouer à différentes variantes de jeux d'échecs, aux Dames, Reversi, Go et Amazons). Elle combine des représentations de tablier Bitboards & 0x88 et utilise de nombreuses techniques d'évaluation sophistiquées.

Ressources et documentations disponibles : voir les fiches "Ressources - Echecs" et "Ressources - Echecs Orientaux".


Scorpio est un puissant moteur d'échecs de niveau grand maître. Il peut être utilisé avec des interfaces graphiques qui supportent le protocole Winboard en natif comme Winboard et Arena, ou via l'adaptateur Wb2Uci dans les interfaces Fritz et Shredder.

Objectifs

Les principaux objectifs du SCORPIO sont les suivants :

• Parallèle : Expériences avec des algorithmes de recherche parallèles tels que les algorithmes YBW et ABDADA à la fois sur des systèmes à mémoire partagée (SMP) et à accès non uniforme à la mémoire (NUMA). La recherche parallèle distribuée sur une grappe d'ordinateurs faiblement couplés est également effectuée à l'aide de YBW.

• SCTM : Expériences de recherche d'arbres de Montecarlo (MCTS) pour les échecs. Il prend en charge les déploiements alpha-bêta avec LMR et coup nul dans la partie arborescente de la recherche, couplé avec les déploiements SCTM standard ou la recherche alpha-bêta standard.

• Réseaux de neurones : Expériences avec l'évaluation des réseaux de neurones aka AlaphaZero.

• EGBB : Expériences sur l'encodage, la compression et l'utilisation de bases de bits de fin de jeu (EGBBS) de 6 pièces maximum

📕 Description [en]

"A free, multi-platform, sophisticated and powerful chess game engine" (Serge Le Tyrant, Le Bottin des Jeux Linux / The Linux Games Book).

Scorpio is a strong chess engine at the grand master level. It can be used with GUIs that support the Winboard protocol natively such as Winboard and Arena, or via the Wb2Uci adapter in Fritz and Shredder interfaces.

Goals

The main goals of Scorpio are:

• Parallel : Experiments with parallel search algorithms such as YBW and ABDADA algorithms both on shared memory (SMP) and non-uniform memory access (NUMA) systems. Also distributed parallel search on a loosely coupled cluster of computers is done using YBW.

• MCTS : Experiments with montecarlo tree search (MCTS) for chess. It supports alpha-beta rollouts with LMR and null move in the tree part of the search, coupled with standard MCTS rollouts or standard alpha-beta search.

• Neural Networks : Experiments with neural network evaluation aka AlaphaZero.

• EGBB : Experiments with encoding, compression and use of endgame bitbases (EGBBS) of upto 6 pieces


Chess Programming Wiki (CC BY-SA 3.0) :

Scorpio,
a sophisticated open source chess engine by Daniel Shawul, written in C++ and compliant to the Chess Engine Communication Protocol with builds running under Windows and Linux. Scorpio participated at the CCT9, CCT11 and CCT12 online tournaments, and played the ICT 2007 over the board. It is base of Daniel's general game playing engine Nebiyu, able to play Chess variants, Checkers, Reversi, Go and Amazons.

Description
Board Representation

Scorpio combines Bitboards with a 0x88 board representation, and the coordinate transformation in scanning bits along with the lookup of the De Bruijn multiplication. The "unique" 64-bit routine was generated with the help of the De Bruijn Sequence Generator passing Daniel's birth date. Magic bitboard implementation by Pradu Kannan. Thanks for the acknowledgment of both!
Distributed Search

Scorpio performs a distributed search around an iterative depth-first search framework :

Scorpio uses a decentralized approach (p2p) where neither memory nor jobs are centralized. Each host could have multiple processors in which case shared memory search (centralized search with threads) will be used. One processor per node will be started by mpirun, then each process at each node will create enough threads to engage all its processors.

MCTS

Scorpio 2.7.9, released in December 2017, optionally features a Monte-Carlo Tree Search (MCTS). Scorpio 2.8 in February 2018, MCTS with alpha-beta rollouts as suggested Bojun Huang. The parallel search for MCTS uses virtual loss to distribute work among threads in standard MCTS rollouts, and ABDADA like BUSY flag for alpha-beta rollouts. ABDADA and parallel MCTS from the Go world are very similar in nature.

Evaluation

Scorpio's evaluation includes following features and techniques :

• NNUE (3.0.9)
• Candidate Passed Pawn
• Evaluation Hash Table
• King Safety
• Lazy Evaluation
• Material
• Mobility of bishops and knights
• Outposts
• Passed Pawn
• Pawn Hash Table
• Pawn Structure
• Piece-Square Tables
• Rook on Open File
• Rook on Seventh
• Tapered Eval
• Trapped Pieces

Bitbases

see main article Scorpio Bitbases

Scorpio has its own endgame bitbase format, which might be probed by other programs via a shared library egbbdll.

ScorpioNN

The neural network version of Scorpio 2.9.0 (2019) works using egbbdll shared library that provides neural network inference via TensorFlow and/or TensorRT backends.

ScorpioNNUE

With the the advent of NNUE and its huge success in Stockfish NNUE, CFish NNUE and other engines, Daniel Shawul added NNUE support à la CFish into his egbbdll probing library, and reported more than 400 Elo out of his implementation with a shared library with Scorpio 3.0.9.

🚧️ Installation [fr]

INSTALLATION :

Si vous compilez le source, après compilation pensez à copier le binaire obtenu dans son répertoire racine. Pour jouer avec ce moteur, utilisez une interface graphique de jeu telle que (testé & validé) : Knights.

🔍️ Test [fr]

🕵️ Test (1.2 et 2.2) :
La version 2.2 semble fonctionner (en console saisir : $ ./scorpio puis saisir help pour voir les commandes disponibles) mais nous n'avons pas réussi à la faire fonctionner avec une interface (pas de réponse). La version 1.2 en revanche fonctionne bien.

🕵️ Test (2.7) :
Elle se compile bien et semble fonctionner correctement en console.