Vítejte u prvního dílu našeho povídání o historii Brejku.

Proč je první díl věnován právě přepočtu ?

Odpověď zjistíme, když si nejdříve připomeneme, co to přepočet vlastně je.
Přepočet je srdcem každého manažeru. Přepočet provede akce, které manažeři během dne naplánují. Přepočet provede trénink hráčů. Přepočet provede stavbu stadionu. Přepočet vyhodnotí přestupy. Přepočet provede stovky dalších věcí, které jsou nutné k tomu, aby hra běžela.
Přepočet vlastně ukončuje den a začíná nový. Když se nad tím zamyslíme, zjistíme, že Brejk je vlastně turn-based strategie, kde se jeden tah rovná jednomu dni.
Provést přepočet nějakou dobu trvá, a proto probíhá v pozdních večerních hodinách, a během něho je hra nedostupná a nemůžete provádět žadné akce, které by průběh přepočtu mohli narušit.
Přepočet ale především dělá tu nejdůležitější věc - hraje zápasy.

Zpočátku zabralo odehrání zápasů nejvíce času, postupně ale přidáváním dalších úkolů přepočtu se čas potřebný k odehrání zápasů dostal do minoritního postavení.

Tak to je přepočet.

My si budeme povídat o výpočtu zápasu, jakožto o srdci samotného přepočtu.

Historie přepočtu
Samotný výpočet zápasu byl v listopadu 2005 hotov jako vůbec první část Brejku, v době, kdy práce na webu ještě ani nazačala. V té době jsem neměl ani ponětí o tom, jak vlastně vypadá PHP a další webové nástroje a přepočet jsem naprogramoval v databázovém prostředí Winbase 602. Po jeho otestování a konstatování, že výsledek vypadá fotbalově, jsem jej začal předělávat do PHP verze (při tom jsem se současně PHP učil), zatímco souběžně začala práce na webových stránkách.

Přepočet verze 1.0
Už první verze zápasu byla poměrně sofistikovaná. Zatímco jiné hry zápas simulovaly pomocí několika málo vzorců, nebo provedli jednoduše náhodný výpočet, u Brejku jsme chtěli alespoň trochu simulaci skutečného zápasu. Rovněž jsme chtěli umožnit volitelné rozmístění hráčů po celém hřišti, nejen obligátní volbu pásma - záložník, obránce, útočník (psal se rok 2005, tehdy opravdu půdorysný obrázek hřiště s umístěním hráčů nebyl zvykem).
Proto jsme hřiště rozdělili do 9 pásem na délku a 9 pásem na šířku. Do toho rastru manažer umisťoval hráče, hráči soupeře se postavili do stejného rastru zrcadlově a zápas mohl začít. Každý hráč svojí přítomností ovlivňoval i políčka okolo a tím bylo pokryto celé hřiště. Všechny hodnoty byly navíc ovlivněny volbou taktiky. A balón poletoval jednoduše mazi těmito políčky. Důležité je podotknout, že hráči ve skutečnosti neběhali ! Zápas měl přesně 90 tahů.
Výsledky byly dle mého názoru skvělé a vypadaly neuvěřitelně fotbalově.
Bohužel první verze neumožňovala žádné rozumné zobrazení zápasu, kromě jednoduchého výpisu ve výsledném reportu. Ale to nám nevadilo, neboť jsme stejně nepředpokládali, že bychom  (tehdy) zvládli nějaké animace a ani jsme se o to nepokoušeli. Holt byla jiná doba a textové hry vládly webu.....

Přepočet verze 2.0  -  projekt "Drůbežárna".
Po nějaké době jsme však chtěli dát hráčům více. Chtěli jsme aby zápas byl na hřišti opravdu vidět. Prostě jsme museli naučit hráče běhat. Každé pole stávajícího rastru jsme rozdělili na 9 polí a vznikl výsledný rastr 27 x 27.
A povolili jsme hráčům během zápasu měnit pozici. Hráči dostali svůj rozum (dá-li se to tak nazvat) a začali se po hřišti pohybovat v souladu s pohybem míče. Hra se tím rozdrobila a bylo potřeba zvednout počet tahů v zápase na dvojnásobek, hrálo se tedy po půlminutách.
Zobrazení bylo jednoduché, ale splnilo svůj účel. Obrazovka byla pravidelně refreshována a hráči i míč byli zobrazovány na pozicích, na kterých se v každém tahu nacházeli. Data byla umístěna přímo v databázi, což byl poměrně problém, neboť jich bylo neskutečné množství. Proto bylo možné přehrát pouze zápasy posledních dvou dnů, poté byla data automaticky odstraňována z databáze.
Přepočet 2.0 by spuštěn na počátku třetí sezóny.
Drůbežárna byla přezdívka tohoto přepočtu, neboť v úplně první verzi, kterou předvedl testerům, nebyli hráči moc chytří a běželi za míčem jak hejno slepic.

Přepočet verze 3.0
Na počátku 12. sezóny se na Brejku objevila další verze přepočtu. Ta byla významná v tom, že byl kompletně opuštěn rastr hřiště a hráči dostali naprostou volnost pohybu. Rovněž dostali vlastní (byť velmi jednoduchou) inteligenci a celý zápas se začal stále více podobat fotbalu.
Počet tahů v zápase již také nebyl pevně dán a každý tah trval jinak dlouho. Centr přes celé hřiště pochopitelně letí déle, než krátká přihrávka spoluhráči přede mnou.
Data již nebyla ukládána v databázi, ale v souboru na disku serveru, čímž se databázovému serveru velice ulevilo.

A tuto verzi v podstatě používáme dodnes. Pochopitelně prošla a stále prochází obrovským množstvím změn, jako je zvyšování inteligence hráčů, zakomponování nových taktik a podobně. Dnešní kód výpočtu zápasu už neobsahuje ani jeden znak původní verze z 12 sezóny, ale stále jej označuji jako verze 3.
Tento zápas bylo samozřejmě nutno nějak přehrát.

První verze přehrávače  - Adobe Flex
První pokus byl proveden v javascriptu. Výsledky nebyly vůbec uspokojivé, vlastně byly hrozné. Bylo to totálně nepoužitelné. Nutno podotknout, že to bylo tím, že jsem se javascript na tomto příkladě teprve učil.

Kvůli neúspěchu s javascriptovou verzí přehrávače jsme začali hledat další možnosti. Z tehdy dostupných technologií nám přišlo jako nejpřijatelnější řešení použít Flash player. Jediným problémem byl opět fakt, že jsem neměl ani potuchy, jak se to programuje. Nicméně po několika málo pokusech jsem systém pochopil a za cca týden byla na světě první funkčí verze přehrávače ve Flash playeru. Naprogramováno to bylo kompletně s použitím Flex builderu.

Druhá verze přehrávače - html5
Jak se ale měnil přepočet, bylo potřeba provádět změny a úpravy i v přehrávači. Flexový přehrávač byl co se týká možností úprav naprosto nepružný, zcela jistě i kvůli tomu, že byl naprogramovám absolutně špatně. Jak jsem psal výše, byl to můj první projekt v tomto systému (a také poslední). Tečku za vývojem udělal nakonec fakt, že jsem od něj ztratil zdrojové kódy :)

Naštěstí už byly k dispozici nové technologie, konkrétně html5, se svými skvělými možnostmi pro 2d grafiku.
Jako již mnohokrát předtím při vývoji, jsem to nejprve neuměl a na tvorbě nového přehrávače jsem se pracovat s html5, canvasem a javascriptem teprve učil. Ale vyplatilo se to. Přehrávač zakomponovaný přímo do webu Brejku funguje dobře, není problém jej upravovat, zcela jistě vypadá lépe a máme otevřenou cestu k dalšímu vývoji.

Co dál ?
Na závěr si povězme, co plánujeme do budoucna. Samotný výpočet zápasu již prochází značnými změnami. V první řadě je stále upravována inteligence hráčů. Zde to hodně souvisí s plánovanou úpravou skillů a taktik (o tom zase někdy jindy).
Přepočet ukládá stále více a více informací, pro zajímavější analýzy zápasu. Chceme  se vrátit ke  kdysi oblíbeným live přenosům.
Výpočet je již také možno spustit kdykoliv přes den a není problém odehrát zápas kdykoliv budete chtít.
Lze odehrát i zápasy, které neexistují v kalendáři. Tím bude možno hrát i více zápasů během dne (kdykoliv dva manažeři budou chtít), jen tak pro zábavu, nebo jako přípravu na "skutečné" zápasy.
Tím trošku napovídám o nových plánovaných herních módech.

Přehrávač projde změnou vizualizace. Hráči budou větší a bude možno měnit jejich dresy. Pravděpodobně se objeví i další věci, jako různé povrchy hřiště včetně opotřebování trávníku, branky a střídačky. To zase souvisí s připravovanými změnami stadionu (ale o tom také až někdy jindy).

Tímto bych rád uzavřel  toto povídání a vzpomínání na téma přepočet a zápas. Na Brejku je stále dost pamětníků, keří celou tuto evoluci zažili a věřím, že zažijí i další změny, které jistě přijdou.