Chess Broadcasting System

Go to List of broadcasted Tournaments

This is a try to broadcast chess engine tournaments, run with Cutechess live to the internet. I chose an architecture allowing to extend the System, so that it's possible to broadcast tournaments run by Arena, ChessGui, or other Engine GUIs as well.

Basic Architecture

The heart of the system is a small node.js based server application (cbcserver.js). This application receives the tournament info from broadcasters via websocket protocol and serves web pages presenting the games to the internet audience. These web pages are again updated via websocket protocol, so a realtime transmission is possible. The interface between broadcasters and the server application are JSON messages. To create a broadcaster all that's needed is a program sending the requested JSON messages via websocket to this server. The server is currently running on a Raspberry Pi 3, connected to the internet via DSL. So please don't expect that it can serve a high amount of concurrent requests.

Broadcasters

Currently there are 3 Broadcasters available:

CutechessBroadcaster

This is a .NET based application written in C#. It's basically a vey simple GUI frontend to start an engine tournament with cutechess. It listens to the standard output of the started cutechess process and sends messages (like game started, move played, engine info output,...) to the server. Currently the CutechessBroadcaster only works on windows.

Live PGN based Broadcaster

This is a node.js based app written in javascript, allowing to broadcast the games from a live PGN file. This is basically the same as the pgn4web based broadcasting apps are doing (like Ferdinand Mosca's aiBloodshed live broadcaster, or Norman Schmidt's computer chess tournament broadcast system ). However here the server is polling the live PGN file and not the browsers used by the individual clients. This broadcaster allows to watch also human tournaments within this UI.

Relay TLCS

This is a node.js based app written in javascript, which listens to tournaments broadcasted by Tom's Live Chess Server (TLCS). This offers 2 advantages:
  1. You don't need to install Tom's Live Chess Viewer
  2. You can follow such tournaments, even behind firewalls, where the UDP ports used for transmission are blocked
  3. You can see and replay games, which are already finished, and you can access the moves from the game played before you launched the transmission page
Due to "stability" issues of the UDP connection (which also affects the TCLV client) this broadcaster is far from perfect. Sometimes the TCLS server still responds to the PING messages, but sends no other infos. This can only be fixed by reconnecting to TCLS, which currently results in a loss of all information about the moves played so far

Further planned Broadcasters

Currently planned is to provide a broadcaster, which uses Arena debug files (like TLCS) as source to broadcast tournaments run by Arena or ChessGui. This would make the "Relay TCLS" Broadcaster somehow obsolete.

Credits

These applications are using the following list of other software/libraries:

Go to List of broadcasted Tournaments

Contact: chr.guenther.1967 [at] gmail.com