Workflow de projet GMS2 : de l'ouverture du dossier au test en jeu
03
Le scénario
Un projet où la caméra tremble
Beaucoup de gens disent encore « GMS2 » quand ils parlent de GameMaker d'aujourd'hui. Imaginons que ton personnage avance et recule et que la caméra tremble, car la position conserve des valeurs décimales. Tu ouvres le dossier du projet, tu décris le symptôme en une phrase et tu laisses PixelTread trouver le code. L'agent cartographie le dossier avec list_dir et glob, lit les scripts de mouvement et de caméra avec read_file, et propose une petite modification sous forme de diff. Rien ne change tant que tu n'as pas validé, donc la première session est aussi un moyen sûr d'apprendre ce que fait chaque outil. La même boucle fonctionne pour la plupart des petits bugs : décrire, lire, examiner, tester. Chaque étape se termine dans l'éditeur, où tu appuies sur Lecture et vois le résultat par toi-même. Si la première correction ne suffit pas, tu décris ce qui a changé et la carte suivante s'appuie sur la précédente. Garde le projet ouvert dans l'éditeur pendant que tu travailles.
01
Ouvrir le dossier
Choisis le dossier de ton projet GameMaker comme dossier de travail du chat, afin que les outils de fichiers puissent voir tes scripts et les fichiers texte du projet. Commence une nouvelle conversation pour chaque bug, ce qui garde chaque échange centré sur un problème et un seul diff. Le dossier de travail est la limite des outils de fichiers, alors pointe-le vers le projet et rien d'autre. Tout ce qui se trouve en dehors de ce dossier n'est pas couvert par les outils de fichiers.
02
Décrire le problème
Écris ce que tu vois et où, par exemple que la caméra tremble quand le joueur se tourne, et mentionne le script si tu le connais. Un symptôme concret donne à l'agent quelque chose qu'il peut rechercher avec grep. Ajoute ce que tu as déjà essayé, car cela empêche l'agent de le répéter. Les phrases courtes fonctionnent bien.
03
Examiner le diff
Lis chaque carte, ouvre le diff et accepte uniquement les lignes que tu comprends. Rejete le reste et explique pourquoi, et l'agent essaiera à nouveau. Le mode Ask first fait une pause avant chaque action qui modifie un fichier, rien n'est donc enregistré à ton insu. Ouvre la carte développée pour voir le diff complet, pas seulement la ligne de résumé.
04
Compiler et tester
Lance ta compilation dans l'éditeur GameMaker, joue la pièce et fais part de ce que tu as vu pour que l'étape suivante parte de faits. Si la compilation échoue, colle le journal dans un fichier dans le dossier et laisse l'agent le lire. Ensuite, note le résultat dans le chat, pour que la prochaine demande ait un point de départ clair. Lance le même test après chaque modification acceptée, dans la même pièce.
Un petit script de mouvement
PixelTread · Arrondir la position● Ask first
Arrondir la position du joueur avant le dessin, pour arrêter les tremblements de la caméra.
read_filescr_move.gmlread
grepdraw_sprite3 matches
edit_filescr_move.gml+2 lines
Shellbuildexit 0
en attente de votre validation avant l’étape suivanteRejeterAccepter
scr_move.gml
// Move an object with the arrow keys
function scr_move(_speed) {
var _r = keyboard_check(vk_right);
var _l = keyboard_check(vk_left);
var _d = keyboard_check(vk_down);
var _u = keyboard_check(vk_up);
x += (_r - _l) * _speed;
y += (_d - _u) * _speed;
// keep the position on whole pixels
x = round(x);
y = round(y);
}
La fonction lit les touches fléchées avec keyboard_check, déplace x et y d'une valeur de vitesse, et arrondit les deux valeurs pour que le sprite soit dessiné sur des pixels entiers. L'arrondi est la correction du tremblement décrit plus haut. Un script comme celui-ci est exactement ce que l'agent peut ouvrir, modifier et afficher sous forme de diff, et tu peux le tester dans une pièce en une minute. Enregistre-le d'abord en tant qu'actif de script, et modifie une ligne à la fois. Demande à l'agent d'ajouter un commentaire au-dessus de chaque modification pour que tu puisses les retrouver plus tard. Les noms génériques comme _speed sont faciles à renommer.
Quatre tâches pour les projets commencés dans GameMaker Studio 2
Apprendre en modifiant tes propres scripts
Les gens demandent souvent comment apprendre vraiment à coder en GameMaker, et une bonne réponse est de modifier de vrais scripts et de regarder ce qui se passe. Ouvre un petit projet et demande à l'agent d'expliquer une ligne de script à la fois. Il lit le fichier avec read_file et cite les noms de fonctions du manuel officiel en utilisant web_search. Puis demande une petite modification, comme une vitesse de marche plus rapide. Lis le diff en mode Ask first, accepte-le, compile et joue. Répète avec une nouvelle modification chaque jour, et laisse l'agent écrire un fichier de notes avec write_file, pour que tu puisses revenir sur ce que chaque modification t'a appris. Un progrès lent est toujours un progrès.
Dessiner un sprite avec une partie estompée
Tu voudras peut-être rendre transparente une partie d'un sprite, par exemple la moitié inférieure d'un personnage debout dans l'eau. L'agent lit ton script de dessin avec read_file, recherche l'appel de dessin actuel avec grep et propose des modifications edit_file qui dessinent le sprite en deux morceaux avec draw_sprite_part_ext, l'un d'eux avec une valeur alpha plus faible. Plan only peut te montrer les 2 morceaux d'abord. Court et testable. Accepte le diff, lance la pièce et vérifie la couture entre les deux parties au niveau du pixel, car un écart d'un pixel est facile à voir en mouvement. Si le niveau de l'eau bouge, demande à l'agent de lier la division à une variable.
Arrêter le mouvement avant un mur
Pour t'arrêter avant de heurter un objet, un script devrait tester la prochaine position et seulement ensuite se déplacer. Demande à l'agent de lire ton script de mouvement et d'envelopper chaque étape dans une vérification place_meeting sur la position cible. La carte edit_file montre les nouvelles lignes et Shell rapporte le code de sortie de ta commande de compilation. Marche contre un mur dans la pièce. Examine d'abord le diff, puis teste à vitesse lente et à vitesse rapide, car un objet rapide peut encore sauter un mur fin, et demande un pas plus petit si c'est le cas. Garde la pièce de test petite, avec un mur et un joueur.
Trouver la première erreur dans un journal de compilation
Un long journal de compilation cache la ligne qui compte. Enregistre le journal en tant que fichier texte dans le dossier du projet, puis demande à l'agent de l'ouvrir avec read_file et de le rechercher avec grep pour le mot error. Il signale la première erreur avec le nom du script et la ligne, et il peut lire ce script pour proposer une correction avec edit_file. Corriger la première erreur efface souvent celles qui suivent. Accepte le diff en Ask first, compile à nouveau et compare le nouveau journal avec l'ancien pour voir si le nombre d'erreurs a diminué. Répète jusqu'à ce que le journal soit propre.