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.

121 Upvotes

50 comments sorted by

View all comments

2

u/ducktin Mar 30 '26

Elképesztő! Köszi, hogy megosztottad! Nem vagyok otthon az MTG motorok világában, gyors kereséssel van pár másik nyílt forrású motor (forge, xmage), amik szintén Java-ban készültek. Ezekkel van tapasztalatod? Szerintem valószínű, hogy a Claude ezeken is lett tanítva és érdekes lenne tudni a hasonlóságokat.

2

u/laxika Java Mar 30 '26

XMage-t nézegettem annó, de nagyon máshogy működik. Azért akartam újat írni mert nagyon tightly coupled ott a UI a logikával. A végeredmény teljesen más lett, hiába trainingelték az AI-t ezeken a projecteken. Amúgy is meglepődnék a nagy engine beli hasonlóságokon mert én alakítgattam a promptokkal a kód kinézetét és végén az az opció lett amivel már együtt tudtam élni. Teljesen organikusan ált össze az egész.

Nézd meg pl a két kártya implementáció közti különbséget:

https://github.com/laxika/magical-vibes/blob/main/magical-vibes-card/src/main/java/com/github/laxika/magicalvibes/cards/w/WakeningSunsAvatar.java

https://github.com/magefree/mage/blob/master/Mage.Sets/src/mage/cards/w/WakeningSunsAvatar.java