Vibe coding - del 3

Emner på denne side: Computer, Programmering, Spil

Jeg har netop passeret en måneds jubilæet på mit vibe-coding projekt, og er jeg gået død? Overhovedet ikke. Tværtimod har jeg efterhånden et spil med ret omfattende arkitektur. Prøv at se nedenfor hvad vi kan efterhånden.

 

Kort
Vi brugte rigtig lang tid på at danne en spilverden og næsten lige så lang tid på et system til fraktioner og hvordan de kan kæmpe frem og tilbage på en realistisk måde.
Byer
Byalgoritmen kæmpede vi meget med. Min egen fungerede, men gav ikke et særlig spændende resultat. Og det faldt sammen med, at den nye Astra-model udkom fra OpenAI, så jeg valgte denne model og bad den læse en studieopgave om at generere en by, og så nåede vi hertil.
Turbaseret kamp
Jeg har pillet rigtig meget med kampsystemet, og konceptet "kill your darlings", og det nærmer sig noget som faktisk begynder at være sjovt (hvis jeg selv skal sige det).
Udstyr
Der er selvfølgelig masser af udstyr.
Fraktioner og forhold
Der er syv fraktioner i spillet, og man har et forhold til dem alle - både hvor berygtet man er, og om det er for godt eller skidt.

Det var sjovt, at lave algoritmen som dannede verdenskortet. Jeg havde mange diskussioner med AI’en, og vi lavede begge nogle ting som ikke rigtig virkede så godt i praksis. Men vi kom langsomt til et godt resultat. Landmasserne stod AI’en for og det sad lige i skabet. Herefter baksede vi en del med floder og søer, og til sidst byer og ikke mindst veje imellem byer, hvor det endte med, at være mig som beskrev den bedste algoritme og så havde vi pludseligt et verdenskort som kunne genereres i alle mulige udformninger.

Og så kom endnu et af de magiske AI-momenter, da jeg spurgte om den ikke lige kunne lave en fremvisning i 3D og vupti – det tog under 60 sekunder. Vi talte lidt om nogle bjerge som var for høje og nogle byer som lå under vand, og langsomt fik vi styr på det hele. Vi indførte hurtigt, at man kunne rejse på kortet og en A* rutealgoritme var noget den lige kunne vifte ud af ærmet.

3D-kort
At få et kort i 3D var så let som at bede om det. Kunne jeg kode det selv? Ja, det kunne jeg nok. Er jeg erfaren i 3D-grafik? Nej, absolut ikke.
Dag og nat
Vi kører en fuld dag/nat cyklus.

Det var omkring her jeg stødte ind i det første problem jeg nogensinde havde haft med AI’en og det startede med at min computer pludselig crashede midt i det hele, og da den kom tilbage online, så kunne AI’en pludseligt ikke ændre i projektets filer mere.

Og her fik man associationer til de hackerangreb man har set i nyhederne, for AI’en fandt hurtigt ud af, at den stadig kunne betjene GIT, så for at komme rundt om de manglende skriverettigheder, begyndte AI’en i stedet at lave patch-filer til GIT med sine ændringer og brugte så GIT til at introducere sine ændringer i filerne og vupti var den kommet rundt om den manglende adgang.

Ved hjælp at en anden AI (Claude) fandt jeg dog frem til, at den fil som indeholdt process-ID’et på Codex’ sandbox-proces var blevet korrupt, og ved at slette denne fil, fik vi naturlig adgang til filerne igen.

For at visualisere produktivitet, så har jeg lavet en graf over antal linjer jeg har skrevet i instrukser som efterhånden nærmer sig 5.000 linjer (rød), men på den anden side, kan jeg se, at det har genereret tæt på 25.000 linjers kode (blå), så alene i tastearbejde, så er der tale om en produktivitetsfaktor på 5x.

 

Og det er jo kun den halve sandhed, for det er jo ikke altid vi har ramt rigtigt, så hvis jeg i stedet udvider min graf til at vise samtlige kodeændringer, dvs. også linjer som er blevet fortrudt og genbearbejdet, så nærmer vi os i stedet 40.000 (grøn) hvilket vil sige en faktor 8x og der er da også en del af md-filerne som er skrevet af AI’en, så mon ikke faktor 10x er et meget godt bud?

 

Der er mange der har spurgt om de ikke må prøve spillet, og selvfølgeligt. Download her (til PC). Der er stadig langt i mål, men du kan oprette et nyt spil og når den har snurret noget tid på at danne en ny verden, kan du lave en karakter, og så er du droppet midt i verden. Hvis du går ind i en by, så vil du starte spillets første og eneste mission, som er et bandit-angreb. Du kan gennemføre den ved at finde banditternes lejr og dræbe deres leder.

Du kan også rejse rundt i verden og blive overfaldet af tilfældige monstre, som nok ikke er særlig vel-afbalancerede, eller købe lidt udstyr i de lokale butikker.

Lad os se hvor vi er om endnu en måned!