TUNNELBRAWL English on Medium
Zpět na devlog

DEVLOG / NOVÝ ZAČÁTEK

Slíbil jsem hru za 6 měsíců. Další článek jsem napsal až po 20 měsících.

Po dvaceti měsících: proč jsem přestal, co mě přivedlo zpátky a jak se Tunnel Brawl proměnil v hratelnou alfu v Unity.

Můj poslední článek je z 11. prosince 2024. Jmenoval se „11. týden: Jak správně vyvíjet multiplayerovou hru“ a svým způsobem skončil uprostřed věty — zrovna jsem přesouval herní logiku z klienta na server, měl jsem spoustu elánu a každou neděli publikoval nový díl.

A pak: ticho. Na dvacet měsíců.

Série se jmenovala Vytvořit kompletní hru za 6 měsíců po večerech. Takže začněme tím, co je zjevné: za šest měsíců jsem kompletní hru nevytvořil. Ani jsem nevydržel šest měsíců psát blog. Jestli jste mě přišli vzít za slovo, právě tady skládám účty.

Jenže příběh o tom, proč jsem přestal, se nakonec ukázal být zajímavější než týdenní zprávy o pokroku, které jsem tehdy psal. Tak tady je.

Kam jsem zmizel

Upřímná odpověď, alespoň za prvních pár měsíců: nikam. Prostě mi došla pára. Jedenáct týdnů programování každé úterý, čtvrtek a neděli večer, k tomu práce engineering managera na plný úvazek v Grouponu a rodina — v jednu chvíli byla baterka prázdná a z jednoho vynechaného nedělního článku se nenápadně staly všechny další. Žádné dramatické rozhodnutí skončit nepadlo. Ono většinou ani nepadne.

Pak za mnou v lednu 2025 přišel kamarád a řekl: „Viděl jsem, že děláš hru. Nechtěl bys se mnou radši rozjet firmu?“

Byl to bývalý kolega — pracovali jsme spolu v jedné z předchozích firem, takže mě znal. Ale právě tenhle blog, přesně tyhle články, mu ukázal, že ve volném čase dotahuju věci do praxe. Na chvíli se u toho zastavte: Tunnel Brawl přitáhl přesně ten projekt, který ho pak uspal.

Nápadem byl hlasový asistent pro realitní makléře. Nazvali jsme ho HarryApp. Bavit jsme se o něm začali v lednu a v březnu 2025 už jsem na něm opravdu pracoval — po večerech a o víkendech, přesně jako předtím na hře. Takže i když se energie vrátila, čas vyhrazený hře už patřil někomu jinému.

Plán byl vyvíjet ho při práci a já se o to snažil. Jenže postupoval jsem pomalu: práce v Grouponu byla opravdu náročná, volného času málo a tahle kombinace mě vyčerpávala. Takhle to šlo až do ledna 2026, kdy přišlo skutečné rozhodnutí: odešel jsem z Grouponu a začal se HarryApp věnovat naplno.

A teď ta část, na kterou jsem opravdu hrdý. Zhruba za dva měsíce jsme produkt dotáhli do hotového, funkčního stavu. Pak jsme se na něj poctivě podívali a došli k závěru: produkt se nepotkává s potřebami trhu a výhled do budoucna neospravedlňuje další pokračování. Tak jsme ho ukončili. Hotový produkt, funkční a venku — a my jsme ho vědomě zavřeli.

Tohle rozhodnutí bolelo, ale otevřelo cestu k lepšímu. Vyčlenili jsme nový projekt a založili něco většího: DREEM.cz, nový druh realitní kanceláře. Už ne nástroj pro makléře — celou službu od začátku do konce. Firmu postavenou na softwaru, kde AI a automatizace zajišťují provoz a lidé se starají o vztahy a rozhodování. Tomu se teď věnuju naplno a baví mě to.

Tu poslední větu si zapamatujte — AI zajišťuje provoz, lidé rozhodují. Ještě se k ní vrátíme.

Proč jsem zpátky u hry

Omezení z mého prvního článku se nezměnila: rodina, děti, náročná práce. Volný čas je pořád to nejvzácnější, co mám.

Jedna věc se ale změnila: co se mnou udělá pracovní den. Groupon je velká mezinárodní firma a taková práce vlastně nikdy nekončí — schůzky napříč časovými pásmy, korporátní procesy, neustálý pocit, že musíte být na příjmu. Večer ještě zbývaly hodiny, ale žádná mentální energie. Hra nikdy neprohrávala s mým kalendářem. Prohrávala s vyčerpáním.

DREEM je přesný opak. Budování vlastní firmy mi energii dává, místo aby mi ji bralo. Práce mě naplňuje, mám skutečnou flexibilitu a moje dny nemizí v hodinách schůzek a práci pro práci, kterou korporát vytváří. Když přijde večer, ještě ve mně něco zbývá.

Hra už není druhá směna. Je to změna prostředí. Přes den v DREEMu řeším produktová a obchodní rozhodnutí. Když si večer sednu k hloubení tunelů a ladění tankových soubojů, zapojím jinou část mozku. Má to blíž k tomu, když si někdo jiný zahraje šachy nebo zajde na ryby. Díky tomu se u toho dá dlouhodobě vydržet způsobem, který v roce 2024 nebyl možný.

To ale vysvětluje jen to, proč to může fungovat, ne proč to chci. Ten skutečný důvod je starší než tenhle blog. Tunneler — DOSová hra, ze které celý projekt vyrostl — je hra z mého dětství, kterou jsem miloval. A celou svou kariéru, všech pětadvacet let, vytvářím internetové aplikace: webové, mobilní, všechno možné. Nikdy hru. Vytvořit nějakou byl celou tu dobu můj sen. Jen pořád prohrával s rozumnějšími věcmi.

Kromě toho snu mě právě k téhle hře přivedly zpátky ještě dva praktičtější důvody.

Za prvé, první verze byla škola, ne selhání. Jedenáct týdnů vývoje multiplayerové hry v prohlížeči mě naučilo, jak síťové hry skutečně fungují: o čem musí rozhodovat server, co může klient jen předstírat, že ví, a proč se autorita serveru nedá jednoduše přilepit dodatečně. V jedenáctém týdnu jsem o architektuře s autoritativním serverem psal jako o něčem, co zpětně doplňuju. Teď už chápu, že je to něco, s čím se začíná.

Za druhé, svět vývoje softwaru se posunul. Hodně. Vyvíjet s AI v roce 2026 je úplně něco jiného než v roce 2024. Samotné psaní kódu přestalo být tou drahou částí práce — a sen, který jsem pětadvacet let odkládal, je tak najednou dosažitelnější než kdy dřív.

Nový začátek

V červenci 2026 jsem tedy začal znovu. Ne „navázal“ — začal znovu. Nový repozitář, nový engine, nová architektura. První commit nové verze přišel 26. července. Za necelý měsíc jich bylo 138 a hra funguje od začátku do konce: zápasy, kopání, souboje, zničení tanku i respawn.

Tentokrát se neliší jen technologie (Unity a Steam místo TypeScriptu v prohlížeči — ano, moje já z roku 2024, které odmítalo učit se herní engine, bylo přehlasováno). Liší se pořadí rozhodnutí:

  • Nejdřív přišla představa o herním zážitku. Ještě než jsem začal psát herní kód, vytvořil jsem si obrázky, které mi slouží jako „severka“ — jak má hra vypadat a jak má působit na začátku zápasu, při kopání, v přestřelce nebo při zničení soupeře. Aby bylo jasno: ta severka je ideál, ne dogma. Upřímně nevím, jestli se hotová hra těm obrázkům plně vyrovná, a to je v pořádku — zábava a hratelnost mají přednost před hezkými obrázky. Úkolem téhle vize je držet stovku drobných rozhodnutí ve stejném směru.
  • Pravidla vznikla před projektem. První na tři, maximálně osm minut. Zatím 1 proti 1, s 2 proti 2 a 3 proti 3 se počítá v návrhu od začátku. A uprostřed toho všeho jedno zásadní rozhodnutí: máte jednu společnou zásobu energie a neustále volíte mezi rychlým kopáním a silnou palbou.
  • Autoritativní server od prvního dne. Žádný refaktoring v devátém týdnu. Od prvního dne.
  • I obchodní model je součástí návrhu hry. Jednorázová koupě za 9,99 USD, žádné free-to-play — a každý majitel dostane Friend Pass, se kterým si může do svého lobby zdarma přivést jednoho kamaráda. Tunneler byla hra, kterou jste hráli s kamarádem u jedné klávesnice. Cena by to měla respektovat, ne tomu házet klacky pod nohy. Když tohle rozhodnete včas, ovlivní to všechno od postupu ve hře až po rozhraní.

Tady je vize vedle reality, abyste si mohli udělat vlastní obrázek:

Výtvarný koncept podzemní tankové přestřelky jako vizuální cíl pro budoucí podobu hry.
Výtvarný koncept — vizuální cíl: takhle by měla působit přestřelka.

A tady je hra dnes — skutečná přestřelka ze zápasu dvou botů, zachycená tento týden. Rozdíl mezi těmito dvěma obrázky je můj plán dalšího vývoje.

Dva tanky proti sobě střílejí v úzkém podzemním tunelu v aktuální alfa verzi Tunnel Brawl.
Jak hra skutečně vypadá dnes
Zničený hráčův tank a odpočet do návratu do hry v podzemním bojišti.
Hráčův tank je zničený
Hráčův tank po respawnu na základně, připravený vrátit se do souboje.
Hráč po respawnu na základně

Jestli byl rok 2024 ve znamení „začni programovat a na podobu hry přijdeš cestou“, rok 2026 je „rozhodni, jaká ta hra má být, a pak nech kód, ať to dožene“. Právě to, že to kód dnes dohání mnohem rychleji, udělalo z rozhodování hlavní brzdu — a zároveň tu zajímavou část.

Mění se i blog

Tím se dostávám k tomu, proč v tomhle článku není ani jedna ukázka kódu a proč nebudou ani v těch dalších.

Původní série byla týdenní implementační deník: tady je můj WebSocket server, takhle spravuju stav ve Svelte 5. Ten formát dával smysl, když bylo těžké kód napsat a jeho ukázka měla hodnotu. V roce 2026 dokáže AI vytvořit slušný WebSocket server rychleji, než o něm stihnu napsat článek. Co ale nedokáže, je rozhodnout, jakou hru stojí za to vytvořit, jak má působit férový souboj nebo kdy ukončit hotový produkt.

Přesně na tomhle principu vedu svou firmu: AI a automatizace zajišťují provoz, lidé rozhodují. Chvíli mi trvalo všimnout si, že teď stejně vytvářím i hru — a že by tomu měl odpovídat i blog. Nový formát tedy je: jeden princip, jedno skutečné rozhodnutí, jeden příběh z praxe v každém článku. Žádný týdenní rozvrh, žádné rozbory kódu.

Už teď mám plný šuplík témat — všechna vycházejí ze skutečných šrámů z posledních týdnů vývoje. Ale se zveřejňováním slibů už jsem se poučil, takže seznam zůstane v šuplíku. Šestiměsíční termín byl skvělý titulek a mizerný plán. Nový závazek je jednodušší a myslím, že i poctivější: dokud tvořím, píšu.

Tanky už kopou. Uvidíme se v podzemí.