Ho provato a programmare un gioco con ChatGPT, ecco come è andata

0
4

Concetti chiave

  • I motori di gioco compresi da ChatGPT sono adatti per la codifica di prototipi di gioco.
  • L'assistenza alla codifica da parte di ChatGPT richiede una discreta comprensione del motore di gioco utilizzato.
  • Aspettati che ChatGPT fornisca soluzioni vicine, ma non esatte, ai problemi di codifica. Devi comunque rivedere e revisionare il codice fornito da ChatGPT.

L’intelligenza artificiale è la nuova parola d’ordine di cui tutti sembrano parlare. Anche i telefoni stanno ricevendo applicazioni AI completamente implementate, ma c'è molto di più che potresti fare con strumenti come ChatGPT, inclusa la codifica di un gioco. Sviluppo giochi da quasi un decennio e ho anche pubblicato alcuni progetti e partecipato a un paio di game jam su Itch.

Quando ho scoperto ChatGPT, la prima cosa che volevo fare era vedere se potevo usarlo nello sviluppo di giochi. Come sempre, ChatGPT è desideroso di aiutare e si sente quasi come lo stagista più esperto del mondo.

ChatGPT può codificare un gioco per te?

È subito evidente che la volontà di GPT di insegnarti a programmare un gioco è ben intenzionata, ma richiede che tu capisca un po' quello che stai facendo. Essendo uno sviluppatore di giochi amatoriale da più di un decennio, ne so qualcosa sulla programmazione di un gioco. Utilizzando GPT per aiutarmi, ero interessato a vedere quanto fosse sofisticato produrre un prototipo di gioco giocabile.

Capisce sicuramente i motori di gioco

Un motore di gioco è ciò che uno sviluppatore utilizza per creare un gioco. Sono disponibili diversi motori di gioco, tra cui Unreal Engine, Godot e Unity. Essendo una persona che conosce bene Unity, ho deciso di utilizzarlo come motore di sviluppo. Ho posto alcune domande generali (di cui conosco la risposta) per assicurarmi che ChatGPT non iniziasse ad avere allucinazioni sul mio motore di gioco.

Dopo aver accertato che almeno sapesse cosa stava facendo, ho deciso di fornire la struttura per il mio progetto, che includeva:

  • Generazione casuale di uno sfondo a scorrimento
  • Avere un personaggio giocante controllato da pulsanti direzionali, con pulsanti del mouse per sparare
  • Un sistema di punti con una classifica
  • Una quantità infinita di nemici, così i giocatori possono giocare casualmente

ChatGPT è stato molto utile nell'offrire soluzioni di codice per alcune delle cose di cui avrei avuto bisogno per creare questo gioco. Ad esempio, gli ho chiesto un codice per un proiettile che avrei sparato dalla posizione del giocatore quando colpiva la casella “Fire” pulsante e mi ha dato questo:

using UnityEngine;

public class Projectile: MonoBehaviour
{
    public float speed = 10f; //Regola questo valore per controllare la velocità del proiettile

    void Start()
    {
         //Sposta il proiettile in avanti nel suo spazio locale (assumendo che sia rivolto a destra)
        GetComponent<Rigidbody2D>().velocity = trasforma.right * speed;
    

&nbsp ;   void OnTriggerEnter2D(Collider2D altro)
    {
        //Controlla se il proiettile si scontra con un nemico o altri oggetti
        if (other.CompareTag(“Enemy”))
         {
            //Gestisci i danni o la distruzione dei nemici
             Distruggi(other.gameObject); //Distruggi il nemico
            Destroy(gameObject); //Distrugge il proiettile
        
        else if (other. ConfrontaTag(“Muro”))
        {
            //Distruggi il proiettile se entra in collisione con un muro
             Distruggi(gameObject);
        
    < br>}

In particolare, mi ha fornito un codice ben commentato in modo da poterlo seguire come programmatore principiante. Molti luoghi suggeriscono che potresti imparare a programmare utilizzando l'intelligenza artificiale e l'inclusione di codice ben commentato ne fa parte. Non dovrai preoccuparti se ci sono errori nel tuo codice se puoi rintracciarli commento per commento. Tuttavia, quando utilizzavo GPT per creare un gioco, ho riscontrato diversi problemi che avrebbero potuto ostacolare un nuovo arrivato nello sviluppo del gioco.

ChatGPT è tutt'altro che perfetto

Gli LLM sono buoni (o cattivi) quanto le istruzioni fornite dall'utente. Ad esempio, un utente potrebbe facilmente generare personaggi di tipo anime con MidJourney includendo alcune parole per chiarire il risultato finale del prompt. Tuttavia, durante la creazione di un gioco con ChatGPT, ho scoperto che c'erano momenti in cui il motore semplicemente non rilevava ciò che stavo scrivendo.

In questo esempio, ho riscontrato un problema con la generazione dei miei proiettili, con tutti i “proiettili” che venivano deviati quando il giocatore si muoveva. Sebbene ciò potesse creare alcuni interessanti schemi di gioco, ho deciso di chiedergli di risolvere il problema e mi ha suggerito una soluzione. Sfortunatamente, la soluzione non ha funzionato.

Alla fine l'ho risolto da solo, ma ha evidenziato un problema importante nell'uso di ChatGPT per codificare un gioco: ci sono alcune cose che non sa.

Alla fine ho messo insieme il gioco utilizzando alcuni suggerimenti di GPT sul punteggio persistente, sull'algoritmo di generazione casuale e sullo scorrimento dello sfondo del gioco. Puoi giocare alla partita finale qui.

Funziona con altri motori di gioco?

So che ChatGPT è stato molto bravo con Unity una volta che ho potuto risolvere alcuni dei problemi che ho riscontrato sopra. Tuttavia, mi chiedevo come avrebbe funzionato la codifica di un gioco con ChatGPT per un motore meno popolare come Godot. Non sono esattamente un esperto di Godot, avendolo usato molto meno di Unity. Ho deciso di porre alcune domande a ChatGPT:

Problema Godot di GPT

Per chi usa Godot regolarmente, il problema è subito ovvio. ChatGPT ha smesso di imparare nel 2021 o giù di lì (almeno per la versione gratuita). Lo script che GPT mi ha dato si basava sulla sua conoscenza di Godot 2.x, che è una versione fortemente obsoleta dell'attuale versione 4.x. Il problema evidente è l'uso di KinematicBody2D, che è stato sostituito da CharacterBody2D nelle iterazioni successive del linguaggio.

Quanta abilità ti serve per programmare un gioco con ChatGPT?

Se stai pensando di realizzare il prossimo Legend of Zelda: Breath of the Wild utilizzando ChatGPT, probabilmente dovresti moderare le tue aspettative. Devi avere una buona conoscenza del motore su cui stai lavorando per utilizzare ChatGPT come assistente di codifica.

Altri assistenti come Microsoft Copilot potrebbero essere migliori con il codice generale e potrebbero aiutare in misura maggiore. Il grosso problema è che questi LLM stanno esaminando un problema astratto e lo vedono senza vederlo realmente.

In un linguaggio più semplice, sai come dovrebbe apparire il gioco che stai realizzando e come dovrebbero comportarsi le cose al suo interno. Puoi spiegare a ChatGPT quello che vuoi e ti darà qualcosa di vicino (ma non del tutto) a ciò di cui ha bisogno il tuo gioco. Per farlo funzionare nel modo desiderato, dovrai armeggiare con il codice che GPT ti fornisce.

Dovresti codificare un gioco con ChatGPT?

Lo sviluppo di giochi è un campo complesso , ma grazie a motori come quelli sopra citati è molto più accessibile al grande pubblico. Uno sviluppatore esperto potrebbe dedicare qualche ora a mettere insieme un gioco che funzioni e contenga tutte le cose che desidera.

Questo particolare progetto mi ha richiesto un totale di 48 ore dall'inizio alla fine. Più il gioco è complesso, maggiore sarà il tempo e lo sforzo necessari. Senza contare la quantità di tempo che dovresti dedicare all'approvvigionamento e allo sviluppo delle risorse. Potrebbe diventare un progetto piuttosto grande.

Se decidi di codificare un gioco con l'assistenza ChatGPT, ecco alcune cose da tenere a mente:

  • ChatGPT può commettere errori nel codice.
  • ChatGPT potrebbe fornirti codice obsoleto, richiedendoti di passare ore a cercare su Google una soluzione.
  • L'intelligenza artificiale non può ancora creare risorse di gioco (non buone risorse 2D, comunque), quindi dovrai procurarti le risorse separatamente.
  • Alcuni dei suggerimenti forniti da ChatGPT non funzioneranno e potrebbero portarti a un vicolo cieco, richiedendoti di riconsiderare la tua implementazione.

Se qualcuno oggi mi chiedesse se può imparare a programmare un gioco con ChatGPT da zero senza alcuna conoscenza del motore, dovrei dire di no.