Desenvolvimento de jogos com Astra: Circuit Shift
Updated 2026-09-05
Uma tarefa do Codex configurada com Astra produziu um protótipo Godot nativo de três salas com colisões funcionais, quebra-cabeças de relés, estados de vitória e derrota e progresso salvo. Este é o caminho do briefing ao jogo testado, incluindo o reparo que os testes de jogabilidade inicialmente não encontraram.
O resultado: um loop completo de jogabilidade em três salas
Circuit Shift é um pequeno jogo de quebra-cabeça visto de cima, criado e testado no Godot 4.5.1 em macOS. Você guia o entregador CS-07 por três salas de estações de relé, coleta três células de energia em cada sala, abre portões numerados, evita sentinelas móveis e chega à saída. A execução nativa automatizada finalizou as três salas, exercitou derrota e reinício e salvou o progresso da campanha e os melhores tempos. Um processo separado reabriu esse salvamento com sucesso.
A lição útil para um projeto de jogo assistido por IA é combinar um briefing delimitado, verificações de jogabilidade orientadas pelo motor e inspeção visual. Pedir um loop pequeno completo permitiu testar mais do que movimento: a saída precisava continuar selada antes da coleta, a conclusão da sala precisava desbloquear o setor seguinte e as configurações precisavam sobreviver a uma reabertura. O projeto para download permite inspecionar esses comportamentos por conta própria.

O briefing inicial tornou a conclusão concreta
A tarefa especificou um jogo original chamado Circuit Shift, três níveis curtos, física do motor, interruptores e portões, células coletáveis, vitória/derrota/reinício, um menu inicial, configurações e progresso salvo. Também exigiu capturas autênticas, um minifluxo de jogabilidade no motor real e uma reabertura do estado salvo. O Godot 4.5.1 já estava instalado e foi reutilizado; o desenvolvimento começou em um novo diretório de jogo com um HOME temporário separado.
O trecho abaixo é uma parte do briefing inicial real, com quebras de linha adicionadas para facilitar a leitura e a formulação original preservada. O initial-prompt.txt completo está incluído no ZIP do código-fonte. Para seu próprio briefing, a parte mais transferível são os critérios de conclusão observáveis: especifique o que o jogador pode fazer e o que ainda deve funcionar depois de fechar o jogo.
Task: build an original polished small 2D Godot game called Circuit Shift.
Three short levels; controllable character, enginephysics/collisions,
switches and gates, collectible cells, exit, win/loss/restart,
start menu, smallsettings and savedprogress.Do prompt aos arquivos, feedback do motor e salas funcionais
O agente escreveu dados das salas, GDScript, menus, configurações, salvamentos locais e um harness de jogabilidade; depois executou repetidamente o motor e inspecionou os resultados. O movimento usa CharacterBody2D.move_and_slide; paredes e portões usam StaticBody2D; células, perigos e saídas usam gatilhos Area2D. Esses contratos do motor conectam a sala visível às mudanças de colisão e estado que o harness pode observar.
O registro contém 13 execuções do motor de jogo entre importação, jogabilidade, verificações de regressão, captura nativa, reabertura, empacotamento e inspeção de pixels. A sequência incluiu uma falha inicial de presença da cena antes da implementação, jogabilidade headless, capturas nativas, um reparo visual focado e verificações finais dos artefatos. A arte específica do jogo foi desenhada proceduralmente com código Godot CanvasItem e cinco efeitos sonoros PCM foram sintetizados localmente. O trabalho observado consistiu em patches escritos pelo agente, comandos locais, solicitações de permissão para execução nativa e inspeção de capturas; nenhuma orientação adicional de tarefa humana ou correção de código humana foi observada.

O defeito real: o foco do teclado tornava um botão difícil de ler
A primeira execução nativa de jogabilidade passou nas asserções, mas a inspeção das capturas revelou texto de baixo contraste em um botão primário focado. Isso importava porque o menu da estação também aceita navegação por teclado: uma ação de início funcional não garantia um controle de início legível. Uma verificação de regressão direcionada falhou então com uma proporção de contraste de aproximadamente 1.36:1.
O reparo definiu explicitamente font_focus_color como o primeiro plano escuro do botão primário. A verificação seguinte mediu aproximadamente 10.57:1 e a execução nativa final manteve a asserção de contraste aprovada. As saídas brutas de falha e sucesso permanecem no diretório de evidências. Esse é um motivo concreto para combinar testes de jogabilidade com a inspeção dos estados de UI focado e selecionado: as transições de estado podem estar corretas enquanto os controles que as expõem ainda precisam de trabalho.
| Etapa | Resultado observado | Registro de evidência |
|---|---|---|
| Regressão direcionada | Contraste do botão focado 1.36:1; falhou | 05-focus-regression |
| Correção explícita da cor de foco | Contraste do botão focado 10.57:1; aprovado | 06-focus-fixed |
| Execução nativa final | Asserção de contraste e jogabilidade aprovadas juntas | 09-native-final |
O que os testes nativos realmente exercitaram
O minifluxo final de jogabilidade acionou ações normais de Input do Godot e sinais nativos de Control; uma verificação de mapeamento enviou um InputEventKey. O entregador se moveu pela física do motor. O harness verificou colisão com paredes, bloqueio por portões fechados, abertura e fechamento de relés, o requisito de saída após coletar todas as células, vitórias nas três salas, derrota por perigo, reinício, pausa, configurações e gatilhos de geração/reprodução de som. Ele não teletransportou o jogador, concedeu células diretamente nem atribuiu um estado de vitória.
As contagens abaixo são asserções dentro desses fluxos, incluindo waypoints e capturas, e não tarefas de benchmark independentes. As três execuções nativas finais terminaram com sucesso e stderr vazio. A campanha de jogabilidade da fonte é o teste mais amplo; a execução do PCK estabelece carregamento do pacote e continuação do estado salvo, não uma segunda campanha completa no jogo empacotado.
| Execução registrada | Verificações aprovadas | Resultado observado |
|---|---|---|
| 09-native-final | 62 | Campanha nativa completa de três salas mais verificações de falha, reinício, pausa, configurações e gatilhos de áudio |
| 10-native-reopen-compact | 6 | Processo separado carregou progresso e configurações e continuou até o setor três |
| 12-native-pck | 6 | O pacote foi lançado fora do diretório da fonte, reabriu o salvamento e entrou no setor três |
A reabertura testou a persistência e o layout compacto
Um processo nativo novo carregou unlocked=3, completed=true, três melhores tempos positivos, volume=0.35 e reduced_motion=true. Continue entrou no setor três. Isso separa persistência de um valor que apenas permanece na memória enquanto o jogo está em execução. O jogo salva o progresso ao concluir uma sala, portanto o ponto de retomada pretendido é uma sala, não a última posição do entregador.
A execução compacta também forneceu uma segunda verificação de layout: a sala, a HUD, o cronômetro e os controles permaneceram totalmente enquadrados em 720 x 540. As capturas desktop são de 1280 x 960. Entre as execuções finais da fonte e do pacote, doze capturas nativas passaram pela amostragem de pixels não vazios, e a inspeção visual conferiu enquadramento e legibilidade. São capturas reais do viewport nativo; a imagem menor demonstra uma janela desktop compacta.

Tempo e configuração: como ler o registro da execução
O início solicitado foi 5 de setembro de 2026 às 05:35:51 UTC; a conclusão foi registrada às 06:00:11.007 UTC. Isso corresponde a 1,460.007 segundos, cerca de 24 minutos e 20 segundos de tempo de parede decorrido. Abrange implementação, execução de ferramentas, testes, reparos, captura e empacotamento com um motor já disponível. Não é latência de resposta do modelo nem uma previsão para o tempo de desenvolvimento de outro jogo. Uma tarefa inicial levou a várias iterações de implementação e ferramentas.
Esta é uma execução do Codex configurada com Astra: o coordenador registrou spawn_agent.model=gpt-6-astra com reasoning_effort=xhigh. Isso estabelece somente a configuração solicitada. A identidade do modelo na resposta da API, uso de tokens, custo e contagens de chamadas de modelo/API não foram expostos e permanecem null em run-summary.json; nenhuma solicitação ou cobrança direta da APIsRouter foi observada. A verificação do catálogo público em 5 de setembro também não encontrou listagem do Astra na APIsRouter. A documentação oficial do modelo e essa configuração local não estabelecem acesso pelo gateway.
Baixe e execute Circuit Shift no Godot
Baixe o ZIP do código-fonte para inspecionar implementação, briefing completo, controles, harness de testes e evidências preservadas. Extraia-o, importe game/project.godot no Godot 4.5.1 e execute o projeto. Mova-se com WASD ou as setas, acione um relé próximo com E ou Space, reinicie com R e pause com Escape. Colete todas as células para ativar a saída; tocar em uma sentinela encerra a tentativa.
Para a versão empacotada, baixe circuit-shift.pck e execute-a com um runtime Godot compatível usando o comando abaixo. O PCK exige Godot e não é um executável independente. A integridade do ZIP, a igualdade dos arquivos críticos arquivados, a igualdade da fonte em relação à execução nativa final e a igualdade SHA-256 dos ativos copiados foram verificadas. O PCK foi lançado a partir de um diretório temporário fora do projeto-fonte. Os links de download dos dois artefatos, de run-summary.json e do manifesto SHA-256 estão listados abaixo.
godot --main-pack circuit-shift.pckPara o que este protótipo está pronto a seguir
O próximo passo útil é um playtest humano do loop de três salas: um jogador novo entende a numeração dos relés, percebe por que a saída está selada e consegue se recuperar de uma derrota? Nenhum playtest humano, teste de escuta ou dado de uso de usuários reais foi coletado neste caso. A conclusão automatizada e os buffers de áudio gerados estabelecem caminhos funcionais; não estabelecem diversão, equilíbrio de dificuldade, qualidade sonora, retenção ou usabilidade ampla.
Windows, navegador, Steam, toque e gamepad continuam sem teste; os templates de exportação para navegador não estavam disponíveis localmente. Execuções headless aceleradas ainda emitiram diagnósticos de certificados do macOS e avisos de encerramento de recursos de áudio, embora os logs nativos finais tivessem stderr vazio. Antes de escolher um alvo de lançamento, trate os problemas de runtime relevantes e execute as verificações próprias de entrada, salvamento, empacotamento e desempenho desse alvo. O resultado prático aqui é um protótipo nativo inspecionável e um fluxo de verificação repetível que pode orientar a próxima rodada de desenvolvimento.
Perguntas frequentes
Que tipo de jogo a tarefa produziu?
Circuit Shift é um protótipo Godot original visto de cima com três salas. Cada sala combina células coletáveis, interruptores de relé numerados, portões físicos, perigos móveis e uma saída. Inclui menu da estação, vitória/derrota/reinício, pausa, configurações e progresso salvo.
Como jogo o PCK baixado?
Use um runtime Godot compatível; o caso usou Godot 4.5.1. Na pasta que contém circuit-shift.pck, execute godot --main-pack circuit-shift.pck. Para inspecionar ou editar o jogo, extraia o ZIP do código-fonte e abra game/project.godot.
Quais controles devo usar?
Mova-se com WASD ou as setas. Pressione E ou Space perto de um relé, R para reiniciar a sala e Escape para pausar ou retomar. O menu aceita mouse, Tab e Enter. Todas as células precisam ser coletadas antes de a saída ser ativada.
Que progresso sobrevive a um reinício?
A conclusão de uma sala salva setores desbloqueados, conclusão da campanha e melhores tempos. Volume e configurações de reduced-motion também persistem. Um processo separado verificou esses valores salvos e continuou até o setor três; o jogo não salva cada movimento dentro de uma sala.
De onde vieram a arte e os efeitos sonoros?
Os visuais específicos do jogo foram criados proceduralmente em código de desenho Godot CanvasItem. Cinco efeitos sonoros PCM são sintetizados localmente em runtime. O Godot fornece sua fonte integrada por meio do motor instalado separadamente.
O que devo reutilizar deste fluxo?
Comece com um loop pequeno e completo e critérios de aceitação observáveis. Conduza entrada real do motor pela coleta, portões, vitória, derrota e reinício; inspecione capturas para defeitos visuais; reabra o estado salvo em outro processo; depois teste o artefato fora do diretório da fonte. Preserve falhas para que cada reparo tenha um motivo rastreável.