Sviluppo giochi Astra: Circuit Shift
Updated 2026-09-05
Un task Codex configurato con Astra ha prodotto un prototipo Godot nativo a tre stanze con collisioni funzionanti, puzzle con relè, stati di vittoria e sconfitta e progresso salvato. Ecco il percorso dal brief al gioco testato, inclusa la correzione inizialmente sfuggita ai controlli di gameplay.
Il risultato: un loop completo di gameplay a tre stanze
Circuit Shift è un piccolo puzzle game top-down costruito e testato in Godot 4.5.1 su macOS. Guida il corriere CS-07 attraverso tre stanze di una stazione di relè, raccogli tre celle energetiche in ogni stanza, apri cancelli numerati, evita sentinelle mobili e raggiungi l'uscita. Il run nativo automatizzato finale ha completato tutte e tre le stanze, esercitato sconfitta e riavvio e salvato progresso della campagna e tempi migliori. Un processo separato ha riaperto con successo quel salvataggio.
La lezione utile per un progetto di gioco assistito dall'AI è la combinazione di un brief circoscritto, controlli di gameplay guidati dall'engine e ispezione visiva. Chiedere un piccolo loop completo ha reso possibile testare più del movimento: l'uscita doveva restare sigillata prima della raccolta, il completamento della stanza doveva sbloccare il settore successivo e le impostazioni dovevano sopravvivere a un rilancio. Il progetto scaricabile permette di ispezionare questi comportamenti autonomamente.

Il brief iniziale rendeva concreto il completamento
Il task specificava un gioco originale chiamato Circuit Shift, tre livelli brevi, fisica dell'engine, interruttori e cancelli, celle collezionabili, vittoria/sconfitta/riavvio, un menu iniziale, impostazioni e progresso salvato. Richiedeva inoltre screenshot autentici, un miniflow di gameplay nell'engine reale e la riapertura di uno stato salvato. Godot 4.5.1 era già installato e veniva riutilizzato; lo sviluppo è iniziato in una nuova directory di gioco con un HOME temporaneo separato.
Lo snippet seguente è un estratto dal brief iniziale reale, con interruzioni di riga aggiunte per leggibilità e formulazione originale conservata. Il file completo initial-prompt.txt è incluso nello ZIP sorgente. Per il tuo brief, la parte più trasferibile sono i criteri di completamento osservabili: specifica cosa può fare il giocatore e cosa deve continuare a funzionare dopo la chiusura del gioco.
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.Dal prompt ai file, al feedback dell'engine e alle stanze funzionanti
L'agente ha scritto dati delle stanze, GDScript, menu, impostazioni, salvataggi locali e un harness di gameplay, poi ha eseguito ripetutamente l'engine e ispezionato i risultati. Il movimento usa CharacterBody2D.move_and_slide; pareti e cancelli usano StaticBody2D; celle, pericoli e uscite usano trigger Area2D. Questi contratti dell'engine collegano la stanza visibile a collisioni e cambiamenti di stato osservabili dall'harness.
Il record contiene 13 run dell'engine tra import, gameplay, controlli di regressione, cattura nativa, riapertura, packaging e ispezione dei pixel. La sequenza include un iniziale fallimento di presenza della scena prima dell'implementazione, gameplay headless, screenshot nativi, una riparazione visiva mirata e controlli finali dell'artefatto. L'arte del gioco è stata disegnata proceduralmente con codice Godot CanvasItem e cinque effetti sonori PCM sono stati sintetizzati localmente. Il lavoro osservato consisteva in patch scritte dall'agente, comandi locali, richieste di permesso per l'esecuzione nativa e ispezione degli screenshot; non sono stati osservati ulteriori interventi umani di guida del task o riparazione del codice.

Il difetto reale: il focus da tastiera rendeva difficile leggere un pulsante
Il primo run nativo di gameplay ha superato le sue asserzioni, ma l'ispezione dello screenshot ha rivelato testo a basso contrasto su un pulsante primario focalizzato. Era importante perché il menu della stazione supporta anche la navigazione da tastiera: un'azione di avvio funzionante non garantiva un controllo di avvio leggibile. Un controllo di regressione mirato è quindi fallito con un rapporto di contrasto di circa 1.36:1.
La correzione ha impostato esplicitamente font_focus_color sul foreground scuro del pulsante primario. Il controllo successivo ha misurato circa 10.57:1 e il run nativo finale ha mantenuto l'asserzione di contrasto superata. Gli output grezzi fallito e riuscito restano nella directory delle prove. È un motivo concreto per affiancare ai test di gameplay l'ispezione degli stati UI focalizzati e selezionati: le transizioni di stato possono essere corrette mentre i controlli che le espongono richiedono ancora lavoro.
| Fase | Risultato osservato | Record di prova |
|---|---|---|
| Regressione mirata | Contrasto del pulsante focalizzato 1.36:1; fallito | 05-focus-regression |
| Correzione esplicita del colore di focus | Contrasto del pulsante focalizzato 10.57:1; superato | 06-focus-fixed |
| Run nativo finale | Asserzione di contrasto e gameplay superati insieme | 09-native-final |
Cosa hanno effettivamente esercitato i test nativi
Il miniflow finale di gameplay ha guidato normali azioni Godot Input e segnali nativi Control; un controllo del mapping ha inviato un InputEventKey. Il corriere si è mosso attraverso la fisica dell'engine. L'harness ha verificato collisione con pareti, blocco dei cancelli chiusi, apertura e chiusura dei relè, requisito di tutte le celle per l'uscita, vittorie delle tre stanze, sconfitta per pericolo, riavvio, pausa, impostazioni e trigger di generazione e riproduzione audio. Non ha teletrasportato il giocatore, assegnato celle direttamente né impostato uno stato di vittoria.
I conteggi sotto sono asserzioni dentro questi flussi, inclusi waypoint e catture, non task benchmark indipendenti. Tutti e tre i run nativi finali sono terminati con successo e stderr vuoto. La campagna gameplay sorgente è il test più ampio; il run PCK dimostra caricamento del pacchetto e continuazione dello stato salvato, non una seconda campagna completa nel gioco impacchettato.
| Run registrato | Controlli superati | Risultato osservato |
|---|---|---|
| 09-native-final | 62 | Campagna nativa completa a tre stanze più controlli di errore, riavvio, pausa, impostazioni e trigger audio |
| 10-native-reopen-compact | 6 | Processo separato ha caricato progresso e impostazioni, poi è entrato nel settore tre |
| 12-native-pck | 6 | Il pacchetto è stato avviato fuori dalla directory sorgente, ha riaperto il salvataggio ed è entrato nel settore tre |
La riapertura ha testato persistenza e layout compatto
Un nuovo processo nativo ha caricato unlocked=3, completed=true, tre tempi migliori positivi, volume=0.35 e reduced_motion=true. Continue è entrato nel settore tre. Questo separa la persistenza da un valore che resta semplicemente in memoria mentre il gioco è in esecuzione. Il gioco salva il progresso al completamento della stanza, quindi il punto di ripresa previsto è una stanza e non l'ultima posizione del corriere.
Il run compatto ha fornito anche un secondo controllo del layout: stanza, HUD, timer e controlli sono rimasti completamente inquadrati a 720 x 540. Le catture desktop sono 1280 x 960. Tra i run finali sorgente e pacchettizzati, dodici catture native hanno superato il campionamento dei pixel non vuoti e l'ispezione visiva ha controllato inquadratura e leggibilità. Sono catture autentiche del viewport nativo; l'immagine più piccola dimostra una finestra desktop compatta.

Tempi e configurazione: come leggere il record del run
L'avvio richiesto era il 5 settembre 2026 alle 05:35:51 UTC; il completamento è stato registrato alle 06:00:11.007 UTC. Sono 1,460.007 secondi, circa 24 minuti e 20 secondi di tempo di parete trascorso. Comprende implementazione, esecuzione degli strumenti, test, riparazioni, cattura e packaging con un engine già disponibile. Non è latenza della risposta del modello né una previsione del tempo di sviluppo di un altro gioco. Un solo brief iniziale ha portato a molte iterazioni di implementazione e strumenti.
Questo è un run Codex configurato con Astra: il coordinatore ha registrato spawn_agent.model=gpt-6-astra con reasoning_effort=xhigh. Ciò stabilisce solo la configurazione richiesta. Identità del modello di risposta API, utilizzo dei token, costo e conteggi di chiamate modello/API non sono stati esposti e restano null in run-summary.json; non è stata osservata alcuna richiesta diretta ad APIsRouter né fatturazione. Anche il controllo del catalogo pubblico del 5 settembre non ha trovato Astra su APIsRouter. Documentazione ufficiale del modello e configurazione locale non dimostrano accesso al gateway.
Scarica ed esegui Circuit Shift in Godot
Scarica lo ZIP sorgente per ispezionare implementazione, brief completo, controlli, harness di test e prove conservate. Estrailo, importa game/project.godot in Godot 4.5.1 ed esegui il progetto. Muoviti con WASD o i tasti freccia, aziona un relè vicino con E o Space, riavvia con R e metti in pausa con Escape. Raccogli ogni cella per attivare l'uscita; il contatto con una sentinella termina il tentativo.
Per la versione impacchettata, scarica circuit-shift.pck e avviala con un runtime Godot compatibile usando il comando sotto. Il PCK richiede Godot e non è un eseguibile autonomo. Sono stati verificati integrità ZIP, uguaglianza dei file archiviati critici, uguaglianza della sorgente rispetto al run nativo finale e uguaglianza SHA-256 degli asset copiati. Il PCK è stato avviato da una directory temporanea fuori dal progetto sorgente. I link di download per entrambi gli artefatti, run-summary.json e il manifest SHA-256 sono elencati sotto.
godot --main-pack circuit-shift.pckPer cosa è pronto il prototipo
Il prossimo passo utile è un playtest umano del loop a tre stanze: un nuovo giocatore capisce la numerazione dei relè, nota perché l'uscita è sigillata e riesce a recuperare dopo una sconfitta? In questo caso non sono stati raccolti playtest umano, test d'ascolto o dati d'uso di utenti reali. Il completamento automatico e i buffer audio generati stabiliscono percorsi funzionali; non stabiliscono divertimento, bilanciamento della difficoltà, qualità del suono, retention o usabilità ampia.
Windows, browser, Steam, touch e gamepad restano non testati; i template di export browser non erano disponibili localmente. I run headless accelerati hanno continuato a emettere diagnostica dei certificati macOS e warning di shutdown delle risorse audio, sebbene i log nativi finali avessero stderr vuoto. Prima di scegliere un target di release, affronta i problemi runtime pertinenti ed esegui i controlli di input, salvataggio, packaging e performance propri di quel target. Il risultato pratico è un prototipo nativo ispezionabile e un workflow di verifica ripetibile che può guidare il prossimo ciclo di sviluppo.
Domande frequenti
Che tipo di gioco ha prodotto il task?
Circuit Shift è un prototipo Godot originale top-down a tre stanze. Ogni stanza combina celle collezionabili, interruttori a relè numerati, cancelli fisici, pericoli in movimento e un'uscita. Include menu della stazione, vittoria/sconfitta/riavvio, pausa, impostazioni e progresso salvato.
Come gioco il PCK scaricato?
Usa un runtime Godot compatibile; il caso ha usato Godot 4.5.1. Dalla cartella che contiene circuit-shift.pck, esegui godot --main-pack circuit-shift.pck. Per ispezionare o modificare il gioco, estrai lo ZIP sorgente e apri game/project.godot.
Quali controlli devo usare?
Muoviti con WASD o i tasti freccia. Premi E o Space vicino a un relè, R per riavviare la stanza ed Escape per mettere in pausa o riprendere. Il menu supporta mouse, Tab ed Enter. Tutte le celle devono essere raccolte prima che l'uscita si attivi.
Quale progresso sopravvive a un riavvio?
Il completamento della stanza salva settori sbloccati, completamento della campagna e tempi migliori. Persistono anche volume e impostazioni reduced-motion. Un processo separato ha verificato questi valori salvati ed è entrato nel settore tre; il gioco non salva ogni movimento dentro una stanza.
Da dove provengono arte ed effetti sonori?
Le immagini specifiche del gioco sono state create proceduralmente nel codice di disegno Godot CanvasItem. Cinque effetti sonori PCM sono sintetizzati localmente a runtime. Godot fornisce il suo font integrato tramite l'engine installato separatamente.
Cosa dovrei riutilizzare di questo workflow?
Inizia con un piccolo loop completo e criteri di accettazione osservabili. Guida input reali dell'engine attraverso raccolta, cancelli, vittoria, sconfitta e riavvio; ispeziona screenshot per difetti visivi; riapri lo stato salvato in un altro processo; poi testa l'artefatto fuori dalla directory sorgente. Conserva i fallimenti, così ogni riparazione ha un motivo tracciabile.