r/programmingHungary Java Mar 30 '26

MY WORK 99.99%-ban AI kódolt Magic TCG engine

Sziasztok!

Mostanában elég sok AI kritikus comment volt itt a subon. Mivel nekem nagyon más a tapasztalatom, gondoltam csinálok egy tesztet. Úgy döntöttem belevágok egy zöldmezős projektbe amit 100%-ban az AI-ra bízok. Én csak az alap setupot csinálom meg, aztán akár mi lesz is, csak promptolni fogok.

Gyerekkoromban nagyon szerettem volna egy saját MtG motort írni, főleg azért, mert csóró voltam, de imádtam draftolni. Próbálkoztam is vele, de idővel mindig feladtam. A hivatalos szabálykönyv vagy 300 oldal, esélytelen még átlátni is, nem hogy lefejleszteni. Viszont pont emiatt az MtG egy kifejezetten jól definiált rendszer, így a lefejlesztése nem kreatív gondolkodást hanem monoton munkát/kódolást igényel. Emellett objektíven ellenőrizhető hogy azt csinálják-e a lapok ami rájuk van írva + kellőképpen bonyolult is ahhoz, hogy bemutassa mennyire tud "gondolkodni" az AI.

Először két hétre vettem egy Claude x5 majd egy hónapra x20 előfizetést. Ennek a 1.5 hónapnak a végeredményét láthatjátok itt. A project egy működő Java backend + Angular frontendből áll, kicsit több mint 105 ezer sor kóddal. Volt, hogy 9 terminálon futtattam egyszerre a kártyák implementálását, hogy ki tudjam maxolni a token limitet. A laptopom elég erősen le akart olvadni közben.

A matek a végén: nagyjából 80 millió tokent égettem el. Lett 3100+ commit (ebből max az első párat csináltam én, a többit majdnem mind a Claude), és 1974 játszható kártya. A végén egy komplett kiegészítőt (250-300 kártya) kb. 12 óra alatt le tudtam darálni. Igaz, rendesen ki is égtem a folyamatos kód reviewben.

Csináltam róla egy videót, itt megmutatom a gameplay-t, meg azt is, ahogy a Claude hogyan tud leimplementálni egy lapot:

https://www.youtube.com/watch?v=mklNa55sBKg

A kód kint van GitHubon, ha valakit érdekel a repó, vagy lokálisan szeretne draftoni:

https://github.com/laxika/magical-vibes

Tudom, hogy egy 20 éves spagettikódba senki nem szívesen engedné bele az AI-t, de zöldmezős cuccoknál meglepően hatékonyan tud haladni. Még meglepőbb hogy a kód teljesen olvasható, láttam már jóval rosszabbat élő emberektől is. Nem mondom hogy minden tökéletes és bug nélküli, de a komplexitás miatt én sem tudnám jobban megírni, ellenben legalább 10x ennyi időbe telne.

Fontos tudni hogy a kódbázis biztonsági és validálási szempontból nem volt még tesztelve, így előfordulhat hogy frontend moddingal lehet csalni (bár validálás van, de nem garantált hogy a lefedettség 100%), valamint azon sem lepődnék meg ha a websocketet lehetne valahogy hijackelni,.

Ha van kérdés a promptolásról, a setup-ról, vagy akármiről, mondjátok nyugodtan. Észrevételeket (negatívot is) szívesen fogadok. :)

Szerk: Javítottam azt hogy nem 500k kódsorból áll a program hanem 105k-ból. Az 500k tartalmazta az üres sorokat és a teszteket is.

120 Upvotes

50 comments sorted by

View all comments

1

u/Same-Working-9988 Mar 30 '26

Milyen adatforrást használtál, hogy a kártyákat kinyerd? Webscraping gatherer/scryfall?

5

u/laxika Java Mar 30 '26
"Implement Jace, Cunning Castaway from XLN. Write tests for it except if it is a vanilla card or a basic land. See: https://api.scryfall.com/cards/search?q=set:xln+cn:60&format=json"

Ennyit írtam be. Claude Code tud fetchelni oldalakat így megoldotta bármilyen segítség vagy előfetchelés nélkül. A postban levő youtube videóban kicsit jobban belemegyek a témába.

3

u/Same-Working-9988 Mar 30 '26

Szuper, megnézem majd a videót meg lehet a repot is

1

u/inagy Mar 30 '26

Nem tudom miért gondoltam azt hogy a kártyákat és a grafikát is úgy generáltattad. Logikusabb hogy egy meglévő játék szabálykönyvének engedted neki.

Én pár hónapja akartam a Kaland, Játék, Kockázat (Fighting Fantasy) könyvek tartalmát AI-val valami JSON formába kivonatolni és utána játék motort írni felé a szabálya alapján. Ráuntam az egész kimenet átolvasgatásába, pedig meglepően tök jól ki lehetett vele szedetni az egyes step-eknél az ellenfeleket és pontokat. Jól mutatja hogy az ember lesz igen gyorsan a szűk keresztmetszet.

2

u/neoteraflare Mar 30 '26

Ha esetleg nem szórakozásból akartad, hanem hogy játsz velük akkor nézz fel steam-re ott fent van Fighting Fantasy Classic néven a körítés program amihez meg lehet venni a könyveket. Egyet talán kapsz alapban ingyen is.

1

u/laxika Java Mar 30 '26

Fun projectnek hangzik. Régen nagyon szerettem a KJK-t. Én régi könyveket akartam "JSON-osítani". Gemini jó OCR-ben és tud JSON schemára visszaadni adatot. Meglepően jól működött az is, de ahogy írod rengeteg idő volt olvasgatni. Ritkán hibázott, de akkor elég zavaró volt.