Recherche de site Web

J'ai essayé de coder un jeu avec ChatGPT, voici comment ça s'est passé


Points clés à retenir

  • Les moteurs de jeu compris par ChatGPT conviennent au codage de prototypes de jeux.
  • L'assistance au codage de ChatGPT nécessite une bonne compréhension du moteur de jeu utilisé.
  • Attendez-vous à ce que ChatGPT fournisse des solutions proches, mais pas exactes, aux problèmes de codage. Vous devez toujours examiner et réviser le code fourni par ChatGPT.

L’IA est le nouveau mot à la mode dont tout le monde semble parler. Même les téléphones disposent d'applications d'IA entièrement implémentées, mais vous pouvez faire bien plus avec des outils comme ChatGPT, notamment coder un jeu. Je développe des jeux depuis près d'une décennie, j'ai même publié quelques projets et participé à quelques game jams sur Itch.

Lorsque j'ai découvert ChatGPT, la première chose que j'ai voulu faire était de voir si je pouvais l'utiliser dans le développement de jeux. Comme toujours, ChatGPT est désireux d'aider et se sent presque comme le stagiaire le plus passionné au monde.

ChatGPT peut-il coder un jeu pour vous ?

Il apparaît rapidement que la volonté de GPT de vous apprendre à coder un jeu est bien intentionnée, mais nécessite que vous compreniez un peu ce que vous faites. En tant que développeur de jeux amateur depuis plus d’une décennie, je connais un peu le codage d’un jeu. En utilisant GPT pour m'aider, je voulais voir à quel point il était sophistiqué pour produire un prototype de jeu jouable.

Il comprend certainement les moteurs de jeu

Un moteur de jeu est ce qu'un développeur utilise pour créer un jeu. Plusieurs moteurs de jeu sont disponibles, notamment Unreal Engine, Godot et Unity. En tant que personne connaissant bien Unity, j'ai décidé de l'utiliser comme moteur de développement. J'ai posé quelques questions générales (dont je connais la réponse) pour m'assurer que ChatGPT ne commencerait pas à halluciner à propos de mon moteur de jeu.

Après avoir vérifié qu'il savait au moins ce qu'il faisait, j'ai décidé de donner le cadre de mon projet, qui comprenait :

  • Génération aléatoire d'un fond défilant
  • Avoir un personnage joueur contrôlé par des boutons directionnels, avec des boutons de souris pour tirer
  • Un système de points avec un classement
  • Une quantité infinie d'ennemis pour que les joueurs puissent jouer avec désinvolture

ChatGPT a été très utile en proposant des solutions de code pour certaines des choses dont j'aurais besoin pour créer ce jeu. Par exemple, je lui ai demandé un code pour un projectile que je tirerais depuis la position du joueur lorsqu'il appuie sur le bouton « Tire », et cela m'a donné ceci :

using UnityEngine;
public class Projectile : MonoBehaviour
{
    public float speed = 10f; // Adjust this value to control projectile speed
    void Start()
    {
        // Move the projectile forward in its local space (assuming it's facing right)
        GetComponent<Rigidbody2D>().velocity = transform.right * speed;
    }
    void OnTriggerEnter2D(Collider2D other)
    {
        // Check if the projectile collides with an enemy or other objects
        if (other.CompareTag("Enemy"))
        {
            // Handle enemy damage or destruction
            Destroy(other.gameObject); // Destroy the enemy
            Destroy(gameObject); // Destroy the projectile
        }
        else if (other.CompareTag("Wall"))
        {
            // Destroy the projectile if it collides with a wall
            Destroy(gameObject);
        }
    }
}

Notamment, cela m'a donné du code bien commenté afin que je puisse suivre en tant que programmeur débutant. De nombreux endroits suggèrent que vous pourriez apprendre à coder à l’aide de l’IA, et l’inclusion de code bien commenté en fait partie. Vous n'aurez pas à vous inquiéter s'il y a des erreurs dans votre code si vous pouvez les retracer commentaire par commentaire. Cependant, lors de l'utilisation de GPT pour créer un jeu, j'ai rencontré plusieurs problèmes qui pourraient vaincre un nouveau venu dans le développement de jeux.

ChatGPT est loin d'être parfait

Les LLM sont aussi bons (ou aussi mauvais) que les invites que leur donne l'utilisateur. Par exemple, un utilisateur pourrait facilement générer des personnages de type anime avec MidJourney en incluant quelques mots pour clarifier le résultat final de l'invite. Cependant, lors de la création d'un jeu avec ChatGPT, j'ai constaté qu'il y avait des moments où le moteur ne captait tout simplement pas ce que je mettais en place.

Dans cet exemple, j'ai rencontré un problème avec l'apparition de mes projectiles, toutes les "balles" étant déviées lorsque le joueur bouge. Bien que cela puisse créer des modèles de jeu intéressants, j'ai décidé de lui demander de résoudre le problème et il a suggéré une solution. Malheureusement, le correctif n'a pas fonctionné.

J'ai finalement résolu le problème moi-même, mais cela a mis en évidence un problème majeur lié à l'utilisation de ChatGPT pour coder un jeu : il y a certaines choses qu'il ne connaît pas.

J'ai finalement mis en place le jeu en utilisant quelques suggestions de GPT concernant le score persistant ainsi que l'algorithme de génération aléatoire et le défilement de l'arrière-plan du jeu. Vous pouvez jouer au jeu final ici.

Est-ce que ça marche avec d'autres moteurs de jeu ?

Je sais que ChatGPT était très bon avec Unity une fois que j'ai pu résoudre certains des problèmes que j'ai rencontrés ci-dessus. Cependant, je me demandais comment le codage d'un jeu avec ChatGPT fonctionnerait pour un moteur moins populaire comme Godot. Je ne suis pas vraiment un expert de Godot, je l'ai beaucoup moins utilisé que Unity. J'ai décidé de poser quelques questions à ChatGPT :

Pour ceux qui utilisent Godot régulièrement, le problème est immédiatement évident. ChatGPT a arrêté d'apprendre en 2021 ou à peu près (du moins pour la version gratuite). Le script que GPT m'a donné était basé sur sa connaissance de Godot 2.x, qui est une version très obsolète de la version 4.x actuelle. Le problème flagrant est l’utilisation de KinematicBody2D, qui a été remplacé par CharacterBody2D dans les itérations ultérieures du langage.

De quelles compétences avez-vous besoin pour coder un jeu avec ChatGPT ?

Si vous envisagez de créer le prochain Legend of Zelda : Breath of the Wild en utilisant ChatGPT, vous devriez probablement modérer vos attentes. Vous devez avoir une bonne compréhension du moteur dans lequel vous travaillez pour utiliser ChatGPT comme assistant de codage.

D'autres assistants comme Microsoft Copilot pourraient être meilleurs avec le code général et pourraient aider dans une plus grande mesure. Le gros problème est que ces LLM examinent un problème abstrait et le voient sans le voir réellement.

En langage plus simple, vous savez à quoi devrait ressembler le jeu que vous créez et comment les choses doivent se comporter. Vous pouvez expliquer à ChatGPT ce que vous voulez, et cela vous donnera quelque chose de proche (mais pas tout à fait) de ce dont votre jeu a besoin. Pour qu'il se comporte comme vous le souhaitez, vous devrez manipuler le code que GPT vous donne.

Devriez-vous coder un jeu avec ChatGPT ?

Le développement de jeux est un domaine complexe, mais grâce à des moteurs comme ceux mentionnés ci-dessus, il est beaucoup plus accessible au grand public. Un développeur expérimenté pourrait passer quelques heures à créer un jeu qui fonctionne et qui contient tout ce qu'il souhaite.

Ce projet particulier m'a pris au total 48 heures du début à la fin. Plus le jeu est complexe, plus cela demandera du temps et des efforts. Cela ne compte pas le temps que vous auriez à consacrer à la recherche et au développement d’actifs. Cela pourrait devenir un projet assez important.

Si vous décidez de coder un jeu avec l'assistance ChatGPT, voici quelques points à garder à l'esprit :

  • ChatGPT peut commettre des erreurs de code.
  • ChatGPT peut vous fournir du code obsolète, vous obligeant à passer des heures à rechercher un correctif sur Google.
  • L'IA ne peut pas encore créer d'actifs de jeu (pas de bons actifs 2D, de toute façon), vous devrez donc vous procurer des actifs séparément.
  • Certaines des suggestions que ChatGPT vous donne ne fonctionneront pas et pourraient vous conduire à une impasse, vous obligeant à repenser votre mise en œuvre.

Si quelqu'un me demandait aujourd'hui s'il pouvait apprendre à coder un jeu avec ChatGPT à partir de zéro sans aucune connaissance du moteur, je devrais lui répondre non.

Articles connexes