Jag försökte koda ett spel med ChatGPT, så här gick det

0
5

Nyckelalternativ

  • Spelmotorer som förstås av ChatGPT är lämpliga för kodning av spelprototyper.
  • Kodningshjälp från ChatGPT kräver en anständig förståelse av spelmotorn som används.
  • Förvänta dig att ChatGPT tillhandahåller nära, men inte exakta, lösningar på kodningsproblem. Du måste fortfarande granska och revidera koden som tillhandahålls av ChatGPT.

AI är det nya modeordet som alla verkar prata om. Även telefoner får fullt implementerade AI-applikationer, men det finns mycket mer du kan göra med verktyg som ChatGPT, inklusive kodning av ett spel. Jag har utvecklat spel i nästan ett decennium, och har till och med släppt några projekt och deltagit i ett par game jams på Itch.

När jag upptäckte ChatGPT var det första jag ville göra att se om jag kunde använda det i spelutveckling. Som alltid är ChatGPT ivriga att hjälpa och känns nästan som världens mest in-it-praktikant.

Kan ChatGPT koda ett spel åt dig?

Det är snabbt uppenbart att GPT:s vilja att lära dig att koda ett spel är välmenande men kräver att du förstår lite om vad du gör. Som någon som har varit en amatörspelutvecklare i mer än ett decennium vet jag lite om att koda ett spel. När jag använde GPT för att hjälpa mig var jag intresserad av att se hur sofistikerat det var för att producera en spelbar spelprototyp.

Det förstår verkligen spelmotorer

En spelmotor är vad en utvecklare använder för att skapa ett spel. Flera spelmotorer är tillgängliga, inklusive Unreal Engine, Godot och Unity. Som någon som känner Unity väl, bestämde jag mig för att använda detta som min utvecklingsmotor. Jag ställde några allmänna frågor (som jag vet svaret på) för att säkerställa att ChatGPT inte skulle börja hallucinera om min spelmotor.

Efter att ha reda ut att den åtminstone visste vad den gjorde, bestämde jag mig för att ge ramarna för mitt projekt, som inkluderade:

  • Slumpmässig generering av en rullande bakgrund
  • Att ha en spelarkaraktär styrd av riktningsknappar, med musknappar för avfyrning
  • Ett poängsystem med en leaderboard
  • Oändligt mycket av fiender, så att spelare kan spela slentrianmässigt

ChatGPT var till stor hjälp för att erbjuda kodlösningar för några av de saker jag skulle behöva för att skapa det här spelet. Till exempel bad jag den om en kod för en projektil som jag skulle avfyra från spelarens position när de träffade "Branden" knappen, och det gav mig detta:

med UnityEngine;

public class Projectile : MonoBehaviour
{
    public flythastighet = 10f; //Justera detta värde för att styra projektilhastigheten

    void Start()
    {
         //Flytta projektilen framåt i sitt lokala utrymme (förutsatt att den är vänd åt höger)
         GetComponent<Rigidbody2D>().velocity = transform.right * hastighet;
    

;   void OnTriggerEnter2D(Collider2D annat)
    {
                  kolliderar med en fiende eller andra objekt
        if (other.CompareTag(“Enemy”))
         {
            //Hantera fiendens skada eller förstörelse
              Destroy(other.gameObject); //Förstör fienden
            Destroy(gameObject); //Förstör projektilen
        }
        om annat CompareTag(“Wall”))
        {
            //Förstör projektilen om den kolliderar med en vägg
            Destroy(gameObject);
        }
  n nbsp; br>}

Noterbart gav det mig välkommenterad kod så att jag kunde följa med som nybörjarprogrammerare. Många ställen tyder på att du kan lära dig att koda med AI, och inkluderingen av välkommenterad kod är en del av det. Du behöver inte oroa dig om det finns fel i din kod om du kan spåra dem kommentar via kommentar. Men när jag använde GPT för att bygga ett spel, stötte jag på flera problem som skulle besegra en nykomling inom spelutveckling.

ChatGPT är långt ifrån perfekt

LLM:er är bara så bra (eller lika dåliga) som de uppmaningar användaren ger dem. En användare kan till exempel enkelt generera karaktärer av animetyp med MidJourney genom att inkludera några ord för att förtydliga promptens slutresultat. Men när jag byggde ett spel med ChatGPT upptäckte jag att det fanns tillfällen då motorn helt enkelt inte tog upp det jag lade ner.

figur>

I det här exemplet stötte jag på ett problem med att skapa mina projektiler, med alla "kulor" avleds när spelaren rör sig. Även om detta kunde skapa några intressanta spelmönster, bestämde jag mig för att be den åtgärda problemet, och det föreslog en lösning. Tyvärr fungerade inte korrigeringen.

Jag så småningom fixade det själv, men det visade på ett stort problem med att använda ChatGPT för att koda ett spel: det finns vissa saker som den inte vet.

Jag satte så småningom ihop spelet med hjälp av några förslag från GPT om den ihållande poängen såväl som algoritmen för slumpmässig generering och rullning efter spelets bakgrund. Du kan spela slutspelet här.

Fungerar det med andra spelmotorer?

Jag vet att ChatGPT var väldigt bra med Unity när jag kunde lösa några av problemen jag stötte på ovan. Jag undrade dock hur att koda ett spel med ChatGPT skulle fungera för en mindre populär motor som Godot. Jag är inte direkt expert på Godot, efter att ha använt det mycket mindre än jag gjorde Unity. Jag bestämde mig för att ställa några frågor till ChatGPT:

GPTs Godot-problem

För dem som använder Godot regelbundet är problemet direkt uppenbart. ChatGPT slutade lära sig 2021 eller däromkring (åtminstone för gratisversionen). Skriptet GPT gav mig var baserat på dess kunskap om Godot 2.x, som är en kraftigt föråldrad version av den nuvarande 4.x-versionen. Det uppenbara problemet är användningen av KinematicBody2D, som ersattes av CharacterBody2D i senare iterationer av språket.

Hur mycket skicklighet behöver du för att koda ett spel med ChatGPT?

Om du funderar på att göra nästa Legend of Zelda: Breath of the Wild med ChatGPT, bör du förmodligen dämpa dina förväntningar. Du måste ha en anständig förståelse för motorn du arbetar i för att använda ChatGPT som kodningsassistent.

Andra assistenter som Microsoft Copilot kanske är bättre med allmän kod och kan hjälpa till i högre grad. Det stora problemet är att dessa LLM:er tittar på ett abstrakt problem, och de ser det utan att faktiskt se det.

På ett enklare språk vet du hur spelet du gör ska se ut och hur saker i det ska bete sig. Du kan förklara det för ChatGPT vad du vill, och det kommer att ge dig något nära (men inte riktigt) vad ditt spel behöver. För att få den att bete sig som du vill att den ska, måste du fiffla med koden som GPT ger dig.

Ska du koda ett spel med ChatGPT?

Spelutveckling är ett komplext område , men tack vare motorer som de som nämns ovan är den mycket mer lättillgänglig för allmänheten. En skicklig utvecklare skulle kunna lägga några timmar på att sätta ihop ett spel som fungerar och har allt de vill ha i sig.

Det här projektet tog mig totalt 48 timmar från början till slut. Ju mer komplext spelet är, desto mer tid och ansträngning kommer det att ta. Det räknar inte hur lång tid du skulle behöva lägga på tillgångsförsörjning och utveckling. Det kan bli ett ganska stort projekt.

Om du bestämmer dig för att koda ett spel med hjälp av ChatGPT, här är några saker att tänka på:

  • ChatGPT kan göra fel i kod.
  • ChatGPT kan ge dig föråldrad kod, vilket kräver att du spenderar timmar på att googla efter en fix.
  • AI kan inte skapa speltillgångar än (inte bra 2D-tillgångar i alla fall) så du måste köpa tillgångar separat.
  • Några av förslagen ChatGPT ger dig kommer inte att fungera och kan leda dig till en återvändsgränd, vilket kräver att du omprövar din implementering.

Om någon frågade mig idag om de kunde lära sig att koda ett spel med ChatGPT från början utan någon som helst kunskap om motorn, skulle jag behöva säga nej.