Skip to content

Commit 0306041

Browse files
committed
Added deploying to GitHub Pages
1 parent 103d51b commit 0306041

3 files changed

Lines changed: 68 additions & 20 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
8+
jobs:
9+
build_game:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v4
14+
15+
- name: Install Node.js
16+
uses: actions/setup-node@v4
17+
with:
18+
cache: yarn
19+
20+
- name: Install dependencies
21+
run: yarn
22+
23+
- name: build
24+
run: |
25+
yarn build
26+
touch dist/.nojekyll
27+
28+
- name: Upload Artifacts
29+
uses: actions/upload-pages-artifact@v3
30+
with:
31+
# default directory of Vite builder
32+
path: 'dist/'
33+
34+
deploy:
35+
needs: build_game
36+
runs-on: ubuntu-latest
37+
permissions:
38+
pages: write
39+
id-token: write
40+
environment:
41+
name: github-pages
42+
url: ${{ steps.deployment.outputs.page_url }}
43+
steps:
44+
- name: Deploy
45+
id: deployment
46+
uses: actions/deploy-pages@v4

README.md

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
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
46
Protože manželika velmi ráda soutěží se svou sestrou, napadlo mě vytvořit jim jednoduchou hru,
57
ve které by se mohly předhánět. A protože Google nedávno přidal Gemini agenta do PhpStormu,
68
který 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
1012
V záložkách jsem měl už poměrně dlouho odkaz [Kaboom.js](https://kaboomjs.com/). JS knihovna pro
1113
tvorbu 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
1517
Podle 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
1820
funkční.
1921

2022
Postupně 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

2426
Refaktoring dopadl nad očekávání dobře. Vytvořil adresářovou strukturu a kód rozdělil podle funkcionality
2527
do 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
3133
Narazil jsem na velký problém v podobě záseku na posledním požadavku, který se Gemini snaží stále dokola vyřešit.
3234
Nabí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
3335
novou ú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

3941
Omezené 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
4143
hráč nedostal i když to potřeboval. Zadal jsem mu, ať takovému generování zabrání, což se mu i povedlo a mohl
4244
bych být spokojený. Ale nebyl. Chtěl jsem, aby spawnování Bárnyho bylo v určitém rozmezí od hráče a horní
4345
hranice 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ž
4749
neumístí se žádné keře, což byl nakonec každý výsledek. Procesu pathfindingu jsem nerozumněl, takže jsem mu neměl
4850
jak 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

5355
Nakonec jsem ho nechal celou logiku pathfindingu zahodit a začali jsme znova od začátku. Tentokrát jsem šel cestou
5456
nedokonalosti 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
5961
Začal jsem testovat programovací schopnosti AI od prvních modelů a vidím, jak velký pokrok za těch pár let tento
6062
obor 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

6365
Upřímně jsem si ji spíše představoval jako zrychlující se nástup stále více funkcionalit, který prostě jednoho dne
6466
př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.
7072
Má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.

vite.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default defineConfig({
88
},
99
build: {
1010
// disable this for low bundle sizes
11-
sourcemap: true,
11+
sourcemap: false,
1212
rollupOptions: {
1313
output: {
1414
manualChunks: {

0 commit comments

Comments
 (0)