PixelTread
Workflows

GMS2-Projektworkflow: Vom Ordner bis zum Playtest

03
Das Szenario

Ein Projekt, in dem die Kamera zittert

Viele meinen mit GMS2 das heutige GameMaker. Stell dir vor, dein Spieler läuft hin und her und die Kamera zittert, weil die Position Bruchwerte enthält. Du öffnest den Projektordner, beschreibst das Symptom in einem Satz und lässt PixelTread den Code finden. Das Agent-Tool kartiert den Ordner mit list_dir und glob, liest die Bewegungs- und Kamera-Skripte mit read_file und schlägt eine kleine Änderung als Diff vor. Erst wenn du entscheidest, ändert sich etwas, also ist die erste Sitzung auch eine sichere Art zu lernen, was jedes Tool macht. Derselbe Loop funktioniert für die meisten kleinen Bugs: beschreiben, lesen, prüfen, testen. Jeder Durchlauf endet im Editor, wo du auf Abspielen drückst und das Ergebnis selbst siehst. Wenn die erste Korrektur nicht reicht, beschreibst du, was sich geändert hat, und die nächste Karte baut auf der vorherigen auf. Halte das Projekt im Editor geöffnet, während du arbeitest.

01

Ordner öffnen

Wähle deinen GameMaker-Projektordner als Arbeitsordner des Chats, damit die Dateitools deine Skripte und die Textdateien des Projekts sehen können. Starte für jeden Bug einen neuen Chat, damit jede Konversation nur ein Problem und einen Diff betrifft. Der Arbeitsordner ist die Grenze für die Dateitools, also weise ihn auf das Projekt und nichts anderes. Alles außerhalb dieses Ordners wird von den Dateitools nicht abgedeckt.

02

Problem beschreiben

Schreibe, was du siehst und wo, zum Beispiel dass die Kamera zittert, während sich der Spieler dreht, und erwähne das Skript, wenn du es kennst. Ein konkretes Symptom gibt dem Agent-Tool etwas, wonach er mit grep suchen kann. Füge hinzu, was du bereits versucht hast, damit das Agent-Tool es nicht wiederholt. Kurze Sätze funktionieren gut.

03

Diff prüfen

Lies jede Karte, öffne den Diff und akzeptiere nur die Zeilen, die du verstehst. Lehne den Rest ab und begründe warum, und das Agent-Tool versucht es erneut. Der Ask first-Modus pausiert vor jeder Aktion, die eine Datei ändert, damit nichts im Hintergrund gespeichert wird. Öffne die erweiterte Karte, um den vollständigen Diff zu sehen, nicht nur die Zusammenfassungszeile.

04

Erstellen und testen

Führe deinen Build im GameMaker-Editor aus, spiele den Raum ab und berichte zurück, was du gesehen hast, damit der nächste Schritt auf Fakten basiert. Wenn der Build fehlschlägt, füge das Protokoll in eine Datei im Ordner ein und lass das Agent-Tool es lesen. Schreibe dann das Ergebnis in den Chat, damit die nächste Anfrage einen klaren Ausgangspunkt hat. Führe denselben Test nach jeder akzeptierten Änderung im selben Raum durch.

Ein kleines Bewegungsskript

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);
}

Die Funktion liest die Pfeiltasten mit keyboard_check, bewegt x und y um einen Speed-Wert und rundet beide, damit das Sprite auf ganzen Pixeln gezeichnet wird. Runden ist die Korrektur für das oben beschriebene Zittern. Ein Skript wie dieses ist genau das, was das Agent-Tool öffnen, ändern und als Diff anzeigen kann, und du kannst es innerhalb einer Minute in einem Raum testen. Speichere es zuerst als Script-Asset und ändere eine Zeile nach der anderen. Bitte das Agent-Tool, über jeder Änderung einen Kommentar hinzuzufügen, damit du ihn später findest. Platzhalter-Namen wie _speed sind einfach umzubenennen.

Vier Aufgaben für Projekte, die in GameMaker Studio 2 gestartet wurden

Lernen, indem du deine eigenen Skripte änderst

Leute fragen oft, wie man GameMaker-Coding wirklich lernt, und eine gute Antwort ist, echte Skripte zu ändern und zuzusehen, was passiert. Öffne ein kleines Projekt und bitte das Agent-Tool, ein Skript Zeile für Zeile zu erklären. Es liest die Datei mit read_file und zitiert die Funktionsnamen aus dem offiziellen Handbuch mit web_search. Bitte dann um eine winzige Änderung, wie eine schnellere Gehgeschwindigkeit. Lies den Diff im Ask first-Modus, akzeptiere ihn, erstelle und spiele. Wiederhole das mit einer neuen Änderung jeden Tag und lass das Agent-Tool eine Notizdatei mit write_file schreiben, damit du zurückblicken kannst, was jede Bearbeitung dir beigebracht hat. Langsame Fortschritte sind immer noch Fortschritte.

Ein Sprite mit einem verblassenden Teil zeichnen

Du möchtest vielleicht nur einen Teil eines Sprites transparent machen, zum Beispiel die untere Hälfte eines Charakters, der im Wasser steht. Das Agent-Tool liest dein Draw-Skript mit read_file, sucht den aktuellen Draw-Aufruf mit grep und schlägt edit_file-Änderungen vor, die das Sprite in zwei Teilen mit draw_sprite_part_ext zeichnen, einer davon mit einem niedrigeren Alpha-Wert. Plan only kann dir zuerst die 2 Teile anzeigen. Kurz und testbar. Akzeptiere den Diff, starte den Raum und prüfe die Naht zwischen beiden Teilen auf Pixelebene, da eine Pixel-Lücke in der Bewegung leicht zu sehen ist. Wenn sich die Wasserlinie bewegt, bitte das Agent-Tool, die Teilung an eine Variable zu binden.

Bewegung stoppen, bevor eine Wand getroffen wird

Um sich zu bewegen, bevor ein Objekt getroffen wird, sollte ein Skript die nächste Position testen und sich erst dann bewegen. Bitte das Agent-Tool, dein Bewegungsskript zu lesen und jeden Schritt in eine place_meeting-Prüfung an der Zielposition zu packen. Die edit_file-Karte zeigt die neuen Zeilen und Shell meldet den Exit-Code deines Build-Befehls. Laufen gegen eine Wand im Raum. Prüfe zuerst den Diff, dann teste bei langsamer und schneller Geschwindigkeit, da ein schnelles Objekt eine dünne Wand immer noch überspringen kann, und bitte um einen kleineren Schritt, wenn dies passiert. Halte den Testraum klein, mit einer Wand und einem Spieler.

Den ersten Fehler in einem Build-Protokoll finden

Ein langes Build-Protokoll verbirgt die entscheidende Zeile. Speichere das Protokoll als Textdatei im Projektordner und bitte das Agent-Tool, es mit read_file zu öffnen und mit grep nach dem Wort error zu durchsuchen. Es meldet den ersten Fehler zusammen mit dem Skriptnamen und der Zeile, und es kann dieses Skript lesen, um eine Korrektur mit edit_file vorzuschlagen. Das Beheben des ersten Fehlers beseitigt oft die darunterliegenden Fehler. Akzeptiere den Diff in Ask first, erstelle erneut und vergleiche das neue Protokoll mit dem alten, um zu sehen, ob die Anzahl der Fehler gesunken ist. Wiederhole dies, bis das Protokoll sauber ist.

PixelTread für Windows

Führe diesen Workflow in deinem eigenen Projekt aus

PixelTread herunterladen ↗