PixelTread
Fluxos de trabalho

Fluxo de projeto GMS2: da pasta aberta ao playtest

03
O cenário

Um projeto onde a câmera treme

Muita gente ainda digita gms2 quando se refere ao GameMaker atual. Digamos que seu personagem esteja andando para frente e para trás e a câmera tremula porque a posição armazena valores fracionários. Você abre a pasta do projeto, descreve o sintoma em 1 frase e deixa o PixelTread encontrar o código. O agente mapeia a pasta com list_dir e glob, lê os scripts de movimento e câmera com read_file e propõe uma pequena alteração como diff. Nada muda até você decidir, então a primeira sessão também é uma maneira segura de aprender o que cada ferramenta faz. O mesmo ciclo funciona para a maioria dos bugs pequenos: descreva, leia, revise, teste. Cada etapa termina no editor, onde você clica em play e vê o resultado por conta própria. Se a primeira correção não for suficiente, descreva o que mudou e o próximo card se baseia no último. Mantenha o projeto aberto no editor enquanto trabalha.

01

Abrir a pasta

Defina a pasta do seu projeto do GameMaker como a pasta de trabalho do chat, para que as ferramentas de arquivo possam acessar seus scripts e os arquivos de texto do projeto. Inicie um chat novo para cada bug, o que mantém cada conversa focada em um problema e um diff. A pasta de trabalho é o limite para as ferramentas de arquivo, então aponte-a para o projeto e nada mais. Qualquer coisa fora dessa pasta não é acessível pelas ferramentas de arquivo.

02

Descrever o problema

Descreva o que você vê e onde, por exemplo, que a câmera treme enquanto o jogador vira, e mencione o script se você souber qual é. Um sintoma concreto dá ao agente algo para buscar com grep. Adicione o que você já tentou, para evitar que o agente repita o que já foi feito. Frases curtas funcionam bem.

03

Revisar o diff

Leia cada card, abra o diff e aceite apenas as linhas que você entende. Rejeite o resto e diga o motivo, e o agente tenta novamente. O modo Ask first faz uma pausa antes de cada ação que altera um arquivo, para que nada seja salvo por trás das suas costas. Abra o card expandido para ver o diff completo, não apenas a linha de resumo.

04

Compilar e testar

Execute a compilação no editor do GameMaker, jogue a sala e relate o que viu para que o próximo passo comece a partir de fatos. Se a compilação falhar, cole o log em um arquivo na pasta e deixe o agente lê-lo. Em seguida, anote o resultado no chat, para que a próxima solicitação tenha um ponto de partida claro. Execute o mesmo teste após cada alteração aceita, na mesma sala.

Um script de movimento simples

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

A função lê as teclas de seta com keyboard_check, move x e y por um valor de velocidade e arredonda ambos para que o sprite seja desenhado em pixels inteiros. O arredondamento é a correção para o tremor descrito acima. Um script como este é exatamente o que o agente pode abrir, alterar e mostrar como diff, e você pode testá-lo em uma sala em um minuto. Salve-o como um asset de script primeiro e altere uma linha de cada vez. Peça ao agente para adicionar um comentário acima de cada alteração para que você possa encontrá-la depois. Nomes de espaço reservado como _speed são fáceis de renomear.

Quatro tarefas para projetos iniciados no GameMaker Studio 2

Aprender alterando seus próprios scripts

As pessoas frequentemente perguntam como aprender realmente a programar no GameMaker, e uma boa resposta é alterar scripts reais e observar o que acontece. Abra um projeto pequeno e peça ao agente para explicar um script linha por linha. Ele lê o arquivo com read_file e cita os nomes das funções do manual oficial usando web_search. Em seguida, peça uma pequena alteração, como uma velocidade de caminhada mais rápida. Leia o diff no modo Ask first, aceite, compile e jogue. Repita com uma nova alteração a cada dia e deixe o agente escrever um arquivo de notas com write_file, para que você possa rever o que cada edição ensinou. Progresso lento ainda é progresso.

Desenhar um sprite com parte transparente

Você pode querer tornar apenas parte de um sprite transparente, por exemplo, a metade inferior de um personagem em pé na água. O agente lê seu script de desenho com read_file, busca a chamada de desenho atual com grep e propõe alterações edit_file que desenham o sprite em duas partes com draw_sprite_part_ext, uma delas com um valor de alfa menor. Plan only pode mostrar as 2 partes primeiro. Curto e testável. Aceite o diff, execute a sala e verifique a junção entre ambas as partes em nível de pixel, já que uma lacuna de um pixel é fácil de ver em movimento. Se o nível da água se mover, peça ao agente para vincular a divisão a uma variável.

Parar o movimento antes de uma parede

Para parar de se mover antes de colidir com um objeto, um script deve testar a próxima posição e só então mover. Peça ao agente para ler seu script de movimento e para envolver cada etapa em uma verificação place_meeting na posição alvo. O card edit_file mostra as novas linhas e o Shell relata o código de saída do seu comando de compilação. Caminhe até uma parede na sala. Revise o diff primeiro, depois teste em velocidade lenta e rápida, porque um objeto rápido ainda pode pular uma parede fina, e peça um passo menor se isso acontecer. Mantenha a sala de teste pequena, com uma parede e um jogador.

Encontrar o primeiro erro em um log de compilação

Um log de compilação longo esconde a linha que importa. Salve o log como um arquivo de texto na pasta do projeto, depois peça ao agente para abri-lo com read_file e buscá-lo com grep pela palavra error. Ele relata o primeiro erro junto com o nome do script e a linha, e pode ler esse script para propor uma correção com edit_file. Corrigir o primeiro erro frequentemente limpa os erros abaixo dele. Aceite o diff no Ask first, compile novamente e compare o novo log com o antigo para ver se a contagem de erros caiu. Repita até que o log esteja limpo.

PixelTread para Windows

Execute este fluxo de trabalho no seu próprio projeto

Baixar PixelTread ↗