Astra-gameontwikkeling: Circuit Shift

Updated 2026-09-05

Een Astra-geconfigureerde Codex-taak produceerde een native Godot-prototype met drie kamers, werkende collisions, relaispuzzels, winst- en verliesstatussen en opgeslagen voortgang. Dit is de route van brief naar geteste game, inclusief de reparatie die de gameplaycontroles eerst misten.

Het resultaat: een complete gameloop met drie kamers

Circuit Shift is een kleine top-downpuzzelgame die is gebouwd en getest in Godot 4.5.1 op macOS. Je begeleidt koerier CS-07 door drie relaisstationkamers, verzamelt in elke kamer drie energiecellen, opent genummerde poorten, ontwijkt bewegende wachters en bereikt de uitgang. De laatste geautomatiseerde native run voltooide alle drie kamers, testte verlies en opnieuw starten en sloeg campagnevoortgang en beste tijden op. Een afzonderlijk proces opende die save daarna succesvol opnieuw.

De nuttige les voor een AI-ondersteund gameproject is de combinatie van een afgebakende brief, enginegestuurde gameplaycontroles en visuele inspectie. Door een complete kleine loop te vragen, kon meer dan beweging worden getest: de uitgang moest vóór het verzamelen gesloten blijven, kamercomplete moest de volgende sector ontgrendelen en instellingen moesten een herstart overleven. Met het downloadbare project kun je dat gedrag zelf inspecteren.

Circuit Shift-sector één met de mintkleurige koerier, drie gele cellen, een genummerd relais, een gesloten rode poort, een bewegend gevaar en de afgesloten uitgang.
Echte 1280 x 960 Godot-framebuffercapture van de laatste native run, aan het begin van sector één.

De eerste brief maakte voltooiing concreet

De taak specificeerde een originele game met de naam Circuit Shift, drie korte levels, enginephysics, schakelaars en poorten, verzamelbare cellen, winst/verlies/opnieuw starten, een startmenu, instellingen en opgeslagen voortgang. Ook waren authentieke screenshots, een gameplay-miniflow in de echte engine en het opnieuw openen van een save vereist. Godot 4.5.1 was al geïnstalleerd en werd hergebruikt; de ontwikkeling begon in een nieuwe gamemap met een afzonderlijke tijdelijke HOME.

Het fragment hieronder is een excerpt uit de echte eerste brief, met regeleinden toegevoegd voor leesbaarheid en de oorspronkelijke formulering behouden. Het volledige initial-prompt.txt zit in de source-ZIP. Voor je eigen brief is het meest overdraagbare deel de observeerbare voltooiingscriteria: specificeer wat de speler kan doen en wat na het sluiten van de game nog moet werken.

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.

Van prompt naar bestanden, enginefeedback en werkende kamers

De agent schreef kamerdata, GDScript, menu's, instellingen, lokale saves en een gameplayharnas en draaide daarna herhaaldelijk de engine om resultaten te inspecteren. Beweging gebruikt CharacterBody2D.move_and_slide; muren en poorten gebruiken StaticBody2D; cellen, gevaren en uitgangen gebruiken Area2D-triggers. Deze enginecontracten verbinden de zichtbare kamer met collision- en statuswijzigingen die het harnas kan waarnemen.

Het record bevat 13 game-engineruns voor import, gameplay, regressiecontroles, native capture, opnieuw openen, packaging en pixelinspectie. De reeks bevatte een eerste scene-presencefout vóór implementatie, headless gameplay, native screenshots, een gerichte visuele reparatie en laatste artefactcontroles. De gamespecifieke art werd procedureel getekend met Godot CanvasItem-code en vijf PCM-geluidseffecten werden lokaal gesynthetiseerd. Het waargenomen werk bestond uit door de agent geschreven patches, lokale opdrachten, verzoeken om native-executiemachtiging en screenshotinspectie; er is geen verdere menselijke taaksturing of menselijke codereparatie waargenomen.

Circuit Shift-sector drie met twee geactiveerde genummerde relais, twee open poorten, twee verzamelde cellen en de koerier naast relais twee.
Echte 1280 x 960 native capture van sector drie tijdens de laatste run, met beide onafhankelijke relaiscircuits open.

Het echte defect: toetsenbordfocus maakte een knop moeilijk leesbaar

De eerste native gameplayrun slaagde voor zijn assertions, maar screenshotinspectie bracht tekst met laag contrast op een gefocuste primaire knop aan het licht. Dat was relevant omdat het stationmenu ook toetsenbordnavigatie ondersteunt: een werkende startactie garandeerde geen leesbare startknop. Een gerichte regressiecontrole faalde daarna met een contrastratio van ongeveer 1.36:1.

De reparatie stelde font_focus_color expliciet in op de donkere voorgrondkleur van de primaire knop. De volgende controle mat ongeveer 10.57:1 en de laatste native run behield de geslaagde contrastassertion. De ruwe mislukte en geslaagde outputs staan in de evidencemap. Dit is een concrete reden om gameplaytests te combineren met inspectie van gefocuste en geselecteerde UI-statussen: statustransities kunnen correct zijn terwijl de controls die ze zichtbaar maken nog werk nodig hebben.

FaseWaargenomen resultaatEvidentierecord
Gerichte regressieContrast van gefocuste knop 1.36:1; mislukt05-focus-regression
Expliciete focuskleurreparatieContrast van gefocuste knop 10.57:1; geslaagd06-focus-fixed
Laatste native runContrastassertion en gameplay samen geslaagd09-native-final

Wat de native tests werkelijk hebben uitgevoerd

De laatste gameplay-miniflow gebruikte normale Godot Input-acties en native Control-signalen; één mappingcontrole diende een InputEventKey in. De koerier bewoog door de enginephysics. Het harnas controleerde collision met muren, blokkering door gesloten poorten, openen en sluiten van relais, de uitgangseis voor alle cellen, drie kamerwinsten, verlies door gevaar, opnieuw starten, pauze, instellingen en triggers voor geluidsgeneratie en -afspelen. De speler werd niet geteleporteerd, cellen werden niet rechtstreeks toegekend en er werd geen winststatus toegewezen.

De onderstaande aantallen zijn assertions binnen deze flows, inclusief waypoints en captures, geen onafhankelijke benchmarktaken. Alle drie laatste native runs eindigden succesvol met lege stderr. De source-gameplaycampagne is de breedste test; de PCK-run stelt packladen en voortzetting van opgeslagen status vast, niet een tweede volledige campagne door de gepackagede game.

Geregistreerde runGeslaagde controlesWaargenomen resultaat
09-native-final62Volledige native campagne met drie kamers plus controles voor verlies, opnieuw starten, pauze, instellingen en audiotrigger
10-native-reopen-compact6Afzonderlijk proces laadde voortgang en instellingen en ging door naar sector drie
12-native-pck6Pack startte buiten de sourcemap, opende de save opnieuw en ging sector drie binnen

Opnieuw openen testte persistentie en de compacte layout

Een vers native proces laadde unlocked=3, completed=true, drie positieve beste tijden, volume=0.35 en reduced_motion=true. Continue ging sector drie binnen. Dit scheidt persistentie van een waarde die alleen in het geheugen blijft zolang een game draait. De game slaat voortgang op bij kamercomplete, dus het bedoelde hervatpunt is een kamer en niet de laatste positie van de koerier.

De compacte run leverde ook een tweede layoutcontrole: kamer, HUD, timer en controls bleven volledig in beeld op 720 x 540. De desktopcaptures zijn 1280 x 960. In de laatste source- en packruns slaagden twaalf native captures voor nonblank pixelsampling en controleerde visuele inspectie framing en leesbaarheid. Dit zijn echte native viewportcaptures; de kleinere afbeelding toont een compact desktopvenster.

Circuit Shift-sector drie op 720 bij 540 met de hele kamer, celteller, timer, controls voor opnieuw starten en pauze en zichtbare status van het stationvermogen.
Echte 720 x 540 native capture nadat een afzonderlijk proces opgeslagen voortgang had geopend en naar sector drie was doorgegaan.

Timing en configuratie: zo lees je het runrecord

De gevraagde start was 5 september 2026 om 05:35:51 UTC; de voltooiing werd geregistreerd om 06:00:11.007 UTC. Dat is 1,460.007 seconden, ongeveer 24 minuten en 20 seconden verstreken wandkloktijd. De periode omvat implementatie, toolexecutie, tests, reparaties, capture en packaging met een bestaande engine beschikbaar. Het is geen modelresponslatentie en geen voorspelling voor de ontwikkelingstijd van een andere game. Eén eerste taakbrief leidde tot meerdere implementatie- en tooliteraties.

Dit is een Astra-geconfigureerde Codex-run: de coördinator registreerde spawn_agent.model=gpt-6-astra met reasoning_effort=xhigh. Dat stelt alleen de gevraagde configuratie vast. API-response-modelidentiteit, tokengebruik, kosten en aantallen model/API-calls waren niet zichtbaar en blijven null in run-summary.json; er is geen directe APIsRouter-request of facturering waargenomen. De openbare cataloguscontrole van 5 september vond ook geen Astra-vermelding op APIsRouter. Officiële modeldocumentatie en deze lokale configuratie stellen geen gatewaytoegang vast.

Download Circuit Shift en voer het uit in Godot

Download de source-ZIP om implementatie, volledige brief, controls, testharnas en bewaarde evidence te inspecteren. Pak hem uit, importeer game/project.godot in Godot 4.5.1 en start het project. Beweeg met WASD of de pijltjestoetsen, bedien een nabij relais met E of Space, start opnieuw met R en pauzeer met Escape. Verzamel elke cel om de uitgang te activeren; contact met een wachter beëindigt de poging.

Download voor de gepackagede versie circuit-shift.pck en start deze met een compatibele Godot-runtime via het commando hieronder. Voor de PCK is Godot nodig en het is geen zelfstandig uitvoerbaar bestand. ZIP-integriteit, gelijkheid van kritieke gearchiveerde bestanden, bron-gelijkheid met de laatste native run en SHA-256-gelijkheid van gekopieerde assets zijn geverifieerd. De PCK werd gestart vanuit een tijdelijke map buiten het bronproject. Downloadlinks voor beide artefacten, run-summary.json en het SHA-256-manifest staan hieronder.

godot --main-pack circuit-shift.pck

Waar dit prototype hierna klaar voor is

De volgende nuttige stap is een menselijke playtest van de gameloop met drie kamers: begrijpt een nieuwe speler de relaisnummering, ziet die waarom de uitgang dicht is en kan die na verlies herstellen? In deze case zijn geen menselijke playtest, luistertest of echte gebruikersdata verzameld. Geautomatiseerde voltooiing en gegenereerde audiobuffers stellen functionele paden vast; ze stellen geen plezier, moeilijkheidsbalans, geluidskwaliteit, retentie of brede bruikbaarheid vast.

Windows, browser, Steam, touch en gamepad zijn nog niet getest; browserexportsjablonen waren lokaal niet beschikbaar. Versnelde headless-runs produceerden nog steeds macOS-certificaatdiagnostiek en waarschuwingen bij het afsluiten van audioresources, hoewel de laatste native logs lege stderr hadden. Behandel vóór het kiezen van een releasetarget de relevante runtimeproblemen en voer de eigen input-, save-, packaging- en performancecontroles van dat target uit. Het concrete resultaat hier is een inspecteerbaar native prototype en een reproduceerbare verificatieworkflow voor de volgende ontwikkelronde.

Veelgestelde vragen

Wat voor game heeft de taak opgeleverd?

Circuit Shift is een origineel top-down Godot-prototype met drie kamers. Elke kamer combineert verzamelbare cellen, genummerde relaisknoppen, fysieke poorten, bewegende gevaren en een uitgang. Het bevat een stationmenu, winst/verlies/opnieuw starten, pauze, instellingen en opgeslagen voortgang.

Hoe speel ik de gedownloade PCK?

Gebruik een compatibele Godot-runtime; voor de case werd Godot 4.5.1 gebruikt. Voer vanuit de map met circuit-shift.pck godot --main-pack circuit-shift.pck uit. Pak de source-ZIP uit en open game/project.godot als je de game wilt inspecteren of bewerken.

Welke controls moet ik gebruiken?

Beweeg met WASD of de pijltjestoetsen. Druk bij een relais op E of Space, op R om de kamer opnieuw te starten en op Escape om te pauzeren of door te gaan. Het menu ondersteunt muis, Tab en Enter. Elke cel moet verzameld zijn voordat de uitgang actief wordt.

Welke voortgang blijft na opnieuw starten bewaard?

Kamercomplete bewaart ontgrendelde sectoren, campagnecomplete en beste tijden. Ook volume- en reduced-motion-instellingen blijven bewaard. Een afzonderlijk proces verifieerde deze waarden en ging door naar sector drie; de game bewaart niet elke beweging binnen een kamer.

Waar kwamen art en geluidseffecten vandaan?

Gamespecifieke visuals zijn procedureel gemaakt in Godot CanvasItem-tekencode. Vijf PCM-geluidseffecten worden lokaal tijdens runtime gesynthetiseerd. Godot levert het ingebouwde font via de afzonderlijk geïnstalleerde engine.

Wat moet ik uit deze workflow hergebruiken?

Begin met een kleine complete loop en observeerbare acceptatiecriteria. Stuur echte engine-input door verzamelen, poorten, winst, verlies en opnieuw starten; inspecteer screenshots op visuele defecten; open opgeslagen status in een ander proces opnieuw; test daarna het artefact buiten de sourcemap. Bewaar fouten zodat elke reparatie een traceerbare reden heeft.