การพัฒนาเกม Astra: Circuit Shift

Updated 2026-09-05

งาน Codex ที่ตั้งค่า Astra สร้างต้นแบบ Godot แบบ native 3 ห้องที่มี collision ปริศนา relay สถานะชนะและแพ้ และ progress ที่บันทึกไว้ นี่คือเส้นทางจาก brief สู่เกมที่ทดสอบแล้ว รวมถึงการซ่อมที่ gameplay checks พลาดในตอนแรก

ผลลัพธ์: ลูป gameplay 3 ห้องที่สมบูรณ์

Circuit Shift คือเกม puzzle มุมมองจากด้านบนขนาดเล็กที่สร้างและทดสอบด้วย Godot 4.5.1 บน macOS คุณนำ courier CS-07 ผ่านห้องสถานี relay 3 ห้อง เก็บ energy cell 3 ชิ้นในแต่ละห้อง เปิด gate ตามหมายเลข หลบ sentry ที่เคลื่อนที่ และไปถึง exit native run อัตโนมัติสุดท้ายผ่านครบทั้ง 3 ห้อง ทดสอบการแพ้และเริ่มใหม่ และบันทึก campaign progress กับ best times อีก process เปิด save นั้นกลับมาได้สำเร็จ

บทเรียนที่มีประโยชน์สำหรับโปรเจกต์เกมที่มี AI ช่วยคือการรวม brief ที่จำกัดขอบเขต การตรวจ gameplay ที่ขับเคลื่อนด้วยเอนจิน และการตรวจด้วยสายตา การขอให้ทำลูปเล็กที่สมบูรณ์ทำให้ทดสอบได้มากกว่าการเคลื่อนที่: exit ต้องยังปิดก่อนเก็บ cell การจบห้องต้องปลดล็อก sector ถัดไป และ settings ต้องอยู่รอดหลัง relaunch โปรเจกต์ที่ดาวน์โหลดได้เปิดให้คุณตรวจพฤติกรรมเหล่านี้เอง

Circuit Shift sector one แสดง courier สี mint, cell สีเหลือง 3 ชิ้น, relay มีหมายเลข, gate สีแดงที่ปิด, hazard ที่เคลื่อนที่ และ exit ที่ถูกปิดผนึก
ภาพ Godot framebuffer ขนาด 1280 x 960 จริงจาก native run สุดท้าย ณ จุดเริ่ม sector one

Initial brief ทำให้ความสมบูรณ์วัดได้จริง

งานกำหนดเกมต้นฉบับชื่อ Circuit Shift, 3 level สั้น, physics ของเอนจิน, switch และ gate, cell ที่เก็บได้, win/loss/restart, start menu, settings และ progress ที่บันทึกไว้ นอกจากนี้ยังต้องมี screenshot จริง gameplay miniflow ในเอนจินจริง และการเปิด saved state ใหม่ Godot 4.5.1 ติดตั้งอยู่แล้วและนำกลับมาใช้ การพัฒนาเริ่มในไดเรกทอรีเกมใหม่พร้อม HOME ชั่วคราวแยกต่างหาก

ข้อความด้านล่างเป็นส่วนหนึ่งจาก initial brief จริง โดยเพิ่ม line break เพื่อให้อ่านง่ายและคงถ้อยคำเดิมไว้ ไฟล์ initial-prompt.txt ฉบับเต็มอยู่ใน source ZIP สำหรับ brief ของคุณ ส่วนที่นำไปใช้ต่อได้มากที่สุดคือเกณฑ์เสร็จสิ้นที่สังเกตได้ ระบุว่าผู้เล่นทำอะไรได้ และอะไรต้องยังทำงานหลังปิดเกม

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.

จากพรอมป์สู่ไฟล์ feedback ของเอนจิน และห้องที่ทำงานจริง

เอเจนต์สร้างข้อมูลห้อง GDScript เมนู settings local saves และ gameplay harness จากนั้นรันเอนจินซ้ำและตรวจผล Movement ใช้ CharacterBody2D.move_and_slide ผนังและ gate ใช้ StaticBody2D ส่วน cell, hazard และ exit ใช้ Area2D triggers สัญญาเอนจินเหล่านี้เชื่อมห้องที่มองเห็นกับ collision และ state changes ที่ harness ตรวจได้

บันทึกมี game-engine runs 13 ครั้ง ครอบคลุม import, gameplay, regression checks, native capture, reopening, packaging และ pixel inspection ลำดับงานรวม scene-presence failure แรกก่อน implementation, headless gameplay, native screenshots, visual repair แบบเจาะจง และ final artifact checks งานที่สังเกตได้ประกอบด้วย patches จากเอเจนต์ คำสั่ง local คำขอสิทธิ์ native execution และการตรวจ screenshot ไม่พบการ steering งานเพิ่มเติมหรือการซ่อมโค้ดโดยมนุษย์

Circuit Shift sector three แสดง relay ตามหมายเลขที่เปิดใช้งาน 2 ตัว gate ที่เปิด 2 ตัว cell ที่เก็บแล้ว 2 ชิ้น และ courier ข้าง relay two
ภาพ native capture ขนาด 1280 x 960 จริงของ sector three ระหว่าง final run แสดงวงจร relay อิสระทั้งสองที่เปิดอยู่

Defect จริง: keyboard focus ทำให้ปุ่มอ่านยาก

native gameplay run แรกผ่าน assertions แต่การตรวจ screenshot พบข้อความ contrast ต่ำบน primary button ที่กำลัง focus ประเด็นนี้สำคัญเพราะ station menu รองรับ keyboard navigation ด้วย start action ที่ทำงานไม่ได้รับประกันว่า start control จะอ่านง่าย targeted regression check จึงล้มเหลวด้วย contrast ratio ประมาณ 1.36:1

การซ่อมตั้งค่า font_focus_color ให้เป็น foreground สีเข้มของ primary button อย่างชัดเจน check ถัดมาวัดได้ประมาณ 10.57:1 และ final native run ยังผ่าน contrast assertion ไฟล์ output ดิบทั้งที่ล้มเหลวและสำเร็จอยู่ใน evidence directory นี่คือเหตุผลเชิงรูปธรรมที่ควรจับคู่ gameplay tests กับการตรวจ UI state ที่ focus และ selected: state transitions อาจถูกต้อง ขณะที่ control ที่ใช้แสดงมันยังต้องแก้

ขั้นตอนผลที่สังเกตได้บันทึกหลักฐาน
Targeted regressioncontrast ของปุ่มที่ focus 1.36:1; ไม่ผ่าน05-focus-regression
การแก้ focus-color อย่างชัดเจนcontrast ของปุ่มที่ focus 10.57:1; ผ่าน06-focus-fixed
Final native runcontrast assertion และ gameplay ผ่านพร้อมกัน09-native-final

Native tests ตรวจอะไรจริงบ้าง

final gameplay miniflow ขับเคลื่อน Godot Input actions ปกติและ native Control signals mapping check หนึ่งรายการส่ง InputEventKey courier เคลื่อนที่ผ่าน physics ของเอนจิน harness ตรวจ wall collision, การถูกปิดกั้นโดย gate ที่ปิด, relay เปิดและปิด, เงื่อนไข exit ที่ต้องเก็บ cell ทั้งหมด, ชนะ 3 ห้อง, แพ้จาก hazard, restart, pause, settings และ sound-generation/playback triggers มันไม่ได้ teleport ผู้เล่น ให้ cell โดยตรง หรือกำหนด win state

จำนวนด้านล่างคือ assertions ภายใน flow เหล่านี้ รวม waypoints และ captures ไม่ใช่ benchmark tasks อิสระ final native runs ทั้ง 3 ครั้งจบสำเร็จพร้อม stderr ว่าง source gameplay campaign เป็นการทดสอบที่กว้างที่สุด ส่วน PCK run ยืนยันการโหลด pack และการทำงานต่อจาก saved state ไม่ใช่ campaign เต็มรอบที่สองผ่านเกมแบบ package

การรันที่บันทึกไว้Checks ที่ผ่านผลที่สังเกตได้
09-native-final62native campaign ครบ 3 ห้อง พร้อม checks ของ failure, restart, pause, settings และ audio-trigger
run 10-native-reopen-compact6process แยกโหลด progress และ settings แล้วทำต่อเข้า sector three
12-native-pck6เปิด pack นอก source directory เปิด save กลับมา และเข้า sector three

การเปิดใหม่ทดสอบ persistence และ layout แบบกะทัดรัด

native process ใหม่โหลด unlocked=3, completed=true, best times ที่เป็นบวก 3 ค่า, volume=0.35 และ reduced_motion=true จากนั้น Continue เข้า sector three สิ่งนี้แยก persistence ออกจากค่าที่เพียงอยู่ใน memory ระหว่างเกมทำงาน เกมบันทึก progress เมื่อจบห้อง ดังนั้นจุด resume ที่ตั้งใจคือห้อง ไม่ใช่ตำแหน่งสุดท้ายของ courier

compact run ยังให้ layout check ที่สอง ห้อง HUD timer และ controls อยู่ใน frame ครบที่ 720 x 540 desktop captures มีขนาด 1280 x 960 เมื่อรวม source และ pack runs สุดท้าย native captures 12 ภาพผ่าน nonblank pixel sampling และ visual inspection ตรวจ framing กับ readability สิ่งเหล่านี้เป็น native viewport captures จริง ภาพขนาดเล็กแสดงหน้าต่าง desktop แบบกะทัดรัด

Circuit Shift sector three ที่ 720 x 540 แสดงห้องทั้งหมด cell counter, timer, ปุ่ม restart และ pause และสถานะ station-power
ภาพ native capture ขนาด 720 x 540 จริง หลัง process แยกเปิด progress ที่บันทึกไว้และทำต่อเข้า sector three

เวลาและการตั้งค่า: วิธีอ่านบันทึกการรัน

เวลาเริ่มที่ร้องขอคือ 5 กันยายน 2026 เวลา 05:35:51 UTC และบันทึกเสร็จที่ 06:00:11.007 UTC รวม 1,460.007 วินาที หรือเวลาจริงที่ผ่านไปประมาณ 24 นาที 20 วินาที ครอบคลุม implementation, tool execution, tests, repairs, capture และ packaging โดยมีเอนจินติดตั้งพร้อมอยู่แล้ว ไม่ใช่ latency ของ model response หรือการคาดการณ์เวลาพัฒนาเกมอื่น brief งานแรกหนึ่งชุดนำไปสู่ implementation และ tool iterations หลายครั้ง

นี่คือ Codex run ที่ตั้งค่า Astra: coordinator บันทึก spawn_agent.model=gpt-6-astra พร้อม reasoning_effort=xhigh สิ่งนี้ยืนยันเฉพาะ configuration ที่ร้องขอ ไม่พบ model identity ของ API response, token usage, cost หรือจำนวน model/API calls และยังเป็น null ใน run-summary.json ไม่พบ direct APIsRouter request หรือ billing การตรวจ public catalog วันที่ 5 กันยายนยังไม่พบ Astra ใน APIsRouter เอกสารโมเดลอย่างเป็นทางการและ configuration ภายในเครื่องนี้ไม่ได้ยืนยัน gateway access

ดาวน์โหลดและรัน Circuit Shift ใน Godot

ดาวน์โหลด source ZIP เพื่อตรวจ implementation, brief ฉบับเต็ม, controls, test harness และ evidence ที่เก็บไว้ แตกไฟล์ import game/project.godot ใน Godot 4.5.1 แล้วรันโปรเจกต์ เคลื่อนที่ด้วย WASD หรือปุ่มลูกศร ใช้งาน relay ใกล้ตัวด้วย E หรือ Space เริ่มใหม่ด้วย R และ pause ด้วย Escape เก็บ cell ทุกชิ้นเพื่อเปิด exit การชน sentry จะจบความพยายาม

สำหรับ packed version ให้ดาวน์โหลด circuit-shift.pck และเปิดด้วย Godot runtime ที่เข้ากันได้โดยใช้คำสั่งด้านล่าง PCK ต้องใช้ Godot และไม่ใช่ executable แบบ standalone ตรวจสอบ ZIP integrity, critical archived-file equality, source equality กับ final native run และ copied-asset SHA-256 equality แล้ว PCK ถูกเปิดจาก temporary directory นอก source project ลิงก์ดาวน์โหลดของ artifact ทั้งสอง run-summary.json และ SHA-256 manifest อยู่ด้านล่าง

godot --main-pack circuit-shift.pck

ต้นแบบนี้พร้อมทำอะไรต่อ

ขั้นตอนถัดไปที่มีประโยชน์คือ human playtest ของลูป 3 ห้อง: ผู้เล่นใหม่เข้าใจหมายเลข relay ไหม สังเกตไหมว่าเหตุใด exit จึงปิด และกลับมาจากการแพ้ได้หรือไม่ เคสนี้ไม่ได้เก็บ human playtest, listening test หรือข้อมูลการใช้งานจากผู้ใช้จริง automated completion และ audio buffers ที่สร้างขึ้นยืนยัน functional paths แต่ไม่ได้ยืนยันความสนุก สมดุลความยาก คุณภาพเสียง retention หรือ usability ในวงกว้าง

Windows, browser, Steam, touch และ gamepad ยังไม่ได้ทดสอบ browser export templates ใช้ไม่ได้ในเครื่อง Accelerated headless runs ยังแสดง macOS certificate diagnostics และคำเตือนตอนปิด audio resource แม้ final native logs จะมี stderr ว่าง ก่อนเลือก release target ให้แก้ runtime issues ที่เกี่ยวข้อง และรัน input, save, packaging และ performance checks ของ target นั้นเอง ผลลัพธ์เชิงปฏิบัติคือต้นแบบ native ที่ตรวจสอบได้และ verification workflow ที่ทำซ้ำได้เพื่อชี้นำการพัฒนารอบถัดไป

คำถามที่พบบ่อย

งานนี้สร้างเกมประเภทใด?

Circuit Shift เป็นต้นแบบ Godot แบบ top-down 3 ห้องที่เป็นต้นฉบับ แต่ละห้องรวม cell ที่เก็บได้ relay switch ตามหมายเลข gate ทางกายภาพ hazard ที่เคลื่อนที่ และ exit มี station menu, win/loss/restart, pause, settings และ progress ที่บันทึกไว้

จะเล่น PCK ที่ดาวน์โหลดมาอย่างไร?

ใช้ Godot runtime ที่เข้ากันได้ เคสนี้ใช้ Godot 4.5.1 จากโฟลเดอร์ที่มี circuit-shift.pck ให้รัน godot --main-pack circuit-shift.pck หากต้องการตรวจหรือแก้เกม ให้แตก source ZIP และเปิด game/project.godot

ควรใช้ controls ใด?

เคลื่อนที่ด้วย WASD หรือปุ่มลูกศร กด E หรือ Space ใกล้ relay, R เพื่อเริ่มห้องใหม่ และ Escape เพื่อ pause หรือ resume เมนูรองรับเมาส์ Tab และ Enter ต้องเก็บ cell ทุกชิ้นก่อน exit จะเปิด

Progress ใดอยู่รอดหลัง restart?

เมื่อจบห้อง เกมบันทึก sector ที่ปลดล็อก campaign completion และ best times settings ของ volume และ reduced-motion ก็อยู่ต่อ process แยกตรวจค่าที่บันทึกและเข้า sector three ได้ เกมไม่บันทึกทุกการเคลื่อนที่ภายในห้อง

Artwork และ sound effects มาจากไหน?

Visual ที่เฉพาะกับเกมสร้างแบบ procedural ด้วย Godot CanvasItem drawing code sound effects แบบ PCM 5 รายการสังเคราะห์ภายในเครื่องตอน runtime Godot ให้ built-in font ผ่านเอนจินที่ติดตั้งแยกต่างหาก

ควรนำอะไรจาก workflow นี้ไปใช้ต่อ?

เริ่มจากลูปเล็กที่สมบูรณ์และเกณฑ์ยอมรับที่สังเกตได้ ขับ input จริงของเอนจินผ่านการเก็บ cell, gate, win, loss และ restart ตรวจ defect ทางสายตาจาก screenshot เปิด saved state ใน process อื่น แล้วทดสอบ artifact นอก source directory เก็บ failure ไว้เพื่อให้เหตุผลของการซ่อมแต่ละครั้งตามรอยได้