Astraゲーム開発:Circuit Shift

Updated 2026-09-05

Astraを設定したCodexタスクで、衝突、リレーパズル、勝敗状態、保存済み進行状況が機能する3部屋のネイティブGodotプロトタイプが作られました。ここではブリーフからテスト済みゲームまでの経路と、ゲームプレイチェックが最初に見逃した修正を説明します。

結果:完成した3部屋のゲームプレイループ

Circuit Shiftは、macOS上のGodot 4.5.1で構築・テストした小さなトップダウンパズルゲームです。運搬員CS-07を3つのリレー基地の部屋へ導き、各部屋で3個のエネルギーセルを集め、番号付きゲートを開き、動く歩哨を避けて出口に到達します。最終自動ネイティブ実行では3部屋すべてを完了し、敗北と再開を実行し、キャンペーンの進行状況とベストタイムを保存しました。別プロセスでもそのセーブを正常に再び開けました。

AI支援ゲームプロジェクトにとって有用な点は、範囲を限定したブリーフ、エンジン駆動のゲームプレイチェック、視覚的な検査の組み合わせです。小さく完全なループを求めたことで、移動だけでなく、セルを集める前は出口が封鎖され、部屋の完了で次のセクターが開き、再起動後も設定が残ることまでテストできました。ダウンロード可能なプロジェクトで、これらの動作を自分で検査できます。

セクター1のCircuit Shift。ミント色の運搬員、黄色いセル3個、番号付きリレー、閉じた赤いゲート、動くハザード、封鎖された出口が表示されている。
最終ネイティブ実行の開始時に取得した、実際の1280 x 960 Godotフレームバッファキャプチャ。

初期ブリーフで完了条件を具体化した

タスクでは、Circuit Shiftというオリジナルゲーム、短い3レベル、エンジン物理、スイッチとゲート、収集セル、勝敗・再開、スタートメニュー、設定、保存済み進行状況を指定しました。さらに、真正なスクリーンショット、実エンジンでのゲームプレイミニフロー、保存状態の再オープンも求めました。Godot 4.5.1はすでにインストールされていたため再利用し、別の一時HOMEを使って新しいゲームディレクトリで開発を始めました。

以下の抜粋は実際の初期ブリーフからのもので、読みやすさのために改行を加え、元の表現を保持しています。完全なinitial-prompt.txtはソースZIPに含まれています。自分のブリーフに最も移植しやすい部分は、観測可能な完了条件です。プレイヤーができることと、ゲームを閉じた後も動くべきことを指定してください。

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.

プロンプトからファイル、エンジンフィードバック、動作する部屋へ

エージェントは部屋データ、GDScript、メニュー、設定、ローカルセーブ、ゲームプレイハーネスを作成し、その後エンジンを繰り返し実行して結果を検査しました。移動にはCharacterBody2D.move_and_slideを使い、壁とゲートにはStaticBody2Dを使い、セル、ハザード、出口にはArea2Dトリガーを使っています。これらのエンジン契約によって、目に見える部屋と、ハーネスが観測できる衝突および状態変化が結び付いています。

記録には、インポート、ゲームプレイ、回帰チェック、ネイティブキャプチャ、再オープン、パッケージ化、ピクセル検査にまたがる13回のゲームエンジン実行があります。実装前の初期シーン存在チェックの失敗、ヘッドレスゲームプレイ、ネイティブスクリーンショット、対象を絞った視覚修正、最終成果物チェックが含まれます。ゲーム固有のアートはGodot CanvasItemコードで手続き的に描画し、5つのPCM効果音はローカルで合成しました。観測された作業は、エージェントが作成したパッチ、ローカルコマンド、ネイティブ実行権限のリクエスト、スクリーンショット検査で構成され、人間による追加のタスク誘導やコード修正は観測されませんでした。

セクター3のCircuit Shift。起動した番号付きリレー2つ、開いたゲート2つ、収集済みセル2個、リレー2の隣にいる運搬員が表示されている。
最終実行中のセクター3を撮影した、実際の1280 x 960ネイティブキャプチャ。独立した2つのリレー回路が開いている。

実際の欠陥:キーボードフォーカスでボタンが読みにくくなった

最初のネイティブゲームプレイ実行はアサーションを通過しましたが、スクリーンショット検査でフォーカス中の主要ボタンの文字が低コントラストであることが分かりました。ステーションメニューはキーボードナビゲーションにも対応しているため、開始アクションが動くことだけでは、開始コントロールが読みやすいとは限りません。対象を絞った回帰チェックでは、コントラスト比がおよそ1.36:1となり失敗しました。

修正ではfont_focus_colorを主要ボタンの暗い前景色に明示的に設定しました。次のチェックではおよそ10.57:1を測定し、最終ネイティブ実行でもコントラストアサーションの通過を維持しました。失敗時と成功時の生出力は証拠ディレクトリに残っています。これは、ゲームプレイテストとフォーカス中・選択中のUI状態の検査を組み合わせる具体的な理由です。状態遷移が正しくても、それを示すコントロールには追加の作業が必要な場合があります。

段階観測結果証拠記録
対象回帰テストフォーカス中ボタンのコントラスト1.36:1、失敗05-focus-regression
明示的なフォーカス色修正フォーカス中ボタンのコントラスト10.57:1、通過06-focus-fixed
最終ネイティブ実行コントラストアサーションとゲームプレイが同時に通過09-native-final

ネイティブテストで実際に検証したこと

最終ゲームプレイミニフローでは、通常のGodot InputアクションとネイティブControlシグナルを使いました。1つのマッピングチェックではInputEventKeyを送信しました。運搬員はエンジンの物理を通って移動しました。ハーネスは、壁の衝突、閉じたゲートによるブロック、リレーの開閉、全セル収集による出口要件、3部屋の勝利、ハザードによる敗北、再開、一時停止、設定、効果音生成・再生トリガーをチェックしました。プレイヤーをテレポートしたり、セルを直接与えたり、勝利状態を割り当てたりはしていません。

以下の件数は、ウェイポイントとキャプチャを含むこれらのフロー内のアサーションであり、独立したベンチマークタスクではありません。最終ネイティブ実行3回はすべて空のstderrで正常終了しました。ソースのゲームプレイキャンペーンが最も広いテストです。PCK実行が確立するのはパックの読み込みと保存状態の継続であり、パッケージ化ゲームでの2回目の完全キャンペーンではありません。

記録された実行通過したチェック観測結果
09-native-final623部屋すべてのネイティブキャンペーン、敗北、再開、一時停止、設定、音声トリガーチェック
10-native-reopen-compactの実行6別プロセスが進行状況と設定を読み込み、その後セクター3へ進んだ
12-native-pck6パックをソースディレクトリ外で起動し、セーブを再び開いてセクター3へ入った

再オープンで永続化とコンパクトレイアウトをテストした

新しいネイティブプロセスがunlocked=3、completed=true、3つの正のベストタイム、volume=0.35、reduced_motion=trueを読み込みました。Continueでセクター3へ進みました。これは、ゲーム実行中にメモリに残っているだけの値と永続化を分けます。ゲームは部屋の完了時に進行状況を保存するため、意図した再開地点は運搬員の最後の位置ではなく部屋です。

コンパクト実行では、2つ目のレイアウトチェックも行いました。720 x 540で部屋、HUD、タイマー、コントロールがすべてフレーム内に収まりました。デスクトップキャプチャは1280 x 960です。最終ソース実行とパック実行を合わせ、12個のネイティブキャプチャが空白でないピクセルサンプリングを通過し、視覚検査でフレームと可読性を確認しました。これらは実際のネイティブビューポートキャプチャであり、小さい画像はコンパクトなデスクトップウィンドウを示します。

720 x 540のセクター3。部屋全体、セルカウンター、タイマー、再開・一時停止コントロール、ステーション電力状態がすべて見えている。
別プロセスが保存済み進行状況を再び開き、セクター3へ進んだ後の実際の720 x 540ネイティブキャプチャ。

時間と設定:実行記録の読み方

要求された開始時刻は2026年9月5日05:35:51 UTCで、完了は06:00:11.007 UTCに記録されました。これは1,460.007秒、経過した実時間で約24分20秒です。既存のエンジンが利用可能な状態で、実装、ツール実行、テスト、修理、キャプチャ、パッケージ化を含みます。モデルのレスポンス遅延でも、別のゲームの開発時間の予測でもありません。一つの初期タスクブリーフから、複数の実装とツールの反復が生じました。

これはAstraを設定したCodex実行です。調整担当はspawn_agent.model=gpt-6-astra、reasoning_effort=xhighを記録しました。これは要求した設定だけを確立します。APIレスポンスのモデル識別情報、トークン使用量、コスト、モデル/API呼び出し回数は公開されず、run-summary.jsonではnullのままです。直接のAPIsRouterリクエストや課金は観測されませんでした。9月5日の公開カタログ確認でも、APIsRouterにAstraの掲載はありませんでした。公式モデルドキュメントとこのローカル設定だけでは、ゲートウェイアクセスは確定しません。

GodotでCircuit Shiftをダウンロードして実行する

ソースZIPをダウンロードすると、実装、完全なブリーフ、操作方法、テストハーネス、保持された証拠を確認できます。展開してGodot 4.5.1でgame/project.godotをインポートし、プロジェクトを実行します。WASDまたは矢印キーで移動し、近くのリレーをEまたはSpaceで操作し、Rで再開し、Escapeで一時停止します。すべてのセルを集めると出口が有効になり、歩哨に触れると試行が終了します。

パック版では、circuit-shift.pckをダウンロードし、以下のコマンドを使って互換性のあるGodotランタイムで起動します。PCKにはGodotが必要で、スタンドアロン実行ファイルではありません。ZIPの完全性、重要なアーカイブファイルの一致、最終ネイティブ実行とのソース一致、コピーされたアセットのSHA-256一致を検証しました。PCKはソースプロジェクト外の一時ディレクトリから起動しました。両方の成果物、run-summary.json、SHA-256マニフェストのダウンロードリンクを以下に示します。

godot --main-pack circuit-shift.pck

このプロトタイプの次の準備段階

次に有用なのは、3部屋のループを人間がプレイテストすることです。新しいプレイヤーはリレー番号を理解できるか、出口が封鎖されている理由に気付けるか、敗北から回復できるかを確認します。このケースでは、人間のプレイテスト、試聴テスト、実ユーザーの使用データは収集していません。自動完了と生成された音声バッファは機能経路を確立しますが、楽しさ、難易度のバランス、音質、継続利用、広い使いやすさは確立しません。

Windows、ブラウザ、Steam、タッチ、ゲームパッドは未テストで、ブラウザエクスポートテンプレートはローカルで利用できませんでした。高速化したヘッドレス実行ではmacOS証明書の診断と音声リソース終了時の警告が出続けましたが、最終ネイティブログのstderrは空でした。リリース対象を選ぶ前に、関係する実行時問題へ対処し、その対象独自の入力、セーブ、パッケージ化、性能チェックを行ってください。ここで得られる実務的な成果は、検査可能なネイティブプロトタイプと、次の開発ラウンドを導く再現可能な検証ワークフローです。

よくある質問

タスクはどのようなゲームを作りましたか?

Circuit Shiftはオリジナルの3部屋トップダウンGodotプロトタイプです。各部屋に収集セル、番号付きリレースイッチ、物理ゲート、動くハザード、出口があります。ステーションメニュー、勝敗・再開、一時停止、設定、保存済み進行状況も含みます。

ダウンロードしたPCKをどうプレイしますか?

互換性のあるGodotランタイムを使います。このケースではGodot 4.5.1を使いました。circuit-shift.pckがあるフォルダからgodot --main-pack circuit-shift.pckを実行します。ゲームを検査または編集する場合は、ソースZIPを展開してgame/project.godotを開きます。

どの操作を使うべきですか?

WASDまたは矢印キーで移動します。リレーの近くでEまたはSpace、部屋の再開にR、一時停止または再開にEscapeを押します。メニューはマウス、Tab、Enterに対応します。出口を有効にするには、すべてのセルを集める必要があります。

再起動後もどの進行状況が残りますか?

部屋の完了時に、アンロックされたセクター、キャンペーン完了、ベストタイムが保存されます。音量とreduced-motion設定も永続化します。別プロセスがこれらの保存値を検証し、セクター3へ進みました。部屋の中のすべての移動は保存しません。

アートと効果音はどこから来ましたか?

ゲーム固有のビジュアルは、Godot CanvasItemの描画コードで手続き的に作成しました。5つのPCM効果音は実行時にローカルで合成します。Godotは別途インストールしたエンジンを通じて組み込みフォントを提供します。

このワークフローから何を再利用できますか?

小さく完全なループと観測可能な受け入れ条件から始めます。セル収集、ゲート、勝利、敗北、再開まで実際のエンジン入力を通し、スクリーンショットで視覚的欠陥を検査し、別プロセスで保存状態を再び開き、ソースディレクトリ外で成果物をテストします。失敗を保持し、各修理の理由を追跡可能にしてください。