61 lines
2.1 KiB
Markdown
61 lines
2.1 KiB
Markdown
# Omnichess
|
|
|
|
Omnichess is a UCI-compatible chess engine developed in Dart. This engine was created as a fun project and is not intended for competitive use. It implements the basic functionality required by the UCI protocol so that it can be interfaced with various chess GUIs.
|
|
|
|
## Features
|
|
|
|
- UCI Protocol Support: Communicate with chess GUIs using standard UCI commands.
|
|
- Written in Dart: Leverages Dart's simplicity and ease of use.
|
|
- Fun Implementation: Designed for learning and experimenting rather than serious chess analysis.
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- Dart SDK (version 3.6.1 or compatible)
|
|
|
|
Ensure Dart is properly installed by running:
|
|
|
|
```bash
|
|
dart --version
|
|
```
|
|
|
|
### Running the Engine
|
|
|
|
To run the engine, execute the following command in your terminal from the root of the project:
|
|
|
|
```bash
|
|
dart run
|
|
```
|
|
|
|
### Compiling the Engine
|
|
|
|
If you want better performance, you can compile the engine to get an executable that can be executed by your GUI.
|
|
|
|
To compile the engine, execute the following command from the root of the project:
|
|
|
|
```bash
|
|
dart compile exe -o <output-file>
|
|
```
|
|
|
|
Replace `<output-file>` with the name you want to give to the executable.
|
|
|
|
### UCI Setup
|
|
|
|
After starting the engine, configure your chess GUI to use the UCI protocol. You should set the engine command to either the above `dart run` command or the executable file if you choose to compile it. The engine will then communicate with the GUI for move generation and game state updates.
|
|
|
|
## Limitations
|
|
|
|
- This engine is a fun project and should not be considered a serious chess engine.
|
|
- The focus is on UCI compatibility, and while it works with standard command inputs and outputs, its analysis may not be on par with competitive-level engines.
|
|
|
|
## Contributing
|
|
|
|
Feel free to fork the repository and experiment. Contributions and suggestions are welcome, but please keep in mind that this is primarily a hobby project.
|
|
|
|
## License
|
|
|
|
This project is provided "as is" without any warranty. Use it for personal or educational purposes, but do not expect competitive level performance.
|
|
|
|
Happy coding and enjoy playing with Omnichess!
|