Search code examples
computer-sciencechess

Difference between Chess Engine and Chess Architecture


I'm reading a few technical papers on Chess Engine Development. I've come across terms viz. Computer-Chess Engine and Computer-Chess Architecture frequently.

  • Chess Engine is basically a computer program that analyses chess positions and makes decisions on the best chess moves
  • Chess Architecture is set of components and relationship among them.

What are the other difference(s) between the two, if any? I'm confused between the two.


Solution

  • Elements of a typical computer chess architecture have a deterministic origin and compute exact results, such as

    1. Move information (move generators)
    2. Attack information (attack detectors)
    3. Board information (doing and undoing moves)
    4. Square information (static exchange evaluator)

    Thus, computer chess architecture is to be understood as a module implementing the basic chess board representation, the basic chess piece representation and the elementary algorithms for playing chess game.

    A computer chess engine is the composition of

    1. Computer-chess architecture
    2. Sequential and parallel search
    3. Static and interactive evaluation
    4. Transposition tables
    5. Move ordering algorithms
    6. Time management
    7. User interface.

    A computer chess architecture composes all algorithms and data structures of a computer chess engine.