Research Report on the History of Computer Chinese Chess (Xiangqi) Game-Playing
A structured history of Chinese chess engine development from the 1980s to 2026, covering major engines, protocols, and community tooling. Chapter 1 Basic Concepts of Computer Chess Game-Playing → Chapter 6 Xiangqi Cyclone and Yitian Xian…
Chapter 1 Basic Concepts of Computer Chess Game-Playing
1.1 What is Computer Game Playing
Computer Game Playing is a core area of artificial intelligence research. The fundamental problem can be stated as: how can a computer make optimal decisions in a two-player, turn-based, perfect-information game?
Chinese Chess (Xiangqi) is a perfect-information game — both sides can see all pieces on the board, with no hidden information. This is fundamentally different from imperfect-information games such as Mahjong or Poker. The nature of perfect-information games allows the Minimax search algorithm to be applied directly.
1.2 Minimax Search and Alpha-Beta Pruning
Minimax search is the theoretical foundation of computer game playing. The basic idea is: in a game tree, each level represents a move decision by one player, assuming both sides choose the move most favorable to themselves:
- The side to move (MAX) selects the move with the highest evaluation value
- The opponent (MIN) selects the move with the lowest evaluation value (what is most favorable to the opponent makes the evaluation value seem lower for the side to move)
This can be expressed mathematically:
Minimax(position) = max over all opponent moves of Minimax(result of opponent's move)
Minimax search is theoretically perfect, but in practice, the size of the game tree grows exponentially with search depth. The average branching factor of Xiangqi is approximately 40–60 legal moves — meaning searching to depth 10 requires evaluating 40^10 ≈ 10^16 nodes, which is infeasible on any computer.
The introduction of Alpha-Beta pruning solved this problem. The core idea of Alpha-Beta pruning is: when searching a branch, if it is discovered that this branch can no longer affect the final decision, stop further exploration of that branch immediately.
The mechanism:
- Alpha value represents the MAX player’s current best guaranteed value (lower bound)
- Beta value represents the MIN player’s current best guaranteed value (upper bound)
- When a branch returns a value outside the [Alpha, Beta] window, pruning can occur
Under ideal conditions, Alpha-Beta pruning reduces search complexity from O(b^d) to O(b^(d/2)) — doubling the search depth within the same time. For a game with a high branching factor like Xiangqi, the effect of Alpha-Beta pruning is extremely significant.
1.3 Pioneering Research in Chess Engines
The development of Xiangqi engines has greatly benefited from pioneering research in international chess engines.
Claude Shannon’s Foundational Work (1950):
In 1950, Claude Shannon of Bell Labs published the landmark paper “Programming a Computer for Playing Chess.” In this paper, Shannon proposed for the first time a systematic method for making computers play chess:
- Type A strategy (brute-force search): Search all possible moves to a certain depth, then evaluate the resulting position using an evaluation function.
- Type B strategy (selective search): Search only promising moves in depth, ignoring obviously bad moves.
Shannon also proposed the basic theoretical framework for game tree search and design principles for position evaluation functions. This paper is considered the foundational work of the computer game-playing field.
Alan Turing’s Early Implementation (1951):
Alan Turing designed a chess program (Turochamp) during his time at the University of Manchester. Since no sufficiently powerful computer was available at the time to run it, Turing could only “manually simulate” the algorithm’s execution — each move took him about 30 minutes of calculation. Despite this, Turochamp proved that computer chess was feasible in principle.
The Historical Significance of Deep Blue (1997):
In 1997, IBM’s Deep Blue defeated world champion Garry Kasparov in chess, the most significant milestone in the history of computer game playing. Deep Blue used custom VLSI chips capable of evaluating 200 million positions per second. Its basic architecture still followed the Minimax search + Alpha-Beta pruning framework, but through engineering optimization it achieved unprecedented search speed (under some positions, search depth could exceed 20 plies).
The techniques developed by these programs — Alpha-Beta pruning, Iterative Deepening, Transposition Table, History Heuristic, Killer Move, Null Move Pruning — were later adopted and adapted by Xiangqi developers.
1.4 Why Xiangqi Programs Started Later
It is no accident that Xiangqi programs started later than international chess programs:
- Hardware conditions. In the 1980s, personal computer penetration in mainland China and Taiwan was far lower than in the West, and the computing power of 286/386 processors was extremely limited.
- Language and tools. Early chess programs were mainly developed in C and assembly languages, which spread more slowly in Chinese-speaking communities.
- Lack of standardized data. International chess has the PGN standard format, vast game databases, and a unified international competition system. Xiangqi lacked a unified electronic notation standard in the 1990s.
- Weak academic support. International chess had long-term support from the ICGA (International Computer Games Association) and a large body of academic papers, while Xiangqi received less attention from academia.
- Incomplete competition system. International chess has regular international computer chess championships and standardized competition rules. Xiangqi’s computer competition system lacked a unified organization for a long time.
- Cultural factors. The 1980s coincided with the AI Winter, and public attitudes toward “machine intelligence” were conservative. Within the Xiangqi community, the acceptance of “computer chess” as a high-tech exploration was also a gradual process.
Despite starting later, the development speed of Xiangqi engines has been remarkable — from Jiangzu’s first championship in 1989 to Pikafish’s introduction of NNUE in 2022, in just 33 years Xiangqi engines evolved from amateur beginner level to surpassing human Grandmasters, a pace even faster than the evolution of chess programs. This rapid catch-up can be attributed to two factors: first, Xiangqi engines could directly draw on the mature technical framework of chess engines; second, the rapid development of computer hardware in the late 1980s provided Xiangqi engine developers with a better development environment than that faced by chess pioneers.
Chapter 2 The Earliest Xiangqi Programs: The 1989 Computer Olympiad and Jiangzu
2.1 Acer Cup and the Starting Point of Computer Xiangqi (1985–1988)
The earliest computer Xiangqi competition was the “Acer Cup” held by Acer in Taiwan, held annually from 1985 to 1990. This was the earliest competitive platform for computer Xiangqi.
The first Acer Cup computer Xiangqi tournament in 1985 is considered the world’s first organized Xiangqi program competition. According to limited historical records, the number of participating programs was small and their playing strength very limited, but this marked a new stage in computer Xiangqi — from individual experimentation to organized competition. The Acer Cup was sponsored by Taiwan’s Acer computer company with the goal of promoting personal computer applications and software development. This kind of corporate support played a key role in promoting early Xiangqi software development.
According to ICGA records, the first working Xiangqi program appeared around 1982. The first academic paper on computer Xiangqi was published in 1981. But these early programs were still experimental and far from being able to compete with human players. The earliest experimental programs were mainly rule-based simple systems, with search depths typically only 2–3 plies and very rough evaluation functions.
2.2 Jiangzu (Acer Chinese Chess / Xiangqi Master 3)
Jiangzu (English name Acer Chinese Chess, also called CChess or Xiangqi Master 3) was developed by Taiwanese programmer Yu Xishun (虞希舜) during his college years. The program won the gold medal in the Xiangqi event at the 1st Computer Olympiad held in London in 1989.
Jiangzu (Acer Chinese Chess) running interface — developed by Yu Xishun during his college years, gold medalist at the 1st ICGA Computer Olympiad in 1989, pioneering computer Xiangqi game playing
According to official ICGA records, the 1st Computer Olympiad Xiangqi event had 5 participating programs:
| Rank | Program | Country/Region | Score | Total Games |
|---|---|---|---|---|
| 1 | Acer Chinese Chess (Jiangzu) | Taiwan | 4.0 | 4 |
| 2 | CChess Expert Acme | Taiwan | 3.0 | 4 |
| 3 | Elephant | Taiwan | 1.5 | 4 |
| 4 | Xian | USA | 1.5 | 4 |
| 5 | Ogre | UK | 0.0 | 4 |
Jiangzu’s commercial product “Xiangqi Master 3” was released on the DOS platform in 1992. Its playing strength was reportedly above amateur 2-dan level, and its performance on the DOS platform at the time was outstanding.
Technical Features:
Jiangzu adopted the standard computer game architecture of the time:
- Board representation: A 10×9 two-dimensional array representing the board, with each square encoding piece type and color.
- Search algorithm: Depth-first Alpha-Beta pruning search with Iterative Deepening. Search depth was typically between 4 and 7 plies.
- Evaluation function: Based primarily on material value (Rook > Horse > Cannon > Pawn), combined with simple position weight tables and basic attack/defense judgment.
- Opening book: Included a relatively comprehensive opening variation library, allowing the engine to avoid consuming search time during the opening phase.
- Engineering characteristics: The interface and engine were tightly coupled, running as a monolithic DOS program. This was standard practice at the time, but also meant the engine could not be used independently of the interface.
Historical Impact and Limitations:
Jiangzu holds a pioneering position in Xiangqi engine history, but there are some misconceptions that need correction:
- It was not the “first” Xiangqi engine — experimental programs (such as Xian, Elephant) had appeared before it.
- It was also not the “strongest” engine at the time — at the 2nd Computer Olympiad in 1990, Elephant (developed by Xu Shunqin) won gold, while Jiangzu did not participate.
- Its core contribution was “disseminability” — as a commercially released software, “Xiangqi Master 3” was widely circulated in Chinese-speaking communities during the DOS era, allowing a large number of ordinary users to experience “computer chess” for the first time.
- Engine-GUI coupling — the engine could not be called independently, limiting its subsequent development.
Yu Xishun’s Pioneering Contribution:
Yu Xishun’s most important contribution with Jiangzu was that he achieved a competitive Xiangqi program under the resource constraints of the late 1980s. According to limited publicly available information, Jiangzu used the best search strategy achievable on PCs at the time, with high-quality assembly-language core code. Yu Xishun later moved to other fields (records show he worked at Microsoft) and did not continue developing Xiangqi engines. But his legacy — Jiangzu / Xiangqi Master 3 — holds an indelible place in Xiangqi software history.
Jiangzu (Acer Chinese Chess) DOS version software box — published by Acer, one of the earliest commercial software titles in the history of computer Xiangqi
2.3 Early Commercial Engines After Jiangzu
Following Jiangzu’s success, a number of early commercial Xiangqi software titles emerged in Taiwan and mainland China:
- Xiangqi Shijia: A commercial program building on Jiangzu’s foundation, maintained by Acer/Eten
- Xiangqi Wulin: One of the earliest Xiangqi programs in mainland China
- Multiple iterations of the Xiangqi Master series
Characteristics of these early commercial programs:
- Tightly coupled interface and engine, inseparable
- Playing strength roughly at amateur beginner to intermediate level
- Primarily targeting the individual consumer market
- Technical details typically not publicly disclosed
2.4 ICGA Technical Rules and the Academic Competition Environment
The International Computer Games Association (ICGA) provided an important organizational framework for computer Xiangqi competitions. In ICGA competitions:
- Official Xiangqi competition rules (Asian rules) were used
- Time controls were typically generous (e.g., 1 hour per side)
- Both sides had to use independently developed programs
- The format was single round-robin or multi-round Swiss system
The ICGA competition environment played an important role in promoting the academic development of Xiangqi engines. Scholars could compare the effectiveness of different algorithms and implementations under standardized conditions — this competition-verification mechanism drove technical iteration and optimization. However, the participation threshold for ICGA competitions was relatively high (requiring travel to compete at designated locations), limiting involvement from independent developers and amateur enthusiasts.
Chapter 3 UCCI and UCI Protocols: A Key Step in Xiangqi Engine Standardization
3.1 The Birth of the UCCI Protocol
The birth of the UCCI protocol (Universal Chinese Chess Interface) was a key turning point in Xiangqi engine history. Before UCCI existed, every Xiangqi engine was a “black box” — the engine and user interface (GUI) were tightly coupled together, and users could not freely swap engines or interfaces.
The Designer and Timeline:
The UCCI protocol was designed by Huang Chen (黄晨) and officially published on xqbase.com in 2006. Huang Chen was also the author of the ElephantEye engine and the maintainer of xqbase.com. His original intention in designing the UCCI protocol was to allow different Xiangqi engines to communicate with any GUI through a standardized text protocol, just like chess engines do.
The design of the UCCI protocol was profoundly influenced by the chess UCI protocol (Universal Chess Interface, designed by Stefan Meyer-Kahlen and Shane Hudson). It can be said that UCCI is essentially UCI adapted for the rules of Xiangqi.
The Core Ideas of UCCI:
UCCI uses a simple line-based text protocol as its communication format. The GUI sends commands to the engine, and the engine returns results. This design has the following advantages:
-
Protocol independence: Communication is based on standard input/output (stdin/stdout), independent of the operating system and programming language. Whether on Windows, Linux, or macOS, and whether the engine is implemented in C++, Java, or Python, they can all communicate through UCCI.
-
Simplicity: Each command and response is a readable line of text, easy to debug and understand.
-
Asynchronicity: During search, the engine can send intermediate search results (such as current best move, search depth, evaluation value, etc.) to the GUI at any time.
-
Extensibility: Engines can declare support for specific protocol extensions through the “feature” command.
UCCI Standard Commands in Detail:
The UCCI protocol defines the following core commands:
-
ucci: Engine initialization command. The GUI sends “ucci”, the engine replies with “id name” and “id author ”, then sends “ucciok” to indicate initialization is complete. -
isready/readyok: Synchronization check command. The GUI uses “isready” to confirm whether the engine is operational, and the engine replies with “readyok”. -
setoption <name> <value>: Set engine options. For example, setting hash table size, number of threads, evaluation parameters, and other custom options. -
position [fen <FEN string>] startpos moves <move list>: Set up the board position. Can specify a FEN string (unknown starting position) or use the standard starting position. Then lists the sequence of moves already played. -
go <parameters>: Start searching. Parameters may include search depth (depth), search time (time/movetime), node count (nodes), infinite search (infinite), etc. -
stop: Stop searching. -
ponderhit: In pondering mode, the GUI notifies the engine that the opponent has played the move the engine predicted. -
quit: Terminate the engine process.
UCCI’s Adaptation to Xiangqi:
Compared to UCI, UCCI makes the following adaptations for Xiangqi’s characteristics:
-
Move format: Xiangqi moves are represented using the starting coordinate to target coordinate format (e.g., “a0a1”), rather than chess’s algebraic notation (e.g., “e2e4”).
-
FEN format: Adapted for Xiangqi’s board dimensions (9×10 instead of 8×8) and piece types.
-
Rule handling: The protocol layer supports Xiangqi-specific rule handling requirements, such as cyclic moves and facing generals.
3.2 The Practical Impact of the UCCI Protocol
The emergence of the UCCI protocol had a profound impact on the Xiangqi engine ecosystem:
-
Separation of engine and interface: From then on, engines could operate as independent modules, and users could switch between different engines within the same GUI. This gave rise to multi-engine management tools like Binghe 54.
-
Simplified comparative testing: With a unified protocol, developers could easily compare the playing strength and performance of different engines on the same platform, under the same positions.
-
Emergence of open-source tools: Based on the UCCI protocol, the community developed a large number of auxiliary tools and GUIs, including Binghe 54, Xiangqi Cyclone interface, Yitian interface, Chess Software Collector, and others.
-
Enabling distributed computing: The text-based nature of the UCCI protocol made it very suitable for use in distributed environments, running engines and GUIs on different machines via TCP/IP.
3.3 Deep Comparison of UCCI and UCI
Although UCCI is based on UCI, there are some notable differences in their usage scenarios for Xiangqi and chess engine development:
| Feature | UCI (Chess) | UCCI (Xiangqi) |
|---|---|---|
| Board size | 8×8 | 9×10 |
| Piece types | 6 per side | 7 per side |
| Move notation | e2e4 format | a0a1 format |
| FEN description | Chess FEN | Xiangqi-adapted FEN |
| Cyclic move handling | Threefold repetition = draw | Complex (long check / long chase / double-check-one-avoid, etc.) |
| Protocol maturity | Released 1999, extremely mature | Released 2006, with subsequent revisions |
The most fundamental difference between UCCI and UCI lies in the handling of repetition detection. In chess, threefold repetition of a position is automatically a draw; in Xiangqi, different types of cyclic moves (“long check,” “long chase,” “check once, chase once,” etc.) must be distinguished and judged differently. This means UCCI protocol engines need more complex repetition detection logic than UCI engines.
3.4 Huang Chen’s Maintenance of UCCI
Huang Chen maintained the official specification of the UCCI protocol on xqbase.com and provided a reference implementation (ElephantEye). He also designed and implemented a UCCI debugger and protocol conformance testing tools to help developers ensure their engines correctly implemented the UCCI protocol.
xqbase.com, as the central site for Xiangqi programming, provided:
- Complete Chinese documentation of the UCCI protocol
- The full source code of the ElephantEye engine (LGPL license)
- Xiangqi programming tutorials (covering evaluation functions, search algorithms, transposition table implementation, and other topics)
- Toolchain for the XQF notation format
Huang Chen’s significant investment of time and effort in UCCI and ElephantEye has earned him the title “Father of Open Source Xiangqi Engines.”
3.5 The FEN Format Standard in Xiangqi
Within the UCCI protocol, FEN (Forsyth-Edwards Notation) was formally introduced to the Xiangqi domain as a standard text representation of positions. The Xiangqi-adapted FEN format is as follows:
- Board representation: From row 1 (black’s back rank) to row 10 (red’s back rank), separated by “/”
- Uppercase letters (Red side): K=King, A=Advisor, B=Bishop, N=Knight, R=Rook, C=Cannon, P=Pawn
- Lowercase letters (Black side): k=King, a=Advisor, b=Bishop, n=Knight, r=Rook, c=Cannon, p=Pawn
- Digits: Represent consecutive empty squares
- Additional fields: Side to move (w/b), castling availability (not applicable in Xiangqi, usually “-”), en passant target square (not applicable in Xiangqi, usually “-”), halfmove clock, fullmove number
FEN of the standard starting position:
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABNR w - - 0 1
Volume II Golden Age of Xiangqi Engines
Chapter 4 Qiyin: The First Milestone Xiangqi Engine (1997–2000)
4.1 The Birth of Qiyin (Chess1)
Qiyin (English name Chess1) was developed by Lin Shunze (林顺泽). During 1997–2000, it was called “Qiyin” or “Chess1” on Chinese forums. Public information about its author is relatively sparse, but it is certain that Qiyin dominated the Chinese chess software market in the late 1990s.
Qiyin’s emergence coincided with the period when personal computers began to popularize in China. The Windows 95/98 operating system provided a better runtime environment for Qiyin than DOS. Qiyin was one of the first mainstream Chinese chess software titles to run in the Windows environment.
Qiyin (Chess1) version 4.35 — one of the most popular Chinese chess software titles in the late 1990s, standard Windows-style interface, 3D solid board
4.2 Qiyin’s Market Position
Qiyin’s position in the Chinese chess software market was similar to that of WinBoard/ChessBase in the international chess software market — not necessarily the most technically powerful, but the best-known and most widely used chess program of its time.
The main features of Qiyin included:
- A friendly Windows graphical user interface
- Playing strength around amateur level 1–2 in the late 1990s
- Support for recording, saving, and reviewing games
- A basic opening book
4.3 Qiyin’s Interface Features and User Interaction Experience
Qiyin’s user interface adopted the standard Windows software design style of the time:
- The menu bar included standard menu items such as “File”, “Edit”, “Game”, “Settings”, “Help”
- The board employed a 3D solid visual style (novel for its time)
- Pieces had a wood-grain texture
- Supported undo, review, and game notation editing
- Had a built-in rule engine that could distinguish legal and illegal moves
- Supported printing game notation
These interface features may seem ordinary today, but in the late 1990s, Qiyin’s user experience already far surpassed its contemporaries.
4.4 Technical Architecture
Qiyin’s technical architecture reflected the typical level of Chinese chess engines in the late 1990s:
- Search algorithm: Alpha-Beta pruning, iterative deepening, search depth approximately 5–8 plies.
- Evaluation function: Based on material values (Rook 10 points, Horse 4 points, Cannon 4 points, Advisor 2 points, Elephant 2 points, Pawn 1 point), supplemented by simple position weights and piece mobility evaluation.
- Opening book: Included hundreds of common opening variations.
- Board representation: Used a 10×9 two-dimensional array, with simple piece-position hashing.
- Engineering characteristics: Engine coupled with GUI (but more modular than the Jiangzu era), still delivered as a monolithic program.
Although Qiyin’s evaluation function was simple, it was sufficient to challenge amateur human players at the time. Qiyin’s technical limitations included:
- No transposition table to accelerate search
- No null move pruning
- Limited evaluation precision, inaccurate assessment of complex positions
These limitations meant Qiyin’s playing strength was soon surpassed by a new generation of engines after the turn of the century.
4.5 Qiyin’s Decline and Influence
Qiyin’s decline marked the farewell of the first generation of Chinese chess software. With rapid improvements in computer hardware and search algorithms, Qiyin was gradually replaced by engines (such as Xiangqi Qibing, Qitian Dasheng, etc.) after the mid-2000s. But Qiyin’s historical importance cannot be overlooked — it was the first Chinese chess program to truly enter the public eye, greatly promoting the popularization of Chinese chess computer game research.
Qiyin’s impact on the Chinese chess software ecosystem is reflected in the following aspects:
- Cultivation of user habits: Qiyin cultivated a large base of Chinese chess software users, who first learned about the possibilities and limitations of “computer chess” through Qiyin.
- Completion of market education: Qiyin proved the commercial value of chess software, paving the market path for later commercial engines.
- Germination of community culture: Discussions and usage experience sharing about Qiyin laid the foundation for later chess software communities such as Qizhong Forum.
Chapter 5 Qitian Dasheng: The Intersection of Academia and Engineering (2004–2006)
5.1 Development Background of Qitian Dasheng
Qitian Dasheng (NEUChess) was developed by Wang Jiao (王骄) and his team at Northeastern University. Qitian Dasheng is one of the most important academic achievements in the history of Chinese chess computer games research.
Qitian Dasheng (NEUChess) — Chinese chess engine developed by Wang Jiao's team at Northeastern University
Northeastern University had a relatively long-standing research accumulation in artificial intelligence and computer games. Wang Jiao began developing Qitian Dasheng around 2004 as his research project at Northeastern University. The development process of Qitian Dasheng embodied the combination of “academic research” and “engineering implementation,” serving as a model for academic participation in Chinese chess engine development.
5.2 Qitian Dasheng’s Achievements in ICGA and CCMC
Qitian Dasheng achieved outstanding results in Chinese chess engine competitions:
-
2006 ICGA Gold Medal: At the 11th Computer Olympiad held in Turin, Italy in 2006, Qitian Dasheng defeated strong opponents including Zongma Benliu by a narrow margin to win the gold medal. This was the first time a Chinese chess engine developed by mainland Chinese academia won at an ICGA event — a significant milestone.
-
CCMC 2006–2007 Champion: The China Computer Game Championship (CCMC) began in 2006, and the first champion was Qitian Dasheng, which successfully defended its title in 2007.
Qitian Dasheng (NEUChess) engine interface — the first mainland Chinese chess engine to win at ICGA, developed by Northeastern University
Qitian Dasheng's competition interface at the 2006 ICGA Turin event — winning the gold medal by a narrow margin over strong opponents such as Zongma Benliu
Qitian Dasheng's technical analysis interface — its evaluation function had excellent judgment capabilities for complex positions
Tactical Analysis of the 2006 ICGA Competition:
According to game record analysis, Qitian Dasheng’s main advantages in the 2006 ICGA competition were:
- Excellent middlegame judgment — the evaluation function’s assessment of complex positions was relatively accurate
- Sound search strategy — did not miss critical tactics due to overly aggressive pruning
- Relatively deep middlegame search depth — could seize opportunities when opponents made mistakes
5.3 Wang Jiao’s Academic Contributions
Through his research work at Northeastern University, Wang Jiao not only developed Qitian Dasheng but also published multiple academic papers on Chinese chess computer game research, including:
- Research on search efficiency optimization in Chinese chess engines
- Research on evaluation function design in Chinese chess engines
- Research on parallel search in Chinese chess engines
These academic papers provided important theoretical references for subsequent Chinese chess engine development. Wang Jiao’s research covered multiple core areas of Chinese chess engines, from search algorithm improvements to evaluation function optimization, from single-machine efficiency enhancement to parallel search implementation. His work demonstrated the viability of Chinese chess engine development as an academic research topic.
5.4 Technical Details of Qitian Dasheng
According to publicly available academic papers and forum discussions, Qitian Dasheng’s technical characteristics included:
Advanced PVS Search: Qitian Dasheng used PVS (Principal Variation Search), an efficient variant of Alpha-Beta search. PVS works by assuming the first variation (principal variation) is the best move, then verifying this assumption by searching other branches with a narrow window (null window).
Hybrid Evaluation Function: Qitian Dasheng’s evaluation function combined hand-tuned static features with simple statistical analysis. The evaluation factors included:
- Material value (base score)
- Positional value (score table for each piece at each position)
- Piece mobility (number of available moves)
- Piece coordination (cooperative relationships between pieces)
- King safety (protection status of the king)
- Position structure (piece-type structure, advisor/elephant integrity, etc.)
Transposition Table Optimization: Qitian Dasheng implemented a transposition table, caching previously searched positions via a hash table. The introduction of the transposition table significantly reduced duplicate searches and improved search efficiency.
Experimental Parallel Search: Qitian Dasheng experimented with the Young Brothers Wait parallel search strategy, demonstrating some scalability on dual-core machines. Although parallel efficiency was not high, this attempt was pioneering for its time.
5.5 Historical Significance of Qitian Dasheng
The special significance of Qitian Dasheng in the history of Chinese chess engine development lies in:
- Academic recognition: Qitian Dasheng proved that Chinese chess engines are a topic worthy of academic attention, laying the foundation for more universities to participate in Chinese chess engine research.
- Bridge between mainland China and ICGA: As the first mainland Chinese engine to win at ICGA, Qitian Dasheng introduced the strength of Chinese chess engine research to the international computer games community.
- Model of technical heritage: Wang Jiao promoted the dissemination and inheritance of technical knowledge by publishing papers and sharing experiences.
- Demonstration of technical approach: Qitian Dasheng showed how combining academic rigor with engineering quality produces a first-class Chinese chess engine.
Chapter 6 Xiangqi Cyclone and Yitian Xiangqi: The Rivalry of Two Titans (2005–2008)
6.1 The Birth of Xiangqi Cyclone (2005)
Xiangqi Cyclone (Tornado) was developed by Chinese programmer Chen Chaoying (陈朝营). Xiangqi Cyclone is one of the most influential commercial engines in the history of Chinese chess engines.
Xiangqi Cyclone official website — the most influential commercial engine developed by Chen Chaoying, later releasing the NNUE version Cyclone-nn
Development Background:
Chen Chaoying began developing Xiangqi Cyclone around 2005. He was not an academic but an individual developer with strong programming skills and chess theory knowledge. The earliest versions of Cyclone used parts of the open-source engine ElephantEye’s code, but Chen Chaoying soon completely rewrote the core code.
Early versions of Xiangqi Cyclone began circulating in communities like Qizhong Forum during 2005–2006. Due to its strong performance (achieving relatively deep search depth on the hardware of the time), it quickly attracted the attention of chess software enthusiasts.
Version History:
Xiangqi Cyclone went through several important version iterations:
- Initial version (2005): Based on ElephantEye code, using basic Alpha-Beta search
- Cyclone V2 (2006): Complete code rewrite, introducing advanced PVS search, greatly improving playing strength
- Cyclone V3 (2007): Introduced multithreading and parallel search, began winning awards in competitions
- Cyclone V4 (2008): Further optimized evaluation function and pruning algorithms, reaching the industry’s top level at the time
6.2 Xiangqi Cyclone’s Technical Architecture
Xiangqi Cyclone’s success was mainly due to its excellent search algorithm implementation. Its main technical features included:
1. PVS Search:
Cyclone implemented a complete PVS search. The core idea of PVS is to search non-principal-variation branches under a null window, thereby achieving the same search guarantee with approximately 10–20% less search time compared to Alpha-Beta at equivalent playing strength.
2. Efficient Transposition Table Implementation:
Xiangqi Cyclone implemented a hash-based transposition table with the following optimizations:
- Used Zobrist hashing to generate position hash values
- Adopted a hierarchical storage strategy (Exact/Alpha/Beta node types)
- Used depth-preferred replacement strategy (replace when the new entry’s search depth exceeds the existing entry’s)
- Configurable hash table size (typically 64MB to 256MB)
3. Null Move Pruning:
Positional material and tactical threats mainly come from “making a valuable move.” The basic assumption of null move pruning is: if you cannot gain an advantage even when assuming the opponent moves twice consecutively, then that search branch is not worth exploring deeply.
Cyclone applied null move pruning very aggressively, skipping up to 50% of search branches in some positions. This aggressive pruning brought significant improvements in search depth but also led to evaluation errors in certain special positions.
4. History Heuristic and Killer Moves:
Cyclone implemented both History Heuristic and Killer Move move-ordering techniques. The History Heuristic guides search ordering by recording the historical success rate of each move in different positions, while Killer Moves record the most effective moves that caused pruning at the same search depth. The combined use of these two techniques significantly improved search tree pruning efficiency.
5. Iterative Deepening:
Cyclone abandoned fixed-depth search and adopted iterative deepening entirely. The benefits of iterative deepening include:
- Time controllable: can return the current best move at any time
- Transposition table warm-up: results from shallow searches (such as PV, evaluation values) can be utilized by deeper searches
- Search stability: iterative deepening is more stable than fixed-depth search, avoiding drastic fluctuations where “shallow search thinks it’s good, deep search thinks it’s bad”
6. Evaluation Function:
Cyclone’s evaluation function centered on hand-tuned features, including:
- Material Advantage: weighted sum based on positional values
- Mobility: weighted sum of available squares per piece
- King Safety: control range and protection level around the king
- Pawn Structure: pawn formation, value of crossed-river pawns
- Area Control: degree of control over the center, river boundary, and palace
6.3 The Rise of Yitian Xiangqi (Intella)
Yitian Xiangqi (Intella) was jointly developed by Chen Chaoying (陈朝营) and Wei Yutao (韦馀涛). Intella was an important competitor to Xiangqi Cyclone, forming a “two-titan rivalry” in the history of Chinese chess engine development.
Intella’s Technical Features:
Intella adopted a technical approach similar to but different from Cyclone:
-
Search algorithm: Intella also used PVS search, but its pruning strategy was slightly more conservative, favoring more complete search and more stable evaluation.
-
Evaluation function: Intella’s evaluation function emphasized “positional understanding” capability, with more refined assessment than Cyclone in areas such as piece exchanges, positional balance, and tactical combinations.
-
Opening book: Intella’s opening book was manually curated and maintained by the team, with quality at the top level among contemporaneous engines. The Intella team collaborated with multiple professional players to ensure the opening book covered all mainstream opening variations.
-
Multithreading support: Intella supported dual-core and quad-core multithreaded search, with good scalability on SMP (symmetric multiprocessing) systems.
The 2006 National Sports Administration Testing Event:
In 2006, the Chess and Cards Management Center of the General Administration of Sport of China conducted an internal playing-strength test of Chinese chess software. The test used high-level professional players to play against the engines. Intella performed outstandingly in this test, receiving an evaluation of “reaching National Master level.” This testing event was widely reported by the Chinese chess software community, significantly enhancing Intella’s brand recognition and market acceptance.
6.4 The Competition and Technical Exchange Between Cyclone and Intella
The competitive relationship between Xiangqi Cyclone and Yitian Xiangqi was quite unique. Due to the close personal relationship between the main developers (Chen Chaoying and Wei Yutao), the relationship between Cyclone and Intella involved both competition and cooperation.
Technical Exchange:
Chen Chaoying and Wei Yutao engaged in technical discussions and mutual reference. In some technical details, they influenced each other (such as approaches to handling certain special positions). However, this technical exchange was not public; the community could only infer the relationship between the two from the engines’ actual playing performance.
Market Competition:
At the market level, there was fierce competition between Cyclone and Intella. The two alternately won championships at ICGA and CCMC events in different years, forming a “two-titan rivalry.” This competition was reflected not only in competition results but also in commercial sales, user reputation, and community influence.
Impact of Competition:
The healthy competition between Cyclone and Intella played an important role in promoting the development of Chinese chess engines:
- Both sides continuously optimized algorithms and evaluation functions to gain a competitive advantage
- Competition fostered deeper technical research and more innovation
- User and community interest in comparative tests and game analysis increased, promoting discussion of engine technology
6.5 Cyclone’s Performance at ICGA and CCMC
Xiangqi Cyclone won a silver medal at the 2008 ICGA Beijing event. Afterward, Chen Chaoying continued developing Xiangqi Cyclone, which was later renamed Cyclone-nn upon entering the NNUE era.
At the time, the comparison of strength between Cyclone and Intella became a hot topic in the community. But most notably, the competition between Cyclone and Intella drove the development of the entire Chinese chess engine ecosystem. Because of this competition, both engines continued to improve, each representing the highest level of Chinese chess engines at the time.
The 2008 ICGA competition was held in Beijing, marking the first time ICGA held an event in mainland China. Xiangqi Cyclone, as a mainland Chinese native engine, won the silver medal at the event. Although it lost to Intella, it demonstrated excellent middlegame tactical ability and relatively high search depth during the competition. In several key games, Cyclone defeated strong opponents through precise tactical combinations.
6.6 Comprehensive Comparison of the 2005–2008 Golden Generation Engines
2005 to 2008 was a golden period in the development of Chinese chess engines, with multiple epoch-making engines concentratedly emerging. Below is a comprehensive comparative analysis of this generation of engines from multiple dimensions:
| Dimension | XQMASTER (Xiangqi Qibing) | MRSJ (Mengru Shenji) | NEUChess (Qitian Dasheng) | Cyclone (Xiangqi Cyclone) | Intella (Yitian Xiangqi) |
|---|---|---|---|---|---|
| First release year | 2005 | 2004 | 2004–2005 | 2005 | 2007 |
| Developer | Zhao Mingyang | Tu Zhiqiang (Sun Yat-sen Univ.) | Wang Jiao (Northeastern Univ.) | Chen Chaoying | Chen Chaoying + Wei Yutao |
| Development background | Personal/Commercial | Academic research (graduate) | Academic research (professor) | Personal/Commercial | Commercial team |
| Search algorithm | PVS (Principal Variation Search) | Advanced Alpha-Beta | PVS + Multi-level pruning | PVS + Null Move + LMR | PVS + Advanced pruning |
| Evaluation function | Hand-tuned features + position tables | Hand-tuned | Hand-tuned features (6 factor types) | Deep hand-tuning | Precision hand-tuning |
| Parallel support | No (single-core) | No (single-core) | Experimental (YBW) | Yes (dual-core) | Yes (multi-core) |
| Protocol support | Proprietary | Proprietary | Proprietary | UCCI | UCCI |
| Openness | Closed-source commercial | Closed-source | Closed-source (papers public) | Closed-source commercial | Closed-source commercial |
| Best ICGA result | Gold (2005) | Bronze (2004) | Gold (2006, 2007) | Silver (2008) | Gold (2008) |
| CCMC result | — | — | Gold (2006, 2007) | Gold (2007) | — |
| Historical status | First Chinese ICGA gold | Early open-source pioneer | First mainland ICGA gold | Longest-lived commercial engine | Short-lived but strongest |
| Main advantages | Precise evaluation, tactical acuity | Clean architecture, clear thinking | Academic rigor, thorough documentation | Advanced algorithms, continuous evolution | Peak strength, briefly invincible |
| Main disadvantages | No parallelism, closed protocol | Limited strength, stagnant maintenance | Low parallel efficiency, weak commercialization | Sparse interface, business restrictions | Short dev cycle, discontinued |
| Impact on later generations | Broke Taiwan monopoly | Inspired academic path | Paper heritage, educational value | UCCI promotion, bridging eras | Example of extreme optimization |
| Peak strength (estimated ELO) | ~2350 | ~2100 | ~2450 | ~2600 | ~2650 |
| Equivalent human level | National Master | Provincial Master | National Master | Strong Master–Grandmaster | Grandmaster |
Note: 2005–2008 was a critical transition period for Chinese chess engines from “being able to play” to “surpassing humans.” Among these, XQMASTER pioneered the Chinese engine’s winning of the ICGA gold medal; Qitian Dasheng introduced academic research methods into engine development; the competition between Xiangqi Cyclone and Intella pushed engine playing strength to the level of human Grandmasters. Intella’s gold medal at the 2008 ICGA marked the zenith of this golden age — after this, Chinese chess engines officially entered the commercial era of fully surpassing human players.