Phát triển game Astra: Circuit Shift
Updated 2026-09-05
Một tác vụ Codex cấu hình Astra đã tạo nguyên mẫu Godot native ba phòng với va chạm hoạt động, puzzle relay, trạng thái thắng thua và tiến độ lưu. Đây là con đường từ brief tới game đã kiểm thử, gồm cả lần sửa mà kiểm tra gameplay ban đầu bỏ sót.
Kết quả: vòng gameplay ba phòng hoàn chỉnh
Circuit Shift là game puzzle nhìn từ trên xuống nhỏ được xây và kiểm thử trong Godot 4.5.1 trên macOS. Bạn điều khiển courier CS-07 qua ba phòng trạm relay, thu ba ô năng lượng ở mỗi phòng, mở cổng đánh số, tránh sentry di động và tới lối ra. Lần chạy native tự động cuối hoàn tất cả ba phòng, thực thi thua và khởi động lại, đồng thời lưu tiến độ chiến dịch và thời gian tốt nhất. Một tiến trình riêng đã mở lại file lưu thành công.
Bài học hữu ích cho dự án game có AI hỗ trợ là sự kết hợp giữa brief có giới hạn, kiểm tra gameplay do engine điều khiển và kiểm tra trực quan. Yêu cầu một vòng nhỏ hoàn chỉnh giúp kiểm tra nhiều hơn di chuyển: lối ra phải vẫn khóa trước khi thu thập, hoàn tất phòng phải mở khóa khu vực tiếp theo và cài đặt phải tồn tại sau khi mở lại. Dự án tải xuống cho phép bạn tự kiểm tra các hành vi đó.

Brief ban đầu làm cho việc hoàn tất trở nên cụ thể
Tác vụ đặc tả game nguyên bản tên Circuit Shift, ba màn ngắn, vật lý engine, công tắc và cổng, ô sưu tầm, thắng/thua/khởi động lại, menu bắt đầu, cài đặt và tiến độ đã lưu. Tác vụ cũng yêu cầu ảnh chụp xác thực, miniflow gameplay trên engine thực và mở lại trạng thái đã lưu. Godot 4.5.1 đã được cài và dùng lại; phát triển bắt đầu trong thư mục game mới với HOME tạm riêng.
Đoạn bên dưới trích từ brief ban đầu thực tế, thêm xuống dòng để dễ đọc và giữ nguyên cách diễn đạt gốc. Tệp initial-prompt.txt hoàn chỉnh nằm trong ZIP mã nguồn. Với brief của bạn, phần có thể chuyển giao nhất là tiêu chí hoàn tất có thể quan sát: nêu người chơi làm được gì và điều gì vẫn phải hoạt động sau khi đóng game.
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.Từ prompt tới tệp, phản hồi engine và các phòng hoạt động
Agent đã viết dữ liệu phòng, GDScript, menu, cài đặt, lưu cục bộ và harness gameplay, sau đó liên tục chạy engine và kiểm tra kết quả. Di chuyển dùng CharacterBody2D.move_and_slide; tường và cổng dùng StaticBody2D; ô, chướng ngại và lối ra dùng trigger Area2D. Các hợp đồng engine này nối phòng hiển thị với va chạm và thay đổi trạng thái mà harness có thể quan sát.
Hồ sơ có 13 lần chạy game engine qua nhập, gameplay, kiểm tra hồi quy, chụp native, mở lại, đóng gói và kiểm tra pixel. Chuỗi gồm lỗi hiện diện cảnh ban đầu trước triển khai, gameplay headless, ảnh native, sửa hình ảnh tập trung và kiểm tra artifact cuối. Nghệ thuật riêng cho game được vẽ theo thủ tục bằng mã Godot CanvasItem, còn năm hiệu ứng âm thanh PCM được tổng hợp cục bộ. Công việc quan sát được gồm patch do agent viết, lệnh local, yêu cầu quyền chạy native và kiểm tra ảnh chụp; không quan sát thấy điều khiển tác vụ hoặc sửa mã thủ công nào khác của con người.

Lỗi thực tế: focus bàn phím khiến nút khó đọc
Lần chạy gameplay native đầu tiên đạt các assertion, nhưng kiểm tra ảnh chụp phát hiện chữ tương phản thấp trên nút chính đang focus. Điều đó quan trọng vì menu trạm cũng hỗ trợ điều hướng bàn phím: thao tác bắt đầu hoạt động không bảo đảm điều khiển bắt đầu dễ đọc. Kiểm tra hồi quy có mục tiêu sau đó thất bại với tỷ lệ tương phản khoảng 1.36:1.
Bản sửa đặt rõ font_focus_color thành màu nền tối của nút chính. Kiểm tra tiếp theo đo khoảng 10.57:1 và lần chạy native cuối vẫn giữ assertion tương phản đạt. Đầu ra thô thất bại và thành công vẫn nằm trong thư mục bằng chứng. Đây là lý do cụ thể để ghép kiểm tra gameplay với kiểm tra trạng thái UI focus và selected: chuyển trạng thái có thể đúng trong khi điều khiển hiển thị chúng vẫn cần làm thêm.
| Giai đoạn | Kết quả quan sát | Hồ sơ bằng chứng |
|---|---|---|
| Hồi quy có mục tiêu | Tương phản nút focus 1.36:1; thất bại | 05-focus-regression |
| Sửa màu focus rõ ràng | Tương phản nút focus 10.57:1; đạt | 06-focus-fixed |
| Lần chạy native cuối | Assertion tương phản và gameplay cùng đạt | 09-native-final |
Các test native thực sự đã kiểm tra gì
Miniflow gameplay cuối điều khiển các action Input bình thường của Godot và signal Control native; một kiểm tra mapping gửi InputEventKey. Courier di chuyển qua vật lý engine. Harness kiểm tra va chạm tường, chặn cổng đóng, mở và đóng relay, yêu cầu lối ra sau khi thu đủ ô, ba lần thắng phòng, thua do chướng ngại, khởi động lại, tạm dừng, cài đặt và trigger tạo/phát âm thanh. Nó không dịch chuyển người chơi, cộng ô trực tiếp hay gán trạng thái thắng.
Các số đếm dưới đây là assertion trong các flow, gồm waypoint và ảnh chụp, không phải task benchmark độc lập. Cả ba lần chạy native cuối đều thoát thành công với stderr trống. Gameplay campaign từ mã nguồn là bài kiểm tra rộng nhất; lần chạy PCK xác lập tải gói và tiếp tục trạng thái lưu, không phải campaign hoàn chỉnh thứ hai qua game đã đóng gói.
| Lần chạy đã ghi | Kiểm tra đạt | Kết quả quan sát |
|---|---|---|
| 09-native-final | 62 | Campaign native ba phòng đầy đủ cùng kiểm tra thất bại, khởi động lại, tạm dừng, cài đặt và trigger âm thanh |
| 10-native-reopen-compact | 6 | Tiến trình riêng tải tiến độ và cài đặt, sau đó tiếp tục vào khu vực ba |
| 12-native-pck | 6 | Gói chạy ngoài thư mục mã nguồn, mở lại file lưu và vào khu vực ba |
Mở lại đã kiểm tra tính bền vững và bố cục gọn
Một tiến trình native mới tải unlocked=3, completed=true, ba thời gian tốt nhất dương, volume=0.35 và reduced_motion=true. Continue vào khu vực ba. Điều này tách tính bền vững khỏi một giá trị chỉ tồn tại trong bộ nhớ khi game đang chạy. Game lưu tiến độ khi hoàn tất phòng, nên điểm tiếp tục dự kiến là một phòng thay vì vị trí cuối của courier.
Lần chạy gọn cũng cung cấp một kiểm tra bố cục thứ hai: phòng, HUD, đồng hồ và điều khiển vẫn nằm trọn trong khung 720 x 540. Ảnh desktop là 1280 x 960. Trong các lần chạy mã nguồn và gói cuối, mười hai ảnh chụp native đạt lấy mẫu pixel không trống, còn kiểm tra trực quan xác nhận khung và khả năng đọc. Đây là ảnh chụp viewport native thật; ảnh nhỏ hơn minh họa cửa sổ desktop gọn.

Thời gian và cấu hình: đọc hồ sơ lần chạy thế nào
Lần bắt đầu yêu cầu là ngày 5 tháng 9 năm 2026 lúc 05:35:51 UTC; hoàn tất được ghi lúc 06:00:11.007 UTC. Đó là 1,460.007 giây, khoảng 24 phút 20 giây thời gian thực trôi qua. Khoảng này gồm triển khai, thực thi công cụ, test, sửa chữa, chụp và đóng gói với engine hiện có. Đây không phải độ trễ phản hồi mô hình hay dự báo thời gian phát triển game khác. Một brief ban đầu dẫn tới nhiều vòng triển khai và công cụ.
Đây là lần chạy Codex đã cấu hình Astra: điều phối viên ghi spawn_agent.model=gpt-6-astra với reasoning_effort=xhigh. Điều đó chỉ xác lập cấu hình được yêu cầu. Danh tính mô hình response API, mức dùng token, chi phí và số lần gọi model/API không được lộ và vẫn là null trong run-summary.json; không quan sát thấy yêu cầu hoặc thanh toán APIsRouter trực tiếp. Kiểm tra danh mục công khai ngày 5 tháng 9 cũng không thấy Astra trên APIsRouter. Tài liệu mô hình chính thức và cấu hình local này không xác lập quyền truy cập gateway.
Tải và chạy Circuit Shift trong Godot
Tải ZIP mã nguồn để kiểm tra triển khai, brief hoàn chỉnh, điều khiển, harness test và bằng chứng được giữ lại. Giải nén, import game/project.godot trong Godot 4.5.1 rồi chạy dự án. Di chuyển bằng WASD hoặc phím mũi tên, vận hành relay gần đó bằng E hoặc Space, khởi động lại bằng R và tạm dừng bằng Escape. Thu mọi ô để kích hoạt lối ra; chạm sentry sẽ kết thúc lần thử.
Với bản đóng gói, tải circuit-shift.pck và chạy bằng runtime Godot tương thích theo lệnh bên dưới. PCK cần Godot và không phải executable độc lập. Tính toàn vẹn ZIP, equality của tệp archive quan trọng, equality mã nguồn với lần chạy native cuối và equality SHA-256 của asset sao chép đã được xác minh. PCK được chạy từ thư mục tạm bên ngoài project mã nguồn. Liên kết tải hai artifact, run-summary.json và manifest SHA-256 được liệt kê bên dưới.
godot --main-pack circuit-shift.pckNguyên mẫu này sẵn sàng cho bước tiếp theo nào
Bước hữu ích tiếp theo là playtest con người với vòng ba phòng: người chơi mới có hiểu cách đánh số relay, nhận ra vì sao lối ra bị khóa và hồi phục sau khi thua không? Ca này không thu thập playtest, test nghe hay dữ liệu người dùng thực. Hoàn tất tự động và buffer âm thanh được tạo xác lập đường chức năng; chúng không xác lập mức thích thú, cân bằng độ khó, chất lượng âm thanh, giữ chân hay khả năng sử dụng rộng.
Windows, trình duyệt, Steam, cảm ứng và gamepad chưa được kiểm thử; template xuất trình duyệt không khả dụng cục bộ. Lần chạy headless tăng tốc vẫn phát diagnostic chứng chỉ macOS và cảnh báo tắt tài nguyên âm thanh, dù log native cuối có stderr trống. Trước khi chọn đích phát hành, xử lý vấn đề runtime liên quan và chạy kiểm tra input, lưu, đóng gói và hiệu năng riêng của đích. Kết quả thực tế ở đây là nguyên mẫu native có thể kiểm tra và quy trình xác minh lặp lại để dẫn dắt vòng phát triển tiếp theo.
Câu hỏi thường gặp
Tác vụ đã tạo loại game nào?
Circuit Shift là nguyên mẫu Godot nguyên bản nhìn từ trên xuống gồm ba phòng. Mỗi phòng kết hợp ô sưu tầm, công tắc relay đánh số, cổng vật lý, chướng ngại di động và lối ra. Game có menu trạm, thắng/thua/khởi động lại, tạm dừng, cài đặt và tiến độ đã lưu.
Làm thế nào chơi PCK đã tải?
Dùng runtime Godot tương thích; ca này dùng Godot 4.5.1. Từ thư mục chứa circuit-shift.pck, chạy godot --main-pack circuit-shift.pck. Để kiểm tra hoặc sửa game, giải nén ZIP mã nguồn và mở game/project.godot.
Nên dùng điều khiển nào?
Di chuyển bằng WASD hoặc phím mũi tên. Nhấn E hoặc Space gần relay, R để khởi động lại phòng và Escape để tạm dừng hoặc tiếp tục. Menu hỗ trợ chuột, Tab và Enter. Phải thu mọi ô trước khi lối ra kích hoạt.
Tiến độ nào tồn tại sau khi khởi động lại?
Hoàn tất phòng lưu khu vực đã mở khóa, hoàn tất campaign và thời gian tốt nhất. Cài đặt volume và reduced-motion cũng tồn tại. Một tiến trình riêng xác minh các giá trị lưu đó và tiếp tục vào khu vực ba; game không lưu từng chuyển động trong phòng.
Nghệ thuật và hiệu ứng âm thanh đến từ đâu?
Hình ảnh riêng của game được viết theo thủ tục trong mã vẽ Godot CanvasItem. Năm hiệu ứng âm thanh PCM được tổng hợp cục bộ lúc runtime. Godot cung cấp font tích hợp qua engine được cài riêng.
Nên tái sử dụng gì từ quy trình này?
Bắt đầu bằng vòng nhỏ hoàn chỉnh và tiêu chí chấp nhận có thể quan sát. Điều khiển input engine thực qua thu thập, cổng, thắng, thua và khởi động lại; kiểm tra ảnh chụp để tìm lỗi trực quan; mở lại trạng thái lưu trong tiến trình khác; rồi kiểm thử artifact ngoài thư mục mã nguồn. Giữ lỗi để mỗi lần sửa có lý do truy dấu được.