1- # Chyť Bárnyho
1+ # Chyť Bárnyho ![ Bárny] ( public/sprites/puppy.png )
2+
3+ [ Zahrajte si] ( https://lawondyss.github.io/CatchPuppy/ )
24
35## Webová hra vytvořená AI
46Protože manželika velmi ráda soutěží se svou sestrou, napadlo mě vytvořit jim jednoduchou hru,
57ve které by se mohly předhánět. A protože Google nedávno přidal Gemini agenta do PhpStormu,
68který je mým primárním editorem, rozhodl jsem se otestovat jeho schopnosti. Už dříve, coby pouhý
7- chat, se projevoval velmi schopně a poslední model se podle různých recenzí jevil velmi slibně.
9+ chat, se projevoval velmi schopně a poslední model se podle různých recenzí jevil slibně.
810
911## KAPLAY
1012V záložkách jsem měl už poměrně dlouho odkaz [ Kaboom.js] ( https://kaboomjs.com/ ) . JS knihovna pro
1113tvorbu webových her, ale kvůli ukončení podpory jsem nakonec použil [ KAPLAY] ( https://kaplayjs.com/ ) ,
12- který je komoditním forkem.
14+ který je komunitním forkem.
1315
1416## Vývoj
1517Podle dokumentace jsem si vytvořil adresář projektu a hned přidal dokumentaci z jejich GitHubu.
@@ -18,26 +20,26 @@ vytvořit hrací plochu s dvěma entitami. Šlo o poměrně jednoduchý kód a v
1820funkční.
1921
2022Postupně jsem ho nechal přidat několik funkčností jako pohyb, detekci chycení, změnu pozadí,
21- než jsem usoudil, že v hlavním souboru ` src/main.js ` už je toho příliš. Takže přišel z mého
22- pohledu čas na velký úkol. Refaktoring a použití OOP oproti funkcionálnímu kódu, který doposud tvořil.
23+ než jsem usoudil, že v hlavním souboru ` src/main.js ` už je toho příliš. Takže přišel čas na z mého
24+ pohledu velký úkol. Refaktoring a použití OOP oproti funkcionálnímu kódu, který doposud tvořil.
2325
2426Refaktoring dopadl nad očekávání dobře. Vytvořil adresářovou strukturu a kód rozdělil podle funkcionality
2527do odpovídajících tříd a metod. Určitě by se to dalo udělat lépe, ale za tento kód bych se určitě nestyděl.
2628
27- Další vývoj obnášel přidání překážek, vylepšení logiky Bárnyho, zvyšující obtížnost, který Gemini bez
28- problému zvládal vytvářet v nové kódové základně i když už šlo o pokročilé úpravy.
29+ Další vývoj obnášel přidání překážek, vylepšení logiky Bárnyho, zvyšující se obtížnost, ukládání high score...
30+ Vše Gemini bez problému zvládal implementovad do nové kódové základny i když už šlo o pokročilé úpravy.
2931
3032## Limity
3133Narazil jsem na velký problém v podobě záseku na posledním požadavku, který se Gemini snaží stále dokola vyřešit.
3234Nabídne úpravu, kterou i když schválím a on ji provede, i tak znova začne řešit stejný požadavek a opět nabídne
3335novou úpravu. Bohužel není jak ho zastavit, prompty v té chvíli nepřijímá a u nabídnutého řešení není možnost zrušit
34- provádění, pouze přijmou nebo odmítnout úpravu. Odmítnutí úpravy není řešení, protože Gemini si to vyloží,
35- že tahle se nelíbí, a tak zkusí lepší.
36+ provádění, pouze přijmou nebo odmítnout úpravu. Odmítnutí úpravy není řešení, protože Gemini si to vyloží, že tahle
37+ se nelíbí, a tak zkusí lepší.
3638
37- Tohle celé je ale podle mého spíše technický problém pluginu nebo API a doufám, že další verze toto opraví.
39+ Tohle celé je ale podle mého spíše technický problém pluginu, nebo API a doufám, že další verze toto opraví.
3840
3941Omezené schopnosti samotného modelu se projevili až při velmi pokročilém generování keřů, které vytváří překážky
40- na hracím poli. Původně bylo čistě náhodné, což občas vedlo k vytváření uzavřených míst, odkud nebo kam se
42+ na hracím poli. Původně bylo čistě náhodné, což občas vedlo k vytváření uzavřených či úzkých míst, odkud nebo kam se
4143hráč nedostal i když to potřeboval. Zadal jsem mu, ať takovému generování zabrání, což se mu i povedlo a mohl
4244bych být spokojený. Ale nebyl. Chtěl jsem, aby spawnování Bárnyho bylo v určitém rozmezí od hráče a horní
4345hranice měl být zbývající čas hráče a tady to šlo celé do kytek.
@@ -47,28 +49,28 @@ vhodné. Jenže to končilo hrací plochou bez keřů. Měl fallback, že když
4749neumístí se žádné keře, což byl nakonec každý výsledek. Procesu pathfindingu jsem nerozumněl, takže jsem mu neměl
4850jak pomoci.
4951
50- Při každém opakovaném upozornění na chybu tvrdil, že problém našel a opravil, ale v podstatě přepínal jen mezi dvěma
52+ Při každém opakovaném upozornění na chybu tvrdil, že problém našel a opravil, ale v podstatě jen přepínal mezi dvěma
5153řešeními nebo upravoval komentáře. V kombinaci s problémem záseku se z toho stal depresivní kolotoč.
5254
5355Nakonec jsem ho nechal celou logiku pathfindingu zahodit a začali jsme znova od začátku. Tentokrát jsem šel cestou
5456nedokonalosti a nechal ho vytvořit náhodné generování v mřížce a spawnování v rozsahu bez pathfindingu. Na hře je
55- to vidět. Se zvyšující se obtížností narůstá i pravděpodobnost vzniku uzavřeného prostoru a tak náhoda hraje větší
56- roli, než by si asi kdokoliv přál.
57+ to vidět. Se zvyšující se obtížností narůstá i pravděpodobnost, že se hráč nemá k Bárnymu jak dosta, a tak náhoda
58+ hraje větší roli, než by si asi kdokoliv přál.
5759
5860## Závěrem
5961Začal jsem testovat programovací schopnosti AI od prvních modelů a vidím, jak velký pokrok za těch pár let tento
6062obor urazil. Poprvé jsem si tak představil, jak by se mé živobytí mohlo změnit. Trochu mě děsí představa, že bych
61- nebyl zodpovědný za každý řádek, ale asi je to prostě budoucnost.
63+ nebyl zodpovědný za každý řádek kódu , ale asi je to prostě budoucnost.
6264
6365Upřímně jsem si ji spíše představoval jako zrychlující se nástup stále více funkcionalit, který prostě jednoho dne
6466přestanu stíhat úplně a stane se ze mě dinosaurus, který na stará kolena neví, že i CSS už je programovací jazyk.
6567
66- Tahle budoucnost je mi ale více nakloněna. Dává mi do rukou nástroj, kdy se zfosilnatění musím obávat mnohem méně,
67- protože AI to bude všechno znát a na mě zbyde jen ji vést.
68+ Současné vyhlídky jsou mi ale více nakloněny. Dostávám do rukou nástroj, kdy se zfosilnatění musím obávat mnohem méně,
69+ protože AI bude všechno znát a na mě zbyde jen ji vést.
6870
6971## P.S.
7072Mám pár nápadů, jak vyřešit alespoň problém se vznikem uzavřených míst, ale pro tuto chvíli nechám holky, ať si hrají.
7173
7274## P.P.S.
73- Jsem zvědavý, jak se na tento text budu tvářit za pár let. Jestli si něj vzpomenu, rád si přečtu a porovnám, jak moc se
74- mi má představa budoucnosti naplnila.
75+ Jsem zvědavý, jak se na tento text budu tvářit za pár let. Jestli si něj vzpomenu, rád si ho přečtu a porovnám,
76+ jak moc se mi má představa budoucnosti naplnila.
0 commit comments