neděle 1. března 2020

Řešení online přenosu turnajů české šachové Extraligy


Šachy nehraji. Znám sice pravidla a dokáži „tahat“ figurkami, ale to je asi tak vše, na co se zmůžu. Neznám žádné postupy, taktiky a jako mé nejvyšší umění v této oblasti považuji tah „rošáda“. Můj kamarád a předseda šachového klubu, který se do Extraligy v ročníku 2019/2020 poprvé dostal, mě požádal o IT pomoc při zajištění přenosu turnajů české šachové Extraligy, které hostoval jeho klub.

Pokud šachový klub postoupí do Extraligy, tak pro něj vzniknou povinnosti, mezi které patří i zajištění online přenosu utkání, které daný klub pořádá. Přenosy lze sledovat na stránkách Šachového svazu České republiky (ŠSČR), který pak zajišťuje i jejich přenos na mezinárodní stránky chess24.com a chessbase.com. Pokud by klub přenos nezajistil, tak mu hrozí pokuta 5 000 Kč. Naopak, pokud je přenos úspěšný, dostane klub 1 500 Kč.

Hardware

Pro přenos potřebujete běžný kancelářský počítač/notebook s připojením na internet. Objem přenášených dat je velmi malý, v součtu jednotky MB v rozsahu několika hodin, takže stačí i mobil s pomalým připojením.

Jako hrací vybavení se používají výrobky renovované holandské společnosti DGT, které se používají i na šachových olympiádách a mistrovstvích světa. Cena jedné sady se podle typu, provedení a materiálu pohybuje v rozsahu cca 8 000 Kč – 13 000 Kč. Existují i limitované edice, jako kožená elektronická šachovnice za 3800 $.


Pro jedno hrací místo s online přenosem je potřeba:


(obrázky jsou z mého návodu, proto ta čísla )

To vše potřebujete minimálně 8x, pro 8 hracích míst. Je dobré mít jednu náhradní sadu. V případě dřevěných šachovnic se lehce dostanete na celkovou cenu kolem 100 000 Kč. Pro klub je pořádání turnaje extraligy vizitkou a pokud má možnosti a sponzory, tak se nekupují ty nejlevnější (plastové) provedení.

Ceny to nejsou zrovna malé. Částečně jsou dané značkou, částečně provedením (dřevo), částečně certifikací FIDE. Extrémní je sada základní kabeláže, která stojí cca 3 000 Kč. Tvoří ji napájecí adaptér, dva UTP kabely, 4 pasivní RJ45 rozdvojky a převodník USB-RS232 (s FTDI). Její reálnou cenu odhaduji na cca 300 Kč. 


Lze si sice zapůjčit „putovní“ vybavení z českého šachového svazu, ale je to s rizikem problémů. Nevíte, v jakém stavu vám dorazí - zda nebudou polámané kabely, vyviklané konektory atd. Není v silách šachového svazu po zápůjčce vždy všechno rozbalit, kompletně zapojit, zprovoznit, zkontrolovat a opět zabalit na další zápůjčku. Pokud chcete mít jistotu, je lepší mít vlastní vybavení, o které se sami staráte.

Z hlediska technologie propojení s PC existující tři základní typy:
  • Bluetooth,
  • USB,
  • RS232/sériové.

Bluetooth

Bluetooth verze je nejmodernější. Šachovnice mají Li-on baterie, takže teoreticky nepotřebujete žádné kabely. Stačí je spárovat s PC a je hotovo. Tolik teorie. Praxe je ale trochu jiná. Pokud používáte Bluetooth, tak se vám určitě někdy stalo, že zařízení začalo stávkovat, když se třeba nechtělo spárovat nebo vypadávalo spojení atd. Představa, že musíte udržovat v chodu 8 těchto zařízení v místnosti, kde mohou být zdroje rušení a další Bluetooth zařízení, moc lákavá není.

S bezkabelovostí to také tak slavné není. Šachovnice sice mají baterie, ale stejně nechcete riskovat, že se baterie v průběhu partie vybije. Sám výrobce jejich použití pro turnaje nedoporučuje:

Although it is possible, DGT does not recommend to use Bluetooth wireless connections for tournaments“ (návod, strana 5).


USB

USB verze vypadá lákavěji, protože odpadají problémy s párováním a vypadáváním signálu. Vzniká ovšem jiný problém, kterým je propojení a kabeláž. Jednotlivé šachovnice jsou připojeny hvězdicově, do USB HUBu. Jste tak teoreticky omezeni délkou 5m od USB HUBu, což je většinou málo. Stoly by musely být umístěné do půlkruhu, s USB HUBem uvnitř. To často není moc reálné. Omezení na 5m sice není tvrdé, ale riskujte problémy…



Navíc opět výrobce píše:

„For a reliable tournament set-up we advise to use serial e-Boards or Smart Boards connected via a tournament cable set. We do not recommend a wiring structure via USB cabling only“ (návod, strana 5).


RS232/sériové

Vylučovací metodou zbývá nejstarší varianta, sériová. Zpočátku jsem si říkal, že snad v roce 2019  zastaralé rozhraní RS232 už používat nebudu, ale po prostudování modernějších, výše popsaných typů, se sériový stal jednoznačným favoritem a zvítězil. Pro jeho použití hovoří jednoduchost zapojení, skoro neomezená délka a také přizpůsobivá topologie.

Jednotlivé šachovnice jsou na sebe postupně připojeny obyčejnými UTP CAT-5 kabely. Napájecí adaptér je pouze u PC a jeho výstup se sloučí s výstupem z USB-RS232 převodníku (viz zmiňovaná základní kabeláž). Následně stačí vést k šachovnici UTP kabel. U šachovnice je pasivní RJ45 rozdvojka, do které se zapojí kabel k šachovnici a hodinám a do druhého výstupu rozdvojky se zapojí UTP kabel k další šachovnici.
Takto jednoduše můžete postupně propojit až 12 šachovnic. Protože se nepřenáší mnoho dat a přenos může běžet na nízké rychlosti, tak nejste nějak extra omezeni délkou. Bez problémů můžete mít k první šachovnici UTP kabel 20m dlouhý (např. když turnaj probíhá v nějaké větší hale s pódiem) a pak postupně šachovnice propojovat přes 5m kabely, ale klidně i delší. Nezdá se to, ale pokud chcete kabely ochránit proti nechtěnému zakopnutí, strhnutí a podobným nehodám, tak je 5m mezi dvěma šachovnicemi jako nic. Vše musíte řádně přilepit k podlaze, nohám stolů atd. Kabely nelze jednoduše táhnout nahoře po stolech, tam by zavazely. Čím méně jsou vidět, tím lépe. Pokud potřebujete udělat dvě větve, pro dvě paralelní řady šachovnic/stolů, tak to také není v případě sériových šachovnic problém. Stačí jedna pasivní RJ45 rozdvojka navíc.

Bylo mi záhadou, jak to vůbec může fungovat. RS232 linka je určena k propojení dvou zařízení, ale zde je jich připojeno najednou třeba 10. Mirek Prýmek mi objasnil, že se toto řešení jmenuje RS232 multidrop.

Je trochu divné, že výrobce nepoužil RS485 nebo jiné řešení HW standardně umožňující připojení více zařízení. Nicméně to funguje bez problémů.

Pozn.: na stránkách chessprogramming.org můžete najít fotku vnitřku šachovnice. Firma DGT má řešení snímání pohybu figur patentované.

Software

Software tvoří druhou, neméně důležitou část celého řešení. Bohužel je nutno podotknout, že je to polovina o dost slabší. Součástí nákupu turnajových šachovnic DGT je i licence na aplikaci LiveChess. Tato aplikace běží na operačních systémech Windows, Linux a Mac OS X. Je psána v Java a vyžaduje JRE 7 a vyšší. 


Existují dvě hlavní verze:
  • 1.x (poslední 1.4.8 z roku 2015)
  • 2.x (poslední 2.2.6 z roku 2018)
Základní rozdíl mezi těmito verzemi spočívá v tom, že verze 1.x přenáší průběh na uživatelsky zadaný FTP server, zatímco verze 2.x umí přenášet pouze na LiveChess Cloud. Obě verze dále umí průběh také ukládat na lokální disk, odkud ho můžete dle potřeby pomocí vlastního řešení (cURL, WinSCP, FIleZilla apod.) nahrávat dle vaší potřeby.

ŠSČR pro přenos distribuuje předem nakonfigurovanou verzi 1.4.8, což je pro kluby velká pomoc. Teoreticky by zřejmě šla použít i novější verze 2.x, ale museli byste si vše znovu zkonfigurovat, vyplnit jména hráčů, nadefinovat turnaje, nascriptovat vlastní řešení uploadu a doufat, že to bude fungovat, protože to není vyzkoušeno. Vzájemnou kompatibilitu přenášených dat jsem nezkoumal.

Dostávám se k tomu, proč jsem psal, že SW je ta slabší polovina. Důvod je ten, že LiveChess je přímo ukázkový příklad aplikace, která vlastně skoro nic neumí (ve smyslu že má pár funkcí), ale je přesto řešená tak, že se velmi obtížně ovládá. Člověk, který ji „nemá v ruce“ a navíc se neorientuje v dané problematice, neustále pátrá a hledá, co kde se kde zadává a nastavuje. Přecházíte po stromové navigační struktuře, přepínáte se mezi záložkami, hledáte tlačítka a checkboxy a občas pro něco musíte zabrousit i do hlavního menu. Já jsem si pro sebe nakonec udělal obrázkový návod na 10 stran A4, abych to nemusel příště hledat.


Formát PGN

Pro přenos průběhu utkání se používá PGN formát. Je to textový soubor, který je dokumentovaný a relativně dobře čitelný. Není sice úplně vhodný pro automatizované zpracování (XML nebo JSON by byl vhodnější), ale naštěstí to není uzavřený binární formát.

Web

Vlastní zobrazení průběhu partií Extraligy probíhá přes ŠSČR. V zaslané konfiguraci LiveChess od ŠSČR je už připravený server + cesta na upload partie a stačí pouze doplnit název týmu a datum. O zbytek se postará ŠSČR. Zajistí 15 minutové zpoždění a následný přenos na mezinárodní servery chess24.com a chessbase.com

Zpoždění je pro zmenšení rizika, že někdo bude podvádět. Hráči sice u sebe nesmí mít mobilní telefony, chytré hodinky, počítače atd., ale dnes jsou už zařízení tak miniaturizovaná, že malé sluchátko v uchu hráče lze snadno přehlédnout…

Pokud nepřenášíte Extraligu, můžete jít cestou LiveChess 2.x a využití službu LiveChess Cloud. V případě, že chcete mít přenos a uložení dat více pod kontrolou, můžete si zajistit upload přímo na váš web.
V LiveChess 2.x nastavíte export na disk a následně nascriptujete upload souboru games.pgn. Starší verze LiveChess 1.x umí upload přímo sama (bohužel pouze FTP). Tím máte proveden přenos dat na server a zbývá je zobrazit.

LiveChess verze 1.x umí paralelně s PGN formátem generovat i HTML stránku s Flash a to vše uploadovat na server, což ale není řešení, které byste v dnešní době chtěli použít. Pokud máte na webu redakční systém WordPress, můžete využít například plugin Embed Chessboard. Do obsahu stránky nebo příspěvku zadáte pouze tag [pgn xxxxxxx] [/pgn] a máte hotovo.

Pokud WordPress nemáte, můžete využít Javascript variantu pgn4web.

Po odstartování partie už jen sledujete, zda není nějaký problém. Musíte hlídat stav šachovnic v LiveChess (problémy jsou indikovány červeným vykřičníkem) a občas na webu zkontrolovat, zda přenos funguje.

Konec partie se provádí tak, že se na šachovnici postaví figury králů do konkrétní pozice v závislosti na tom, která strana vyhrála, případně zda byla remíza.


Musíte se sami obrnit trpělivostí. Na přenos jednoho utkání je dobré si vyhradit celý cen. Pokud vše umíte, tak musíte zhruba počítat s časy:
  • 1 hodina příprava a konfigurace software a webu,
  • 1.5 hodiny na zapojení šachovnic - vše rozestavět, propojit, zamaskovat a zabezpečit kabeláž (zapáskovat, přilepit ke stokům, …), nastavit hodiny a vše vyzkoušet,
  • 4-5 hodin vlastní utkání - většina partií sice skončí během 3-4 hodin, ale musíte čekat až na dokončení poslední,
  • 1 hodina úklid.
Problematickým článkem celého procesu je ovládání software LiveChess, který je nutné dostat „do ruky“. V případě české šachové Extraligy situaci usnadňuje perfektní příprava ze strany ŠSČR. Pokud si nejste jistí nebo nejste zběhlí v IT, můžete využít nabídku ŠSČR na školení online přenosů. Já jsem školení neabsolvoval, ale byli jsme se s již zmíněným kamarádem podívat na jedno kolo Extraligy, protože i on byl zvědav, jak to probíhá. Já se zajímal o IT, on o organizační zabezpečení.

Dalším slabším článkem jsou paradoxně samotní hráči, obzvláště pokud se nejedná o přenos Extraligy, ale nějaké jiné soutěže, ve které nejsou zkušenosti s elektronickými šachovnicemi. Hráči mají často po skončení partie tendenci si zkoušet další varianty tahů nebo postavit figury do výchozí pozice. To je problém, protože šachovnice vše registruje a bere jako tahy hry a musíte to ručně opravovat. Proto je dobré hráče na tento fakt před začátkem utkání upozornit. Jenže v zápalu boje na to stejně často zapomenou. Po 3-4 hodinách soustředění se ale není čemu divit.

Menší výtku mám k bezpečnosti. Pro klub, který je součástí extraligy, by nebyl žádný problém sabotovat nebo ovlivňovat přenos průběhu hry jiného klubu, byť i třeba omylem. Přihlašovací údaje se sdílí a rozlišení je pouze v místě uložení na serveru. Bylo by lepší, kdyby byly pro každý klub vytvořené speciální účty s právy pouze na jejich složku. ŠSČR se zřejmě spoléhá na komornější prostředí. Na druhou stranu je online přenos pouze doplněk a jako rozhodující jsou papírové partiáře. LiveChess používaný pro Extraligu navíc umí jen protokol FTP, který posílá autentizační údaje v otevřené podobě. To lze obejít vlastním uploadem přes řešení podporující zabezpečený přenos, ale je to komplikace.

Celé to pro mě byla zajímavá zkušenost, jak z hlediska technického řešení, tak i z hlediska organizace a fungování šachových utkání.

Na závěr pár fotografií z 4. kola extraligy Labortech Ostrava - Slavia Kroměříž.