Un guide prudent pour ceux désireux de l’essayer
La programmation est parfois difficile. Si vous apprenez un nouveau langage de programmation ou faites quelque chose que vous n’avez jamais fait auparavant, cela peut être carrément intimidant. En plus des tutoriels et de la documentation, il est désormais possible d’utiliser les chatbots comme ressource de programmation. Entrer ChatGPT.
Si vous n’êtes pas familier avec ChatGPT, il s’agit d’un chatbot Large Language Model développé par OpenAI. Il a été formé sur un énorme corpus de texte en ligne, y compris des didacticiels de code et de programmation librement disponibles. Cela signifie qu’il peut « rechercher » et composer une solution passable pour les tâches de programmation courantes.
Pourtant, le code fourni par le Large Language Model est souvent erroné ou incomplet. Comment peut-il être une ressource fiable alors?
Pour les cas d’utilisation les plus courants, le code que vous obtiendrez de ChatGPT sera solide. Il aura même des commentaires et ChatGPT fournira une explication passable pour son code. Attention, copier et coller du code que vous ne comprenez pas peut entraîner encore plus de confusion. Il est préférable d’utiliser le chatbot pour faire un plan de mise en œuvre, puis d’aller écrire le code vous-même.
Par exemple, supposons que vous souhaitiez créer un jeu de tir à double manche dans Unity. Vous voulez que cela fonctionne plus ou moins comme La Liaison d’Isaac.
Vous pouvez procéder de deux manières :
- Demandez à ChatGPT d’écrire chaque script individuel pour vous.
- Demandez à ChatGPT une approche générale et écrivez le code vous-même.
Le fait que le chatbot écrive tout pour vous peut conduire à un code fonctionnel, mais vous êtes moins susceptible de savoir ce qui se passe. Copier et coller du code signifie également que vous n’apprendrez rien du processus. Écrire le code vous-même entraîne un apprentissage par transfert. C’est ainsi que vous améliorez vos compétences en programmation pour les tâches futures.
Au lieu de demander au chatbot d’écrire chaque script, vous devriez plutôt demander « Comment feriez-vous un système d’inventaire comme celui de The Binding of Isaac » ? ChatGPT fera alors une liste de tâches pour vous :
Pour créer un système d’objets similaire à celui utilisé dans The Binding of Isaac, vous pouvez suivre ces étapes :
- Créez une classe appelée Item qui représente un objet dans le jeu. Cette classe doit inclure des propriétés et des méthodes qui définissent le nom, la description, les effets et toute autre information pertinente de l’élément. Vous pouvez également inclure une méthode Use qui applique les effets de l’élément lorsqu’il est utilisé.
- Créez un script appelé ItemSystem qui gère l’inventaire du joueur et gère l’utilisation des objets. Ce script doit inclure une liste de tous les éléments du jeu, une liste des éléments de l’inventaire du joueur et une référence au personnage du joueur. Vous pouvez également inclure des fonctions pour ajouter des objets à l’inventaire du joueur, supprimer des objets de l’inventaire du joueur et utiliser des objets de l’inventaire du joueur.
- Attachez le script ItemSystem à un objet de jeu dans votre scène Unity et remplissez la liste de tous les éléments avec les éléments disponibles dans votre jeu. Vous pouvez le faire en créant des préfabriqués pour chaque élément et en les ajoutant à la liste dans l’éditeur Unity.
- Créez une interface utilisateur (UI) pour afficher l’inventaire du joueur. Vous pouvez utiliser le système d’interface utilisateur d’Unity pour créer des boutons pour chaque élément de l’inventaire du joueur et lier chaque bouton à une fonction qui utilise l’élément correspondant lorsqu’il est cliqué.
- Faites apparaître des objets dans le monde du jeu et permettez au joueur de les ramasser. Vous pouvez le faire en créant des préfabriqués pour chaque élément et en les faisant apparaître dans le monde du jeu à des endroits spécifiques ou sous forme de gouttes d’ennemis. Lorsque le joueur entre en collision avec un objet, vous pouvez appeler la fonction AddItem pour ajouter l’objet à son inventaire.
- Implémentez les effets de l’objet. Vous pouvez utiliser la méthode Use de la classe Item pour appliquer les effets de chaque élément lorsqu’il est utilisé. Vous pouvez également utiliser les systèmes de physique et d’animation intégrés de Unity pour créer des effets visuels pour les éléments.
Même si cela peut suffire pour aller de l’avant et démarrer le projet, vous pouvez utiliser ChatGPT pour préciser les spécificités de la conception.
Rappelez-vous, le chatbot est ne pas sensible. Cela signifie qu’il n’a réfléchi à aucune de ses suggestions. Il fait sa meilleure estimation en fonction de son ensemble d’entraînement. Bien que les résultats semblent souvent convaincants, il est primordial que vous examiniez la conception du chatbot et que vous posiez des questions de clarification.
Dans ce cas, vous voulez que votre jeu prenne en charge les synergies d’objets, vous demandez donc au chatbot de vous aider avec cette partie, car elle n’est pas mentionnée dans la conception.
Pour gérer les synergies d’objets dans un système d’objets comme celui utilisé dans The Binding of Isaac, vous pouvez suivre ces étapes :
- Déterminez quels éléments ont des synergies les uns avec les autres. Vous pouvez le faire en créant une liste de paires d’éléments qui ont des synergies ou en ajoutant une propriété de synergie à chaque élément qui répertorie les autres éléments avec lesquels il a une synergie.
- Dans le script ItemSystem, créez une fonction qui vérifie les synergies lorsqu’un élément est utilisé. Cette fonction doit parcourir l’inventaire du joueur et vérifier si l’un des autres objets a une synergie avec l’objet utilisé.
- Si une synergie est trouvée, appliquez l’effet de synergie en plus de l’effet d’objet normal. Vous pouvez le faire en créant une fonction distincte pour chaque effet de synergie ou en utilisant une instruction switch pour appliquer l’effet approprié en fonction de la combinaison d’éléments.
- Vous pouvez également envisager d’ajouter un élément d’interface utilisateur qui affiche les synergies actuellement actives, ou en mettant en évidence les éléments de l’inventaire qui ont une synergie avec l’élément actuellement sélectionné.
En examinant la conception suggérée par ChatGPT ci-dessus, vous remarquez qu’il ne me donne pas de structures de données spécifiques, mais plutôt « faire une liste ». Demandez à ChatGPT de vous aider à améliorer les performances :
Voici quelques façons d’améliorer les performances d’un système d’objets comme celui utilisé dans The Binding of Isaac :
- Utilisez la mise en commun d’objets pour réutiliser des objets de jeu d’objets au lieu de les créer et de les détruire constamment. Cela peut aider à réduire le nombre d’objets devant être gérés par le système et à améliorer les performances.
- Utilisez un dictionnaire ou une table de hachage pour stocker les éléments dans la liste allItems, au lieu d’utiliser une liste. Cela peut améliorer les performances des références et des recherches, en particulier si vous avez un grand nombre d’éléments.
- Utilisez un dictionnaire ou une table de hachage pour stocker l’inventaire du joueur, au lieu d’utiliser une liste. Cela peut améliorer les performances des recherches et des recherches, en particulier si l’inventaire du joueur est important.
- Utilisez un Dictionary ou HashSet pour stocker les synergies d’éléments, au lieu d’utiliser une List. Cela peut améliorer les performances des références et des recherches, en particulier si vous disposez d’un grand nombre de synergies.
- Évitez d’utiliser des boucles foreach pour parcourir l’inventaire du joueur ou la liste allItems. Au lieu de cela, utilisez une boucle for régulière et mettez en cache la longueur de la liste pour éviter de la recalculer à chaque itération.
- Utilisez une instruction switch pour appliquer les effets des éléments et des synergies, au lieu d’utiliser une série d’instructions if. Cela peut être plus rapide, surtout si vous avez un grand nombre d’objets ou de synergies.
Enfin, vous êtes curieux de savoir comment vous pouvez éviter de faire ces calculs d’effet à chaque image :
Pour éviter de calculer les effets des objets et les synergies à chaque image, vous pouvez suivre ces étapes :
Dans le ItemSystem
script, créez un indicateur booléen appelé dirty qui indique si l’inventaire du joueur a changé depuis la dernière image. Vous pouvez définir cet indicateur sur vrai chaque fois qu’un élément est ajouté ou supprimé de l’inventaire du joueur, et sur faux lorsque vous avez terminé de traiter les changements d’inventaire.
public bool dirty;
Dans le Update
fonction, vérifiez la valeur du drapeau sale. Si c’est vrai, traitez les modifications apportées à l’inventaire du joueur et appliquez les effets ou synergies nécessaires. S’il est faux, ignorez cette étape.
void Update()
{
// Check if the player's inventory has changed
if (dirty)
{
// Process the changes to the player's inventory and apply any necessary effects or synergies
ProcessInventoryChanges();
// Reset the dirty flag
dirty = false;
}
}void ProcessInventoryChanges()
{
// Iterate over the player's inventory and apply any necessary effects or synergies
}
Dans le UseItem
fonction, définissez l’indicateur sale sur vrai avant d’utiliser l’élément. Cela garantira que l’inventaire du joueur est traité et que les effets ou les synergies sont appliqués sur l’image suivante.
public void UseItem(Item item)
{
// Set the dirty flag to true
dirty = true;
// Use the item
item.Use(player);
}
En suivant ces étapes, vous pouvez éviter de calculer les effets et les synergies des éléments à chaque image, ce qui peut améliorer les performances.
Ici, ChatGPT fournit des extraits de code. Utilisez-les comme exemples, mais ne les copiez pas et ne les collez pas dans votre propre code. Vous pouvez itérer sur la conception jusqu’à ce que vous ayez répondu à vos questions et préoccupations, ou jusqu’à ce que vous pensiez en avoir assez pour écrire du code.
Une étape facultative mais recommandée dans le processus consiste à prendre les suggestions de ChatGPT et à les transformer en pseudocode. Vous pouvez également créer un diagramme pour déterminer à quoi ressemblera le système final. Lors de la synthèse des informations, réfléchissez de manière critique au fonctionnement du système. Y a-t-il des pièces manquantes ? Y a-t-il quelque chose qui ne fonctionne pas ? Vous pouvez soit résoudre ces problèmes vous-même, soit demander conseil à ChatGPT.
Lorsque vous avez votre conception finale, vous pouvez commencer à coder. Assurez-vous d’écrire le code vous-même. Consultez la documentation de l’API et demandez à ChatGPT de clarifier les questions, mais ne copiez pas le code qu’il vous donne. Écrire le code vous-même est la seule façon d’apprendre à le faire au lieu de compter sur un chatbot.
La programmation assistée par l’IA est l’avenir de la programmation, que cela nous plaise ou non. Il est important d’apprendre à utiliser ces outils puissants, mais il est tout aussi important de nous protéger de la complaisance. Un chatbot Large Language Model est un moteur de recherche super puissant, mais pas beaucoup plus. Utilisez-le avec prudence.