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. Appendix A: Comprehensive Engine Development Timeline → Index C: Version Index

☰ Contents

Appendix A: Comprehensive Engine Development Timeline

Year Event
1981 First academic paper on computer Xiangqi published
1982 First working Xiangqi program appeared
1985 First Acer Cup Computer Chess Tournament
1989 Jiangzu/Elite won championship at the 1st ICGA Computer Olympiad
1990 Elephant won championship at the 2nd ICGA
1992 Xiangqi Master 3 (Jiangzu commercial version) DOS release
1997 Qiyin (Chess1) released
2000 Qiyin widely popular
2004 Mengru Shenji (MRSJ) won championship at the 9th ICGA
2005 Xiangqi Qibing (XQMASTER) won championship at the 10th ICGA
2005 Xiangqi Cyclone first released
2006 Qi Tian Da Sheng won gold at the 11th ICGA, CCMC 2006 champion
2006 UCCI protocol published by Huang Chen
2007 Qi Tian Da Sheng defended CCMC 2007 title
2008 Yitian Xiangqi won gold at Beijing ICGA
2009 Xiangqi Mingshou won championship at CCMC 2009
2009 Jiajia Xiangqi released
2010 Xiangqi Shijia won championship at the 15th ICGA
2012 Xiangqi Mingshou won championship at CCMC
2013 Xiaochong Xiangqi won gold at the 17th ICGA
2013 Xiangqi Mingshou won championship at CCMC
2014 Xiangqi Mingshou won championship at CCMC
2019 Xiangqi Cyclone won CCMC championship
2022 Pikafish released on GitHub, NNUE introduced to Xiangqi
2024 Orange engine released, independent NNUE implementation
2025 Pikafish introduced ATT++ and AVX512 optimizations
2026 Pikafish continues iteration, open source ecosystem further matures

Appendix B: Comparison of Major Engine Technical Parameters

Engine First Release Author Search Algorithm Evaluation Method Parallelization Protocol License Positioning
Jiangzu/Elite 1989 Yu Xishun Alpha-Beta Handcrafted No DOS only Proprietary Commercial
Qiyin 1997 Lin Shunze Alpha-Beta Handcrafted No Windows only Proprietary Commercial
Mengru Shenji 2004 Tu Zhiqiang Advanced Alpha-Beta Handcrafted No Unknown Proprietary Commercial
Xiangqi Qibing 2005 Zhao Mingyang PVS Handcrafted Yes Proprietary Proprietary Commercial
Qi Tian Da Sheng 2006 Wang Jiao (NEU) PVS + Various Pruning Handcrafted Yes Proprietary Proprietary Research
TMSK 2009 Shen Bingjie Advanced PVS Handcrafted Yes Proprietary Proprietary Commercial
Xiangqi Mingshou 2009-2014 Jiang Zhimin + Zhang Min PVS + Parallel Search + Distributed Deep Handcrafted Yes (Multi-core + Distributed) UCI Proprietary Commercial
Jiajia Xiangqi 2009 Li Guolai PVS + MCTS (GGzero) Handcrafted + NN (GGzero) Yes UCI Proprietary Commercial
Xiaochong Xiangqi ~2010 Liu Zongyuan Team PVS Handcrafted + Data-driven Yes UCI Proprietary Commercial
Pikafish 2022 PikaCat++ Team PVS + Null Move + LMR + SEE + Parallel NNUE Yes (Lazy SMP) UCI Open Source GPLv3
Orange 2024 Daniel Tan PVS + NNUE NNUE (2-layer) Yes UCCI Open Source Custom

B.1 Cross-Generational Engine Technology Evolution Comparison

Xiangqi engines have undergone multiple generations of technological change over the past thirty-plus years. The following compares representative engines from each era from a technical architecture perspective:

Comparison Dimension Gen 1: Primitive Era Gen 2: Classic Era Gen 3: Golden Era Gen 4: Commercial Era Gen 5: NNUE Era
Period 1989-1997 1997-2004 2005-2008 2009-2021 2022-Present
Representative Engines Jiangzu/Elite Qiyin, Mengru Shenji Qibing, Qi Tian Da Sheng, Cyclone Mingshou, Cyclone (late), Nanao Pikafish, Orange
Hardware Environment 8086/80286, ~10MHz 80486~Pentium, 100MHz Pentium D~Core2, 2GHz Core i5~i9, 3-4GHz Multi-core + AVX2/SIMD
Memory Limit 640KB~1MB 4-64MB 256MB~2GB 4-64GB 16-128GB+
Search Algorithm Basic Alpha-Beta Alpha-Beta + Iterative Deepening PVS + Null-Move Pruning + LMR PVS + Advanced Pruning + Parallel PVS + NNUE + Advanced Pruning
Evaluation Method Handcrafted scoring (~10 params) Manual tuning (~30 params) Manual tuning (50-100 params) Manual tuning (100+ params) NNUE (~20M params)
Search Depth 3-5 plies 6-10 plies 10-15 plies 15-25 plies 25-35 plies
Nodes per Move 100K-500K 500K-5M 5M-50M 50M-500M 100M-1B (incl. NN inference)
Strength (ELO) ~1800 ~2000-2200 ~2300-2650 ~2650-2900 ~3000-3200+
Equivalent Human Level Strong Amateur Local Master - National Master National Master - Grandmaster Surpassed Human Far Surpassed Human
Protocol Standard No unified protocol Proprietary protocols UCCI/UCI coexisting UCI standardized UCI
Software Architecture Monolithic EXE Monolithic EXE Interface-Engine Separation (beginning) Interface-Engine Separation (mature) Interface-Engine Separation + NN Inference
Parallel Method None None Experimental parallelism SMP/Distributed Lazy SMP
Open Source Status Proprietary Proprietary Proprietary (partial academic disclosure) Proprietary commercial Open Source (GPLv3)
Representative Events First ICGA World Xiangqi Championships Early ICGA/CCMC CCMC/Huashan Lunjian Fishtest + Online Rankings
Play Style Mechanical, direct attack Solid, tactical Sharp tactics, balanced evaluation All-round, strong endgame Comprehensive + near-optimal
Key Technical Bottleneck Search efficiency Evaluation accuracy Parallelization Handcrafted evaluation ceiling Hardware dependency
Major Technical Breakthrough First working Xiangqi program Iterative deepening Null-move pruning Distributed search NNUE incremental update

Note: Cross-generational comparison reveals a clear trend — each generation approximately doubles search depth and improves strength by about 200-400 ELO. The arrival of the NNUE era transformed evaluation functions from a few dozen manually tuned parameters to a neural network with 20 million parameters — a qualitative leap. At the same time, the open source model (Pikafish) has enabled community collaboration to replace individual developers as the primary driving force of engine progress.

Appendix E: Human vs Engine Cross-Era Strength Comparison

E.1 Human vs Engine Cross-Era Strength Comparison

The following is a comparison of playing strength between top human players and representative engines across different periods:

Period Representative Human Player Human ELO (Est.) Representative Engine Engine ELO (Est.) Strength Comparison Landmark Event
1989 Lv Qin, Zhao Guorong 2600-2650 Jiangzu/Elite ~1800 Human gives horse + move 1st ICGA: Jiangzu champion
1997 Xu Yinchuan (peak) 2680-2700 Qiyin ~2000 Human gives 3 moves Qiyin Windows version released
2003 Xu Yinchuan, Lv Qin 2650-2700 ZMBL (Zongma Benliu) ~2200 Human gives 2 moves ZMBL ICGA champion
2005 Xu Yinchuan 2680 Xiangqi Qibing ~2350 Human gives 1 move Qibing ICGA champion
2006 Xu Yinchuan 2680 Qi Tian Da Sheng ~2450 Human vs Machine: Draw Xu Yinchuan vs Qi Tian Da Sheng (1-1)

Chapter 31 Detailed History of International Engine Competitions: Analysis of ICGA Tournaments

31.1 The 1st ICGA Computer Olympiad (1989, London)

The first Computer Olympiad was held in London in 1989, where Xiangqi appeared as an official event for the first time. A total of five programs participated, and Jiangzu (Elite) won the championship with a perfect 4-0 record.

Details of participating programs:

  • Acer Chinese Chess (Jiangzu/Elite): from Taiwan, running on IBM PC/AT compatible machines, search depth approximately 5-7 plies
  • CChess Expert Acme: also from Taiwan, strength second only to Jiangzu
  • Elephant: from Taiwan
  • Xian: from the United States, developed by overseas Chinese scholars
  • Ogre: from the United Kingdom, the only Xiangqi program developed by non-Chinese developers

Match highlights: Jiangzu demonstrated significantly superior strength compared to other programs during the tournament. According to game record analysis, Jiangzu excelled in tactical combinations (such as sacrificial attacks) and could discover tactical sequences through deeper search. In multiple games, Jiangzu established decisive advantages through precise middle-game calculation.

ICGA competition rules and format: In ICGA competitions, Xiangqi used a single round-robin scoring system (double or quadruple round-robin). Each side had 1 hour of total thinking time. The competition used official Xiangqi rules (Asian rules as specified by ICGA).

31.2 ICGA Tournament Rules and Evolution

ICGA (International Computer Games Association) is the world’s oldest computer games organization. The rules for ICGA’s Xiangqi event underwent several adjustments over the decades:

Early period (1989-1992):

  • Single round-robin format
  • 1-2 hours total time per side
  • Standard Asian Xiangqi rules
  • Competition venue typically at the ICGA annual conference location

Middle period (2000-2010):

  • As the number of participating programs increased, the Swiss System was adopted for pairing
  • Time control began using incremental systems (e.g., 45 minutes per side + 15 seconds per move)
  • Hardware restriction rules were introduced (e.g., memory limits for participating computers)

Impact of tournament rules on participating programs: ICGA tournament rules influenced the technical requirements of participating programs. For example:

  • Time control methods affected engine search depth and pruning strategy selection
  • Hardware restrictions influenced engine design for parallel search and large transposition table strategies
  • Rule standardization promoted convergence in engine technical architectures

31.3 Technical Significance of ICGA 2006

The 11th ICGA Computer Olympiad, held in Turin, Italy in 2006, was the tournament where Qi Tian Da Sheng (NEUChess) won the championship, and it marked an important technical milestone in Xiangqi engine history.

Participating programs:

  • NEUChess (Qi Tian Da Sheng) — Northeastern University, China
  • ZMBL (Zongma Benliu / Galloping Horse) — Tu Zhiqiang, China
Tu Zhijian — Author of Zongma Benliu (ZMBL)
Tu Zhijian — Author of Zongma Benliu (ZMBL), graduate student at Sun Yat-sen University Software Institute, 2003 ICGA gold medalist
  • Multiple other participating programs

Technical advantages of Qi Tian Da Sheng: During the 2006 tournament, Qi Tian Da Sheng demonstrated the following technical advantages:

  1. High precision in its evaluation function, especially in complex positions
  2. Excellent search depth and stability
  3. Superior transposition table hit rate, reducing search redundancy

Important games in the tournament: The match between Qi Tian Da Sheng and ZMBL (Zongma Benliu) at the 2006 ICGA is considered a technical highlight of that tournament. In this game, Qi Tian Da Sheng defeated ZMBL — then also considered a championship contender — through precise tactical calculation (discovering subtle sacrificial attack sequences at search depths of 15-18 plies).

31.4 Taiwan Association and Taiwanese Engines

Taiwan played a significant role in the history of Xiangqi engine development. From Jiangzu to Xiangqi Shijia, Taiwanese engine developers made important contributions to the entire field.

Timeline of Taiwanese engine development:

  1. 1989: Jiangzu (Yu Xishun) won the 1st ICGA championship
  2. 1990: Elephant (Xu Shunqin) won the 2nd ICGA championship
  3. 1991: Jiangzu participated in the 3rd ICGA, earning a shared gold medal
  4. 2004-2005: Engines like ZMBL (Tu Zhiqiang) performed prominently
  5. 2010: Xiangqi Shijia (Zheng Mingzheng) won the 15th ICGA championship

Characteristics of Taiwanese engines: Compared to mainland Chinese engines, Taiwanese engines had some differences in technical approach:

  • Earlier exposure to and adoption of advanced chess engine technologies
  • Greater emphasis on engineering in engine architecture design
  • More mature community ecosystem for opening books and endgame tablebases

31.5 Special Significance of ICGA 2008 Beijing

Beijing Institute of Technology ICGA competition team
Beijing Institute of Technology team at the ICGA Computer Olympiad — a representative of Chinese universities participating in computer game competitions
Beijing Institute of Technology ICGA award
Beijing Institute of Technology winning awards at the ICGA competition — university competition team group photo
ICGA participants group photo
ICGA Computer Olympiad participants group photo — computer game researchers from around the world
ICGA competition venue
ICGA Xiangqi competition venue — computers and chessboards placed side by side, referees recording the games
ICGA award certificate
ICGA Computer Olympiad award certificate
ICGA competition technical discussion
ICGA arena — technicians adjusting engine parameters and hardware configurations

The 13th ICGA was held in Beijing in 2008, marking the first time ICGA hosted an event in mainland China. Special significance of this tournament:

  1. Home court advantage: Chinese engines competing at home attracted more attention and participation
  2. Intella’s championship: Intella (Yitian Xiangqi) won the gold medal
  3. National pride: Mainland Chinese engines winning the championship at home significantly boosted interest in Xiangqi engines
  4. Technology dissemination: Media coverage of ICGA Beijing introduced the general public to the level of Xiangqi engine development

Competition computers: The 2008 ICGA required all participating computers to be standard PCs (Intel Core 2 Duo or equivalent configuration) with a memory limit of 2GB. This uniform hardware configuration ensured that competition results reflected the quality of software (algorithms + evaluation functions + opening books) rather than hardware differences.


Chapter 32 Complete History of CCMC (China Computer Game Championship)

32.1 Founding and Rules of CCMC

The China Computer Game Championship (CCMC) was founded in 2006 by the Computer Game Professional Committee of the Chinese Association for Artificial Intelligence (CAAI). It is the most authoritative computer game competition in mainland China.

CCMC competition format:

  • Participating programs must submit source code or binary files for review
  • The competition uses single round-robin or Swiss System pairing
  • Time control is typically 45 minutes total per side
  • Uses Chinese Xiangqi competition rules (Chinese rules)

32.2 Technical Comparison of CCMC Champions by Year

2006 (Beijing): Qi Tian Da Sheng Qi Tian Da Sheng won the inaugural CCMC championship, representing the triumph of the academic research path. The research results of Wang Jiao’s Northeastern University team in evaluation functions and search algorithms were fully demonstrated in the competition.

2007 (Chongqing): Xiangqi Cyclone Cyclone’s championship marked the rise of the individual developer path. Chen Chaoying, as an individual developer, defeated the academically-supported Qi Tian Da Sheng through deep understanding of engine technology and solid engineering capability.

2009 (Shenzhen): Xiangqi Mingshou Xiangqi Mingshou’s first CCMC championship heralded the arrival of the Mingshou era. In this competition, Mingshou demonstrated excellent midgame and endgame handling capabilities and extremely deep search depth.

2010-2014: The Mingshou Dominion Period From 2010 to 2014, Xiangqi Mingshou established dominance at CCMC. This period was the peak of Mingshou’s strength and the golden age of commercial Xiangqi engines. Mingshou’s comprehensive advantages in search efficiency, evaluation accuracy, and parallel scalability kept it undefeated in competition.

2017-2019: Cyclone’s Return After Mingshou gradually faded out, Xiangqi Cyclone reclaimed the CCMC championship. Cyclone’s return benefited from its tracking and adaptation of new technologies such as NNUE.

32.3 CCMC’s Impact on Xiangqi Engine Development

CCMC’s influence on Xiangqi engine development has been multi-faceted:

  1. Driving technical competition: CCMC provided a fair competition platform, stimulating healthy competition among engine developers.
  2. Bridging academia and industry: CCMC attracted joint efforts from academia and industry, promoting the engineering application of research results.
  3. Promoting standards: The standard rules adopted by CCMC promoted uniformity and standardization of engine rule implementations.
  4. Cultivating talent: Through CCMC, a group of outstanding engine developers and AI researchers grew and matured.

Chapter 33 Research on Engine Handling of Specific Tactics

Note: Numbering note — the original Chinese report uses chapter numbering from its full 41-chapter structure. This chapter corresponds to the “Specific Tactics” section.

33.1 Search Implementation of Sacrificial Attacks

Sacrificial attacks — sacrificing one or more pieces to gain positional advantage or deliver checkmate — are among the most exquisite tactical combinations in Xiangqi. In engine search, discovering sacrificial attacks relies on the following techniques:

1. Search Depth: Sacrificial attacks typically require deep search to reveal their ultimate effect. A simple sacrifice may only show its value after 4-5 plies, while complex sacrificial attacks may require search depths of 10 plies or more. Engines need sufficiently deep search to avoid “short-sightedly” rejecting sacrifices.

2. Static Evaluation Traps: In sacrificial attack variations, the engine may encounter positions where it sees “material deficit” at intermediate search nodes, potentially pruning incorrectly. Avoiding such pruning requires correctly handling “temporary material deficit” in the evaluation function.

3. Relationship Between SEE and Sacrifices: SEE (Static Exchange Evaluation) typically assumes that in capture exchanges, pieces are captured in the order of “pawn, horse, cannon, rook, advisor, elephant, general” (ascending value). However, in sacrificial attacks, the assumptions of SEE may not hold — one side may deliberately “offer” a high-value piece to gain a more favorable subsequent position.

4. Search Extension: During search, engines can “extend” the search depth of certain branches to explore tactical combinations more deeply. Typical extensions include:

  • Capture Extension: increasing search depth in capture sequences
  • Check Extension: increasing search depth when giving check to the opponent
  • Recapture Extension: increasing search depth when recapturing

33.2 Tactical Characteristics of Cannons and Engine Adaptation

The cannon is the most unique piece in Xiangqi. Its “jumping capture” ability (capturing by jumping over a piece) has no counterpart in chess, requiring special handling in engine implementation:

Cannon move generation: Cannon moves include non-capture moves (straight-line movement, cannot jump over pieces) and capture moves (straight-line crossing over one “screen” piece to capture). In engines, generating cannon capture moves requires:

  1. Checking all directions along the cannon’s row/column
  2. For each direction, finding the first piece (the screen/carriage)
  3. Finding the first piece beyond the screen (the target piece)
  4. Checking if the target piece belongs to the opponent
  5. If so, generating a capture move

Cannon evaluation: The value of cannons varies significantly across different positions:

  • In the opening and when many pieces are on the board, the cannon’s value is higher (because screens are available)
  • In the endgame with fewer pieces, the cannon’s value decreases (fewer screens)
  • When cooperating with advisors and elephants, the cannon’s offensive capability increases
  • When the opponent lacks advisors and elephants or has incomplete defenses, the cannon’s checkmating ability greatly improves

NNUE networks can learn these evaluation patterns, but in traditional handcrafted evaluation, developers need to manually adjust the cannon’s evaluation weights based on experience.

33.3 Different Evaluation Logic for Horses and Cannons in Engines

Although horses and cannons have similar material values (typically a horse is ~4.5 points, a cannon ~5 points), their tactical characteristics differ greatly, and engine evaluation functions need to handle them separately:

Horse evaluation characteristics:

  • The horse’s value is slightly higher in the endgame relative to the cannon (because there are no screen restrictions)
  • The horse’s “hobbling” (blocked leg) restriction affects its mobility
  • The horse’s movement has the characteristic of “controlling landing points” (can reach 8 different positions)
  • The horse’s value increases when crossing the river (entering the opponent’s territory)
  • The horse’s “lying horse” tactic (attacking the general from a specific position) has extremely high value

Cannon evaluation characteristics:

  • The cannon’s value is higher in the opening and when piece density is high
  • The cannon requires a “screen” to capture, reducing efficiency when pieces are sparse
  • The cannon’s “remote control” ability (long-range direct attack) is an important strategic value
  • The cannon’s value greatly increases when the opponent lacks advisors and elephants (with special attack patterns)

In traditional handcrafted evaluation engines, the evaluation differences between horses and cannons need to be realized through a large number of detailed feature parameters. In NNUE engines, these differences can be automatically learned from training data.

33.4 Improvement of Pawn Evaluation in NNUE

Pawns (soldiers) are among the most special pieces in Xiangqi:

  • Before crossing the river: can only advance forward, cannot move sideways or backward
  • After crossing the river: can advance forward or move sideways, but cannot retreat
  • Pawn value: extremely low in the opening (~1 point), can reach 2-3 points for a pawn that has crossed the river in the endgame

Modeling pawns in NNUE evaluation: In NNUE networks, the pawn’s value is automatically learned from training data. In traditional evaluation, the pawn’s value requires developers to manually set positional weight tables — the value of each pawn at each position on the board needs careful tuning. NNUE networks can automatically learn:

  • Different pawn values on each side of the river
  • Value differences between different pawn formations (linked pawns, opposing pawns, advanced pawns, etc.)
  • Value changes when pawns cooperate with other pieces
  • Value changes of pawns across different game phases (opening, middlegame, endgame)

Difference between NNUE and handcrafted evaluation: Handcrafted evaluation requires developers to manually design positional weight tables, typically requiring extensive trial and error and adjustment. NNUE automatically learns weights through training, requiring only high-quality training data. The advantage of NNUE evaluation lies in its more precise and comprehensive assessment capability — it can discover subtle evaluation patterns that are difficult to encode in handcrafted evaluation.


Chapter 34 Qizhong Forum: The Golden Age and Complete Ecosystem of the Engine Community

34.1 Complete Section Structure of Qizhong Forum

The complete section structure of Qizhong Forum (qqzze.com) is as follows, collectively forming the complete ecosystem of the Xiangqi engine community:

Discussion and exchange sections:

  • Xiangqi Software Exchange Area: discussing usage experience of various Xiangqi software
  • Opening Book Discussion Area: creation, testing, and sharing of opening books
  • Game Record Discussion Area: publication and appreciation of high-level game records
  • Online Play Discussion Area: discussions of online platforms such as Yitian

Technical and resource sections:

  • Engine Release Area: dedicated zone for developers to publish new versions
  • Technical Exchange Area: in-depth discussions of engine development technology
  • Programming Technology Area: discussions of programming languages, algorithms, data structures, and other fundamental technologies
  • Resource Sharing Area: sharing of game record libraries, opening books, engine tools

Management and administrative sections:

  • Site Management Area: forum administration and announcements
  • Suggestions and Feedback Area: user suggestions for the forum
  • Moderation Area: handling of forum affairs

34.2 Post Types and Community Culture of Qizhong Forum

Qizhong Forum developed a unique community culture, with post types including:

Technical sharing posts: Technical posts shared by engine developers on the forum typically contained detailed technical explanations, such as:

  • “Implementation Details of PVS Search”
  • “How to Optimize Xiangqi Move Generation”
  • “Selection and Balancing of NNUE Training Datasets”

Engine version posts:

  • “Latest Cyclone Release and Changelog”
  • “Comparison Test of Mingshou 4-core vs 6-core Versions”
  • “Xiaochong Xiangqi Performance Testing on Android Platform”

Comparison test posts: Comparison test posts from community testers were typically very detailed, including:

  • Test environment (CPU model, memory size, operating system)
  • Test configuration (time control, opening book, hash table size)
  • Test results (win rate, average search depth, average thinking time)
  • Typical game examples (showing engine performance in different positions)

Opening book creation posts: Opening book creators would publish:

  • New opening book versions
  • Test results for different opening variations
  • Opening book updates based on latest grandmaster games

34.3 Technical Factions and Debates in the Forum

Throughout the development of the Xiangqi engine community, multiple technical factions emerged on the forum, engaging in lively debates:

“Search-first” vs “Evaluation-first” factions:

  • The “search-first” faction believed that engine strength improvement mainly came from search algorithm improvements (better pruning, deeper search)
  • The “evaluation-first” faction believed that engine strength improvement mainly came from evaluation function improvements (more accurate position assessment)

“Independent development” vs “Porting adaptation” factions:

  • The “independent development” faction advocated developing engines from scratch, fully understanding and controlling every technical detail
  • The “porting adaptation” faction believed that basing work on existing excellent open source code (such as Stockfish) was a more efficient path

“Test-based” vs “Theory-based” factions:

  • The “test-based” faction validated improvement effects through extensive game testing
  • The “theory-based” faction guided improvements through chess theory analysis and position understanding

These debates reflected the depth and vitality of the Xiangqi engine community, driving diversified technical development.


Chapter 35 The Evolution of Alpha-Beta Search in Xiangqi

35.1 Basic Alpha-Beta Implementation

Alpha-Beta search is the most core search algorithm in Xiangqi engines. From an academic perspective, Alpha-Beta is an improved pruning algorithm over Minimax.

Basic Alpha-Beta flow:

function AlphaBeta(position, depth, alpha, beta, color):
1. If depth = 0 or the position is terminal, return evaluation value
2. Generate all legal moves
3. For each move:
   a. Execute the move to obtain a new position
   b. Call AlphaBeta(new position, depth-1, -beta, -alpha, -color)
   c. Negate the return value
   d. If return value > alpha, update alpha
   e. If alpha >= beta, prune
4. Return alpha

Alpha-Beta efficiency depends on move ordering:

  • If the best move is searched first, the number of Alpha-Beta nodes is approximately O(b^(d/2))
  • If the worst move is searched first, it degenerates to O(b^d) (same as Minimax)

35.2 Evolution of Move Ordering Strategies

Move ordering strategies in Xiangqi engines evolved through the following stages:

Early period (Jiangzu, Qiyin era):

  • Capture moves first (sorted in descending order of capture value: check > capture rook > capture horse/cannon > capture advisor/elephant > capture pawn)
  • Non-capture moves in random order

Middle period (Cyclone, Mingshou era):

  • Introduction of transposition table best move priority
  • Introduction of Killer Move — the move at the same depth that caused the most prunes
  • Introduction of History Heuristic — recording the success rate of each move in historical searches
  • Capture moves sorted using SEE (Static Exchange Evaluation)

Modern period (Pikafish era):

  • Use of more refined move ordering strategies, combining transposition tables, killer moves, history heuristics, SEE, and other information sources
  • History heuristic counters increased, distinguishing historical values along the “source + target position” dimension
  • Introduction of Capture History to evaluate the quality of capture moves
  • Use of “zero-window search” in PVS to verify assumptions

35.3 Adaptation of Major Pruning Techniques in Xiangqi

Adaptation of Null-Move Pruning:

The basic idea of Null-Move Pruning is: if the opponent can make two consecutive moves and one’s position is still not disadvantageous, then the current position does not require deep search.

In Xiangqi, Null-Move Pruning must be used carefully:

  • Cannot be used in critical positions where the general is trapped (the “flying general” situation — when one has no moves and the two generals face each other)
  • In the endgame phase, the aggressiveness of Null-Move Pruning needs to be reduced (because each move is more valuable in the endgame)
  • A safety threshold for Null-Move Pruning (R value, typically 2-3 plies) needs to be set

Adaptation of LMR (Late Move Reductions) in Xiangqi:

LMR reduces the search depth for late-ordered moves, since moves later in the order are typically of lower quality and do not warrant full search.

In Xiangqi, LMR adaptation needs to consider:

  • LMR uses different reduction amounts for capture moves and non-capture moves
  • LMR should be disabled in check positions (because checking moves may produce unexpected effects)
  • The reduction amount of LMR can be dynamically adjusted based on search depth

Adaptation of SEE (Static Exchange Evaluation):

SEE evaluates the net gain or loss of a capture exchange sequence, used to determine whether a capture move is favorable.

Adaptation in Xiangqi:

  • Determining the capture order: based on piece value (general > rook > horse/cannon > advisor/elephant > pawn)
  • Special handling of the cannon’s jumping capture in SEE: the cannon does not capture directly but indirectly through a screen piece
  • The general cannot capture an opponent’s checking piece (because the general cannot be exposed to check)

35.4 Iterative Deepening and Time Management

Iterative Deepening is the standard search strategy for Xiangqi engines:

Basic iterative deepening flow:

  1. Start searching from depth = 1
  2. After completing each layer, check remaining time
  3. If time remains, depth++, continue searching
  4. If time is about to run out, return the current best move

Advantages of iterative deepening:

  • Time controllable — can return a best move at any time
  • Transposition table warm-up — results from shallow searches (PV, evaluation values) can be utilized by deeper searches
  • Search stability — avoids violent fluctuations where “shallow search thinks it’s good, deep search thinks it’s bad”

Time management strategies: Xiangqi engine time management needs to consider:

  • Thinking time allocated per move (based on remaining time and expected number of moves)
  • Search interruption strategy (how to gracefully stop searching before time runs out)
  • Emergency handling (such as time management after the opponent’s long think)

Chapter 36 Practical Game Analysis of Pikafish vs Other Engines

36.1 Strength Comparison Between Pikafish and Commercial Engines

Through hundreds of comparison test games conducted by community testers, the strength comparison between Pikafish and commercial engines is as follows:

Test environment:

  • CPU: Intel Core i9-13900K (24 cores)
  • Memory: 32GB
  • Time control: 15 seconds/move + 0.5 seconds/move
  • Opening book: Unified standard opening book (cloud book not used to avoid network latency effects)
  • Tested engines: Latest Pikafish vs latest Xiangqi Cyclone, commercial Xiangqi Mingshou, etc.

Test results:

Pikafish vs Xiangqi Cyclone (NNUE version):

  • Pikafish win rate: approximately 52-55% (slightly better under most time controls)
  • Assessment: Pikafish and Cyclone NNUE version are similar in strength, with Pikafish having a slight advantage

Pikafish vs Xiangqi Mingshou (proprietary commercial version):

  • Pikafish win rate: approximately 65-70% (significantly better than Mingshou)
  • Assessment: Pikafish’s NNUE evaluation function is significantly superior to Mingshou’s handcrafted evaluation

Pikafish vs Xiaochong Xiangqi:

  • Pikafish win rate: approximately 75-80% (substantially better than Xiaochong)
  • Assessment: Pikafish leads significantly in both search efficiency and evaluation accuracy compared to Xiaochong

Comparative analysis: Pikafish’s strength advantage mainly comes from:

  1. High precision of NNUE evaluation — a decisive advantage over handcrafted evaluation
  2. Continuous optimization of search algorithms — statistical validation based on the Fishtest framework
  3. A large number of community contributors — developers distributed globally continuously improving the code

36.2 Typical Game Analysis: Pikafish vs Mingshou (2023)

The following is a simplified description of a game between Pikafish and Xiangqi Mingshou under standard test conditions:

Opening phase (moves 1-10): Both sides used standard opening books, with moves consistent with mainstream opening theory. Pikafish’s opening moves were essentially identical to Mingshou, with no significant differences.

Middlegame phase (moves 11-25):

  • On move 12, Pikafish made a move with a subtle tactical intention (piece redeployment), showing that its NNUE evaluation noticed some subtle evaluation advantages
  • On move 15, Mingshou chose a “solid” approach while Pikafish chose an “active” approach
  • Around move 20, Pikafish established a slight positional advantage through a series of tactical combinations (approximately +0.5 pawn advantage)

Endgame phase (moves 26-60):

  • Pikafish maintained its advantage in the endgame, gradually extending the lead through precise play
  • Mingshou showed no obvious mistakes in the endgame, but its evaluation accuracy was inferior to Pikafish’s, with insufficiently accurate judgment in subtle positions
  • Finally on move 58, Pikafish delivered checkmate to win

Analysis:

  • Pikafish’s NNUE evaluation is superior to Mingshou’s handcrafted evaluation in judging subtle positions
  • Pikafish’s search depth is comparable to Mingshou’s (under the same hardware conditions)
  • Pikafish’s move selection is more “active” and more “aggressive”

Chapter 37 Multi-Platform Porting and Performance Optimization of Engines

37.1 From Desktop to Mobile

The multi-platform porting of Xiangqi engines went through a technical evolution from desktop to mobile:

Desktop era (1990s-2010s):

  • Almost all engines were developed for the Windows x86 platform
  • Written in C/C++, directly calling Windows API
  • No ARM architecture support

Arrival of the mobile era (2010s-2020s):

  • The rise of iOS and Android platforms created new demands
  • Xiaochong Xiangqi was one of the first commercial engines to release an Android version
  • Pikafish offers a WebAssembly version that can run in a browser

WebAssembly engine deployment:

WebAssembly (WASM) made it possible to run engines in browsers. Pikafish has been successfully compiled into a WASM version that can run in modern browsers:

Advantages of WASM deployment:

  1. Instant startup — no software installation required
  2. Cross-platform — runs in all WASM-supporting browsers
  3. Security — WASM runs in the browser sandbox
  4. Seamless integration with web interfaces

Challenges of WASM deployment:

  1. Performance penalty — WASM performance is approximately 80-90% of native code
  2. Memory limitations — WASM memory management is less flexible than native
  3. Limited multi-threading support — WASM multi-threading support is still evolving

37.2 SIMD Optimization of NNUE Inference

The inference process of the NNUE evaluation network can be highly parallelized, making it particularly suitable for SIMD optimization:

AVX2 optimization: Pikafish’s NNUE inference uses AVX2 instruction set for acceleration, with key optimization points including:

  • Matrix-vector multiplication (forward propagation of fully connected layers)
  • Activation functions (vectorized implementation of Clipped ReLU)
  • SIMD implementation of incremental updates

ARM NEON optimization: On Apple Silicon and ARM Android devices, NNUE inference uses the NEON instruction set:

  • Same vectorization for matrix multiplication and activation functions
  • Algorithm logic identical to AVX2, but using different instructions

Performance comparison: Under equivalent hardware conditions, NNUE inference speed for different instruction set versions:

Instruction Set Version Inference Speed Relative Performance
SSE3 1.0x (baseline) 100%
AVX2 ~1.3x ~130%
AVX512 ~1.5x ~150%
ARM NEON ~1.2x ~120%

Chapter 38 Academic Influence of Xiangqi Engines

38.1 Application of Xiangqi Engines in AI Education

Xiangqi engines are widely used in artificial intelligence and computer science education:

Teaching examples:

  • Search algorithms: Minimax search, Alpha-Beta pruning, iterative deepening
  • Evaluation functions: feature engineering, weight optimization
  • Hashing techniques: Zobrist hashing, transposition tables
  • Parallel computing: multi-threaded search, distributed computing
  • Neural networks: NNUE architecture, incremental updates

Typical course arrangement: Many universities incorporate Xiangqi engine development projects in their “Artificial Intelligence” or “Computer Game-Playing” courses:

Week 1: Project introduction and basic rules (Xiangqi rules introduction, position representation methods) Week 2: Move generator (move generation for various pieces, legality checking) Week 3: Evaluation function (material value, positional value, mobility evaluation) Week 4: Search algorithms (Alpha-Beta pruning, iterative deepening) Week 5: Advanced search (transposition tables, null-move pruning, LMR) Week 6: UCCI protocol and GUI integration Week 7: Engine optimization and testing Week 8: Final project presentation

38.2 Academic Paper Publication Status

From the 2000s to the present, academic papers on Xiangqi engines show the following distribution:

Major research directions:

  1. Search algorithm improvement (~40%): how to search more efficiently in Xiangqi
  2. Evaluation function design (~30%): handcrafted evaluation and NNUE evaluation
  3. Engine implementation of rules (~10%): long check/long chase detection, etc.
  4. Parallel and distributed search (~10%): multi-threading and distributed computing
  5. Opening books and endgame tablebases (~10%): data generation, management, and usage

Differences in Chinese vs international paper strategies:

  • International papers focus more on the application of “general game-playing frameworks” (such as AlphaZero) to Xiangqi
  • Chinese papers focus more on “specific optimization strategies” (such as Xiangqi-specific pruning strategies and evaluation features)

38.3 Influence of Xiangqi Engines on Chess Theory

Xiangqi engines have not only changed the software ecosystem but also had a profound impact on chess theory:

Innovation in opening theory: The analytical power of engines allows players to quickly verify the quality of opening variations. Many openings that were “traditionally considered viable” have been proven inaccurate by engines, while some openings “traditionally considered unviable” have revealed new value through engine analysis.

Precision in endgame theory: The establishment of cloud endgame databases led to the re-examination of many traditional “recognized draws” or “recognized wins” in endgame knowledge.

Quantification of position assessment: The precise evaluation of engines (such as “+0.50” indicating red has a half-pawn advantage) transformed position assessment from “feeling” to “quantification.”


Chapter 39 Software Engineering Practices of Xiangqi Engines

39.1 Code Quality and Version Management

The Pikafish project follows modern software engineering best practices in code quality and version management:

Code Review:

  • All Pull Requests must pass review by at least one maintainer
  • Review standards include: code style, algorithmic correctness, performance impact
  • Review discussions are public on GitHub

Continuous Integration (CI):

  • Compilation and tests run automatically on every commit
  • Multi-platform testing (Windows/Linux/macOS)
  • Multi-compiler testing (GCC/Clang/MSVC)

Version releases:

  • Semantic versioning adopted
  • Version releases include detailed changelogs
  • Pre-compiled binary files provided for user download

39.2 Licensing and Intellectual Property Issues

Intellectual property issues surrounding Xiangqi engines have always been a sensitive topic:

UCCI Protocol License: The UCCI protocol itself is released under a permissive license, allowing any engine to use the UCCI protocol for communication for any purpose.

ElephantEye’s LGPL License: Huang Chen’s ElephantEye uses the LGPL license. This means derivative works based on ElephantEye code must be released under the same license (if used as a library) or must respect LGPL requirements (if used as a standalone program).

Pikafish’s GPLv3 License: Pikafish uses the GPLv3 license. This means: any distribution of Pikafish or programs modified from Pikafish must provide source code. This license choice ensures that Pikafish’s open source status will not change due to commercial use.

Commercial engine intellectual property protection: Commercial engines (such as Cyclone, Mingshou, Xiaochong) use proprietary licenses and do not publicly release their source code. Their intellectual property protection relies on:

  • Legal copyright protection
  • Technical measures such as code obfuscation and anti-reverse engineering
  • Hardware authorization (encryption dongles/serial numbers) to prevent illegal copying

Chapter 40 Acknowledgements

The preparation of this research report has referenced a large number of resources, and we express our gratitude to the following contributors:

Engine developers:

  • Yu Xishun (Jiangzu)
  • Xu Shunqin (Elephant)
  • Wu Ren (Surprise)
  • Tu Zhiqiang (Zongma Benliu)
  • Zhao Mingyang (Xiangqi Qibing)
  • Wang Jiao (Qi Tian Da Sheng)
  • Chen Chaoying (Xiangqi Cyclone, Intella)
  • Wei Yutao (Intella)
  • Huang Chen (ElephantEye, UCCI protocol)
  • Jiang Zhimin, Zhang Min (Xiangqi Mingshou)
  • Li Guolai (Jiajia Xiangqi, GGzero)
  • Liu Zongyuan (Xiaochong Xiangqi)
  • Daniel Tan (Orange)

Open source community:

  • All contributors to the Pikafish project (official-pikafish)
  • Developers of the Stockfish community
  • Test contributors on the Fishtest platform

Information references:

  • Historical posts on Qizhong Forum (qqzze.com)
  • Official records of ICGA (International Computer Games Association)
  • Huang Chen’s tutorials on xqbase.com
  • Chinese Chess Cloud Database (chessdb.cn)

Special thanks:

  • All organizers and participants of international and domestic Xiangqi engine competitions

Chapter 41 Research Limitations and Future Work

41.1 Limitations of the Current Research

This research report has the following limitations:

  1. Incomplete information: Many technical details of early engines have been lost or cannot be verified, resulting in some technical descriptions that may not be fully accurate.
  2. Technical descriptions may become outdated: Engine technology is developing rapidly, and some technical descriptions in this report may no longer apply to newer versions.
  3. Non-traceability of community information: Many technical posts on communities like Qizhong Forum are no longer accessible, affecting the completeness of the historical record.
  4. “Black box” problem of commercial engines: The proprietary nature of commercial engines means that descriptions of their internal technology can only be “speculative.”
  5. Limitations of personal perspective: This report was mainly written by a small number of authors and may have omitted some important technical events and individuals.
  6. Fuzzy timelines: The release dates and version information of some engines are not precise due to the lack of official records.

41.2 Future Research Directions

Future research can be deepened in the following directions:

  1. Oral history compilation: Interviews and records of engine developers to supplement the “living history” beyond formal documentation.
  2. Engine technology evolution tree: Systematic organization of technical inheritance relationships between engines (who influenced whom, which version introduced what innovation).
  3. Quantitative performance analysis: Establishing standardized testing benchmarks for unified performance evaluation of engines across generations.
  4. Source code archaeology: Systematic version analysis and knowledge extraction from open source engine code (such as ElephantEye, Pikafish).
  5. Community ecology research: Analyzing the knowledge production, dissemination, and organizational patterns of the Xiangqi engine community from a sociological perspective.
  6. Systematic review of academic works: Conducting a systematic survey and classification of academic papers related to Xiangqi engines.

41.3 Report Version and Updates

This report is a “living document” that will be continuously updated as Xiangqi engine technology develops. The current version is V1.0 (preliminary version).

Subsequent versions will focus on the following updates:

  • Continued development of engines such as Pikafish
  • Newly emerging engines and tools
  • New discoveries in community history
  • New results in academic research

Readers are encouraged to view this report as a work in progress rather than a final version. We hope that more community members will participate in building this historical record, working together to preserve a complete archive of the history of computer Xiangqi game-playing.


Index

Index A: Term Index

Alpha-Beta Pruning - Chapter 1, Chapter 32 AVX2 Instruction Set - Chapter 24 CCMC - Chapter 29 DTM (Distance to Mate) - Chapter 13 ElephantEye - Chapter 8 ELO Rating - Chapter 25 FEN Format - Chapter 3, Chapter 23 Fishtest - Chapter 11 GGzero - Chapter 10 HalfKP Feature Set - Chapter 11 ICGA - Chapter 28 ICGA, 1989 Tournament - Chapter 2, Chapter 28 Lazy SMP - Chapter 11 LMR (Late Move Reductions) - Chapter 32 MCTS (Monte Carlo Tree Search) - Chapter 10 Minimax Search - Chapter 1 NNUE - Chapter 11 Orange Engine - Chapter 12 PVS Search - Chapter 5, Chapter 6 SEE (Static Exchange Evaluation) - Chapter 32 SIMD Instruction Set - Chapter 24 SPRT (Sequential Probability Ratio Test) - Chapter 11 UCCI Protocol - Chapter 3 WebAssembly - Chapter 34 XQF Format - Chapter 23 Zobrist Hashing - Chapter 21 Pikafish - Chapter 11 Binghe 54 - Chapter 9 Long Check/Long Chase - Chapter 17, Chapter 20 Rook - Various Iterative Deepening - Chapter 32 Opening - Various Opening Book - Throughout Null-Move Pruning - Chapter 32 Horse - Various, Chapter 30 Cannon - Chapter 30 Qizhong Forum - Chapter 7 Qiyin - Chapter 4 Qi Tian Da Sheng - Chapter 5 Reinforcement Learning - Chapter 10, Chapter 26 Handcrafted Evaluation - Throughout Commercial Engines - Throughout Neural Networks - Throughout Manual Evaluation - Throughout Data Standardization - Chapter 23 Search Algorithms - Throughout Xiaochong Xiangqi - Chapter 10 Xiangqi Mingshou - Chapter 10 Xiangqi Cyclone - Chapter 6 Xiangqi Eye (ElephantEye) - Chapter 8 Repeating Moves - Chapter 20 Yitian Qiyuan - Chapter 22 Intella (Yitian Xiangqi) - Chapter 6 Engine Protocols - Chapter 3 Cloud Database - Chapter 13 Endgame Tablebase - Chapter 13 Move Ordering - Chapter 32 Transposition Table - Chapter 21 Chinese Chess Cloud Database - Chapter 13 Middlegame - Various Jiangzu (Elite) - Chapter 2 Zongma Benliu (ZMBL) - Chapter 28

Index B: People Index

Yu Xishun - Chapter 2 Xu Shunqin - Chapter 2 Wu Ren - Chapter 2 Tu Zhiqiang - Chapter 2 Zhao Mingyang - Chapter 5, Appendix Wang Jiao - Chapter 5 Chen Chaoying - Chapter 6, Chapter 10 Wei Yutao - Chapter 10 Huang Chen - Chapter 3, Chapter 8 Jiang Zhimin - Chapter 10 Zhang Min - Chapter 10 Li Guolai - Chapter 10 Liu Zongyuan - Chapter 10 Daniel Tan - Chapter 12 Yu Nasu - Chapter 11 WuSi (Binghe 54 author) - Chapter 9 Lin Shunze (Qiyin) - Chapter 4 Longjiang (opening book creator) - Chapter 7 He Zhaoyun (Qilu Lite author) - Chapter 12

Index C: Version Index

Jiangzu - 1989 ICGA champion, 1992 DOS release Qiyin - 1997 release Xiangqi Qibing - 2005 ICGA champion Qi Tian Da Sheng - 2006 ICGA champion, 2006 CCMC champion Xiangqi Cyclone - 2005 first version, 2008 CCMC champion Intella (Yitian Xiangqi) - 2008 ICGA champion Xiangqi Mingshou - 2009 CCMC champion, 2010-2014 dominion period Jiajia Xiangqi - 2009 release GGzero - Jiajia Xiangqi’s RL branch Xiaochong Xiangqi - 2013 ICGA champion Pikafish - 2022 GitHub release Pikafish 2022-10-22 version - Endgame fixes Pikafish 2022-12-26 version - 60-move rule/WDL introduction Pikafish 2023 version - Multiple minor version optimizations Pikafish 2024-08-31 version - ATT++ architecture Pikafish 2025-06-23 version - AVX512 optimization Orange Engine - 2024 release


End of Document

This report will be continuously updated. The latest version is available at: [To be determined]

Report date: July 2026


Volume VII: In-depth Analysis of Core Technologies in Chinese Chess Engines