Mazy – ChatGPT gör ett enkelt 3D-spel i Doom-stil

Provade att be ChatGPT4 att göra ett enklare labyrintspel i Wolfenstein / Doom-anda. Det blev ett interaktivt sampel där jag kunde gå omkring med vanliga WASD och styra kameran med musen. OBS det fungerar inte på mobiler.

Här är spelet som det ser ut just nu. Själva labyrinten är inne i kuben.

Här kan ni prova “spelet”. Ni går omkring med tangenterna WASD och styr med musen. Notera att man inte går i den riktning man tittar (som är normalt i spel) utan man rör sig alltid i samma riktning som man trycker.

Det tog några försök att få till något som fungerade men ChatGPT hjälpte mig väldigt bra på vägen och förklarade de olika ändringarna med både vad och vart de skulle in i koden.

Mazy

Jag gav den följande instruktioner först och den valde själv programmeringsspråk (finns inte så många alternativ till JavaScript för detta) och den valde biblioteket three.js (det finns många olika att välja på). Under det kan ni se delar av svaret inklusive den första delen av förklaringen.

Skapa ett 3D-spel som Wolfenstein eller Doom. Gör det i en enda HTML-fil utan förklaringar. Kameran ska vara ut första-person och jag ska kunna gå omkring. Gätt olika färger och bilder på väggarna.

ChatGPT har fortfarande inte access till omvärlden så alla länkar till texturer (bilder) på väggar och golv blev fel. Dessa har jag fixat manuellt genom att bara göra om länkarna till bilder jag hittat på nätet och som liknar 3D-spels-miljöer.

Kontrollerna i spelet är inte som ett riktigt spel men det kan säkert ChatGPT också fixa.

Fixa fel

Jag fick som sagt några fel innan jag kunde “spela” och här kan ni se några iterationer med ChatGPT.

Först fick jag ett fel med initieringen av att låsa muspekaren i fönstret.

Sedan lade den själv till lite extra kod för att göra rörelserna jämnare. Dock gjorde ChatGPT lite fel (igen) men det fixade den när jag frågade fint.

Röra sig snabbare

Sedan ville jag kunna röra mig snabbare så jag frågade om det.

Kastat om höger och vänster

Sedan upptäckte jag att den hade växlat höger och vänster i rörelsen. Ett fel som nog många programmera också gör ibland.

Börja inne i labyrinten

Slutligen ville jag börja inne i labyrinten och det fixade ChatGPT åt mig.

Inte krocka med väggarna

Slutligen bad jag den om kod för att inte krocka med väggarna. Jag fick något som ser rätt ut men det fungerar inte riktigt utan istället så går man långsammare genom väggarna. Blev lite cool effekt. Jag tar med svaret här i alla fall som exempel.

Notera kommentaren i slutet av svaret om hur jag bör gå vidare med mer avancerade bibliotek med en fysikmotor.

Slutsats

ChatGPT4 är klart bättre på att programmera och detta “spel” den skapade är helt klart imponerande. Det tog mig ca 15 minuter att komma så här långt och även om jag är en väldigt erfaren programmerare (40+ år som programmerare) så hade jag inte fixat detta på 15 minuter. Programmering tar tid även om man är erfaren.

ChatGPT blir här verkligen är hjälplärare som kan svara på mina frågor och hjälpa komma vidare och förklara så jag också lär mig något. Jag har tidigare använt GitHub CoPilot (som använder AI-hjärnan Codex från OpenAI) väldigt mycket och där får man förslag på vad som ska läggas in men man får inte möjligheten att ställa frågor och det blir inte samma möjlighet till lärande med CoPilot.

Jag är övertygad om att ChatGPT kommer att kunna hjälpa många att lära sig programmera.

Ps. ChatGPT4 släpptes bara för någon dag sedan och för att få access måste man betala för ChatGPT Plus. ChatGPT4 kan resonera mycket bättre men är samtidigt mycket långsammare. När den genererade programkoden ovan så fick jag vänta en stund. Nästan om att titta på någon som programmerar i realtid. Det är visserligen bra för jag satt och läste koden medan ChatGPT4 producerade den. Lärande igen…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.