Flujo de proyecto GMS2: de abrir carpeta a probar en el juego
03
El escenario
Un proyecto con cámara temblorosa
Mucha gente sigue escribiendo gms2 cuando se refiere a GameMaker actual. Imagina que tu personaje camina de un lado a otro y la cámara tiembla porque la posición conserva valores decimales. Abres la carpeta del proyecto, describes el síntoma en una frase y dejas que PixelTread encuentre el código. El agente mapea la carpeta con list_dir y glob, lee los scripts de movimiento y cámara con read_file, y propone un cambio pequeño como un diff. Nada cambia hasta que tú decidas, así que la primera sesión también es una forma segura de aprender qué hace cada herramienta. Este mismo ciclo sirve para la mayoría de errores pequeños: describe, lee, revisa, prueba. Cada pasada termina en el editor, donde presionas jugar y ves el resultado tú mismo. Si el primer arreglo no es suficiente, describes qué cambió y la siguiente tarjeta se basa en la anterior. Mantén el proyecto abierto en el editor mientras trabajas.
01
Abre la carpeta
Elige la carpeta de tu proyecto de GameMaker como carpeta de trabajo del chat, para que las herramientas de archivos puedan ver tus scripts y los archivos de texto del proyecto. Inicia un chat nuevo para cada error; esto mantiene cada conversación enfocada en un problema y un diff. La carpeta de trabajo es el límite para las herramientas de archivos, así que señálala al proyecto y nada más. Cualquier cosa fuera de esa carpeta no está cubierta por las herramientas de archivos.
02
Describe el problema
Escribe lo que ves y dónde, por ejemplo que la cámara tiembla mientras el jugador gira, y menciona el script si lo conoces. Un síntoma concreto le da al agente algo para buscar con grep. Añade lo que ya intentaste, porque eso evita que el agente lo repita. Las frases cortas funcionan bien.
03
Revisa el diff
Lee cada tarjeta, abre el diff y acepta solo las líneas que entiendas. Rechaza el resto y di por qué, y el agente lo intenta de nuevo. El modo Ask first hace una pausa antes de cada acción que cambia un archivo, así que nada se guarda a tus espaldas. Abre la tarjeta expandida para ver el diff completo, no solo la línea de resumen.
04
Compila y prueba
Ejecuta tu compilación en el editor de GameMaker, juega la sala y reporta lo que viste para que el siguiente paso parta de hechos. Si la compilación falla, pega el registro en un archivo en la carpeta y deja que el agente lo lea. Luego escribe el resultado en el chat, para que la siguiente solicitud tenga un punto de partida claro. Ejecuta la misma prueba después de cada cambio aceptado, en la misma sala.
Un script de movimiento pequeño
PixelTread · Redondea la posición● Ask first
Redondea la posición del jugador antes de dibujar, para detener el temblor de la cámara.
read_filescr_move.gmlread
grepdraw_sprite3 coincidencias
edit_filescr_move.gml+2 líneas
Shellbuildexit 0
esperando tu aprobación antes del siguiente pasoRechazarAceptar
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 función lee las teclas de flecha con keyboard_check, mueve x e y por un valor de velocidad y redondea ambos para que el sprite se dibuje en píxeles enteros. El redondeo es la solución al temblor descrito arriba. Un script como este es exactamente lo que el agente puede abrir, cambiar y mostrar como diff, y puedes probarlo en una sala en un minuto. Guárdalo como un activo de script primero y cambia una línea a la vez. Pide al agente que añada un comentario encima de cada cambio para que puedas encontrarlo después. Los nombres de marcador como _speed son fáciles de renombrar.
Cuatro tareas para proyectos iniciados en GameMaker Studio 2
Aprende cambiando tus propios scripts
La gente suele preguntar cómo aprender realmente a programar en GameMaker, y una buena respuesta es cambiar scripts reales y ver qué pasa. Abre un proyecto pequeño y pide al agente que explique un script línea por línea. Lee el archivo con read_file y cita los nombres de funciones del manual oficial usando web_search. Luego pide un cambio pequeño, como una velocidad de marcha más rápida. Lee el diff en modo Ask first, acéptalo, compila y juega. Repite con un cambio nuevo cada día y deja que el agente escriba un archivo de notas con write_file, para que puedas revisar lo que cada edición te enseñó. El progreso lento sigue siendo progreso.
Dibuja un sprite con una parte desvanecida
Quizás quieras hacer solo una parte de un sprite transparente, por ejemplo la mitad inferior de un personaje de pie en el agua. El agente lee tu script de dibujo con read_file, busca la llamada de dibujo actual con grep y propone cambios edit_file que dibujen el sprite en dos piezas con draw_sprite_part_ext, una de ellas con un valor alfa menor. Plan only puede mostrarte las 2 piezas primero. Corto y probatorio. Acepta el diff, ejecuta la sala y verifica la unión entre ambas partes a nivel de píxel, ya que un espacio de un píxel es fácil de ver en movimiento. Si el nivel del agua se mueve, pide al agente que vincule la división a una variable.
Detén el movimiento antes de una pared
Para detener el movimiento antes de colisionar con un objeto, un script debería probar la siguiente posición y solo entonces moverse. Pide al agente que lea tu script de movimiento y que envuelva cada paso en una comprobación place_meeting en la posición objetivo. La tarjeta edit_file muestra las nuevas líneas y Shell reporta el código de salida de tu comando de compilación. Camina contra una pared en la sala. Revisa el diff primero, luego prueba a velocidad lenta y rápida, porque un objeto rápido aún puede saltarse una pared delgada, y pide un paso más pequeño si lo hace. Mantén la sala de prueba pequeña, con una pared y un jugador.
Encuentra el primer error en un registro de compilación
Un registro de compilación largo oculta la línea que importa. Guarda el registro como un archivo de texto en la carpeta del proyecto, luego pide al agente que lo abra con read_file y lo busque con grep por la palabra error. Informa del primer error junto con el nombre del script y la línea, y puede leer ese script para proponer una corrección con edit_file. Corregir el primer error a menudo despeja los que están debajo. Acepta el diff en Ask first, compila de nuevo y compara el nuevo registro con el antiguo para ver si la cantidad de errores disminuyó. Repite hasta que el registro esté limpio.