Skip to content

UCI-compatible Chess Engine enabling direct network games between remote players without online platforms

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.txt
Notifications You must be signed in to change notification settings

arnisz/chess-network-bridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UCI Chess Network Bridge - Benutzerhandbuch

📋 Übersicht

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.

🚀 Installation & Setup

1. Programm kompilieren

# Windows
build.bat

# Oder manuell
go build -o chess-network-bridge.exe .

2. Konfiguration erstellen

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: 3

Slave-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: 3

3. Netzwerk-Setup

Master-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

🎮 Verwendung

1. Engine in Chess-GUI registrieren

Shredder:

  1. Menü → Extras → Engines verwalten
  2. "Hinzufügen" klicken
  3. Pfad zur chess-network-bridge.exe auswählen
  4. Engine-Name vergeben (z.B. "Remote Player")

ChessBase/Fritz:

  1. Engine → Engine installieren
  2. UCI-Engine auswählen
  3. Pfad zur Executable angeben

Arena:

  1. Engines → Install New Engine
  2. UCI-Protokoll auswählen
  3. Executable-Pfad angeben

2. Spiel starten

  1. Master starten: Master-Spieler startet ein Spiel gegen die registrierte Engine
  2. Slave verbinden: Slave-Spieler startet sein Spiel gegen die Engine
  3. Automatische Verbindung: Programme verbinden sich automatisch
  4. Züge werden übertragen: Jeder Zug wird automatisch zum anderen Spieler übertragen

3. Spielablauf

  • 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

🔧 Konfigurationsoptionen

Network-Sektion

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

Engine-Sektion

Parameter Beschreibung Standard
name Engine-Name für UCI "Chess Network Bridge"
author Author-Name "Chess Bridge Developer"
debug Debug-Modus aktivieren false

Logging-Sektion

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

🔍 Troubleshooting

Verbindungsprobleme

Problem: Slave kann sich nicht mit Master verbinden

Lösungsansätze:

  1. Firewall prüfen:

    # Windows Firewall-Regel hinzufügen
    netsh advfirewall firewall add rule name="Chess Bridge" dir=in action=allow protocol=TCP localport=8080
  2. Port-Weiterleitung prüfen:

    • Router-Konfiguration öffnen
    • Port 8080 an Master-IP weiterleiten
    • UPnP aktivieren (falls verfügbar)
  3. IP-Adresse prüfen:

    # Externe IP herausfinden
    curl ifconfig.me
    
    # Lokale IP herausfinden
    ipconfig
  4. Verbindung testen:

    # Vom Slave-Rechner
    telnet <master-ip> 8080

Log-Analyse

Debug-Modus aktivieren:

engine:
  debug: true

logging:
  level: "debug"

Wichtige Log-Meldungen:

  • Netzwerkverbindung erfolgreich hergestellt → Verbindung OK
  • Retry in X Sekunden → Slave versucht Reconnect
  • Remote-Zug empfangen → Zug-Übertragung funktioniert
  • Verbindungsfehler → Netzwerkproblem

UCI-Probleme

Problem: Engine wird nicht in GUI erkannt

Lösungsansätze:

  1. Manueller UCI-Test:

    # Engine direkt starten und testen
    chess-network-bridge.exe
    uci
    # Sollte "uciok" zurückgeben
  2. Pfad-Probleme:

    • Vollständigen Pfad zur .exe angeben
    • Keine Leerzeichen im Pfad verwenden
    • config.yaml im gleichen Verzeichnis
  3. Berechtigungen prüfen:

    • Engine als Administrator ausführen
    • Schreibrechte für Log-Datei prüfen

Synchronisationsprobleme

Problem: Züge werden nicht korrekt übertragen

Lösungsansätze:

  1. Logs prüfen:

    • Beide Log-Dateien auf Fehler prüfen
    • Zeitstempel der Nachrichten vergleichen
  2. Netzwerk-Latenz:

    network:
      timeout: 60  # Timeout erhöhen
  3. Spiel neu starten:

    • Beide GUIs beenden
    • Programme neu starten
    • Neues Spiel beginnen

📋 Bekannte Limitationen

  1. Ein Spiel pro Verbindung: Aktuell nur ein simultanes Spiel möglich
  2. Keine Spectator-Mode: Nur aktive Spieler können teilnehmen
  3. Kein Chat: Keine integrierte Chat-Funktion
  4. IPv4 only: Aktuell nur IPv4-Unterstützung

🔒 Sicherheitshinweise

  1. Firewall-Regeln: Nur benötigte Ports öffnen
  2. Trusted Networks: Nur in vertrauenswürdigen Netzwerken verwenden
  3. Updates: Software regelmäßig aktualisieren
  4. Logs: Sensible Daten in Logs vermeiden

📞 Support

Log-Dateien sammeln

Bei Problemen folgende Dateien sammeln:

  • chess-bridge.log (oder konfigurierter Name)
  • config.yaml
  • UCI-GUI Log-Dateien (falls verfügbar)

Debug-Informationen

# System-Informationen
systeminfo | findstr /C:"OS Name" /C:"OS Version"

# Netzwerk-Konfiguration
ipconfig /all

# Firewall-Status
netsh advfirewall show currentprofile

Häufige Fragen

Q: 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.

📝 Version History

  • v1.0.0: Erste Version mit UCI-Support und Master/Slave-Modus
  • Geplant v1.1.0: Multi-Game Support, IPv6, GUI-Konfigurationstool

📄 Lizenz

MIT License - Siehe LICENSE-Datei für Details.


Für weitere Unterstützung oder Feature-Requests, erstellen Sie ein Issue im Repository.

About

UCI-compatible Chess Engine enabling direct network games between remote players without online platforms

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors