Die UCI Chess Network Bridge ermöglicht es zwei Spielern, über das Internet Schach zu spielen, ohne eine Online-Plattform zu nutzen. Das Programm fungiert als UCI-kompatible Schach-Engine und kann in jede UCI-unterstützende Chess-GUI (z.B. Shredder, ChessBase, Arena) integriert werden.
# Windows
build.bat
# Oder manuell
go build -o chess-network-bridge.exe .Erstellen Sie eine config.yaml Datei im gleichen Verzeichnis wie die Executable:
Master-Konfiguration (Spieler 1):
network:
mode: "master"
port: 8080
host: "localhost"
timeout: 30
reconnectInterval: 5
engine:
name: "Chess Network Bridge (Master)"
author: "Chess Bridge Developer"
debug: false
logging:
level: "info"
file: "chess-bridge-master.log"
maxSize: 10
maxBackups: 3Slave-Konfiguration (Spieler 2):
network:
mode: "slave"
port: 8080
host: "192.168.1.100" # IP-Adresse des Master-Rechners
timeout: 30
reconnectInterval: 5
engine:
name: "Chess Network Bridge (Slave)"
author: "Chess Bridge Developer"
debug: false
logging:
level: "info"
file: "chess-bridge-slave.log"
maxSize: 10
maxBackups: 3Master-Seite (Spieler 1):
- Port 8080 in der Windows-Firewall freigeben
- Bei Router/NAT: Port 8080 an den Master-PC weiterleiten
- Externe IP-Adresse an Slave-Spieler weitergeben
Slave-Seite (Spieler 2):
- Host-IP in config.yaml auf Master-IP setzen
- Keine Firewall-Änderungen nötig
Shredder:
- Menü → Extras → Engines verwalten
- "Hinzufügen" klicken
- Pfad zur
chess-network-bridge.exeauswählen - Engine-Name vergeben (z.B. "Remote Player")
ChessBase/Fritz:
- Engine → Engine installieren
- UCI-Engine auswählen
- Pfad zur Executable angeben
Arena:
- Engines → Install New Engine
- UCI-Protokoll auswählen
- Executable-Pfad angeben
- Master starten: Master-Spieler startet ein Spiel gegen die registrierte Engine
- Slave verbinden: Slave-Spieler startet sein Spiel gegen die Engine
- Automatische Verbindung: Programme verbinden sich automatisch
- Züge werden übertragen: Jeder Zug wird automatisch zum anderen Spieler übertragen
- Züge werden automatisch zwischen den Spielern synchronisiert
- Die GUI zeigt die Position und Züge des Remote-Spielers an
- Unterbrechungen werden automatisch behandelt (Reconnect)
- Spiel kann normal beendet werden
| Parameter | Beschreibung | Standard | Beispiel |
|---|---|---|---|
mode |
"master" oder "slave" | "master" | "slave" |
port |
TCP-Port für Verbindung | 8080 | 9999 |
host |
IP-Adresse des Masters (nur Slave) | "localhost" | "192.168.1.100" |
timeout |
Verbindungs-Timeout in Sekunden | 30 | 60 |
reconnectInterval |
Reconnect-Intervall für Slave | 5 | 10 |
| Parameter | Beschreibung | Standard |
|---|---|---|
name |
Engine-Name für UCI | "Chess Network Bridge" |
author |
Author-Name | "Chess Bridge Developer" |
debug |
Debug-Modus aktivieren | false |
| Parameter | Beschreibung | Standard | Optionen |
|---|---|---|---|
level |
Log-Level | "info" | debug, info, warn, error |
file |
Log-Datei | "chess-bridge.log" | beliebiger Pfad |
maxSize |
Max. Log-Dateigröße (MB) | 10 | 1-100 |
maxBackups |
Anzahl Backup-Logs | 3 | 0-10 |
Problem: Slave kann sich nicht mit Master verbinden
Lösungsansätze:
-
Firewall prüfen:
# Windows Firewall-Regel hinzufügen netsh advfirewall firewall add rule name="Chess Bridge" dir=in action=allow protocol=TCP localport=8080
-
Port-Weiterleitung prüfen:
- Router-Konfiguration öffnen
- Port 8080 an Master-IP weiterleiten
- UPnP aktivieren (falls verfügbar)
-
IP-Adresse prüfen:
# Externe IP herausfinden curl ifconfig.me # Lokale IP herausfinden ipconfig -
Verbindung testen:
# Vom Slave-Rechner telnet <master-ip> 8080
Debug-Modus aktivieren:
engine:
debug: true
logging:
level: "debug"Wichtige Log-Meldungen:
Netzwerkverbindung erfolgreich hergestellt→ Verbindung OKRetry in X Sekunden→ Slave versucht ReconnectRemote-Zug empfangen→ Zug-Übertragung funktioniertVerbindungsfehler→ Netzwerkproblem
Problem: Engine wird nicht in GUI erkannt
Lösungsansätze:
-
Manueller UCI-Test:
# Engine direkt starten und testen chess-network-bridge.exe uci # Sollte "uciok" zurückgeben -
Pfad-Probleme:
- Vollständigen Pfad zur .exe angeben
- Keine Leerzeichen im Pfad verwenden
- config.yaml im gleichen Verzeichnis
-
Berechtigungen prüfen:
- Engine als Administrator ausführen
- Schreibrechte für Log-Datei prüfen
Problem: Züge werden nicht korrekt übertragen
Lösungsansätze:
-
Logs prüfen:
- Beide Log-Dateien auf Fehler prüfen
- Zeitstempel der Nachrichten vergleichen
-
Netzwerk-Latenz:
network: timeout: 60 # Timeout erhöhen
-
Spiel neu starten:
- Beide GUIs beenden
- Programme neu starten
- Neues Spiel beginnen
- Ein Spiel pro Verbindung: Aktuell nur ein simultanes Spiel möglich
- Keine Spectator-Mode: Nur aktive Spieler können teilnehmen
- Kein Chat: Keine integrierte Chat-Funktion
- IPv4 only: Aktuell nur IPv4-Unterstützung
- Firewall-Regeln: Nur benötigte Ports öffnen
- Trusted Networks: Nur in vertrauenswürdigen Netzwerken verwenden
- Updates: Software regelmäßig aktualisieren
- Logs: Sensible Daten in Logs vermeiden
Bei Problemen folgende Dateien sammeln:
chess-bridge.log(oder konfigurierter Name)config.yaml- UCI-GUI Log-Dateien (falls verfügbar)
# System-Informationen
systeminfo | findstr /C:"OS Name" /C:"OS Version"
# Netzwerk-Konfiguration
ipconfig /all
# Firewall-Status
netsh advfirewall show currentprofileQ: Kann ich andere Ports verwenden? A: Ja, ändern Sie den Port in der config.yaml beider Spieler.
Q: Funktioniert es über das Internet? A: Ja, mit entsprechender Port-Weiterleitung im Router.
Q: Kann ich die Engine mit anderen Spielern teilen? A: Ja, jeder Spieler benötigt seine eigene Engine-Installation.
Q: Gibt es eine GUI für die Konfiguration? A: Nein, aktuell nur YAML-Konfiguration.
Q: Kann ich mehrere Spiele gleichzeitig spielen? A: Nein, aktuell nur ein Spiel pro Engine-Instanz.
- v1.0.0: Erste Version mit UCI-Support und Master/Slave-Modus
- Geplant v1.1.0: Multi-Game Support, IPv6, GUI-Konfigurationstool
MIT License - Siehe LICENSE-Datei für Details.
Für weitere Unterstützung oder Feature-Requests, erstellen Sie ein Issue im Repository.