PixelTread
Quy trình làm việc

Quy trình dự án GMS2: từ mở thư mục đến chạy thử

03
Kịch bản

Dự án camera bị rung

Nhiều người vẫn dùng từ gms2 khi muốn nói đến GameMaker hiện tại. Giả sử nhân vật của bạn di chuyển qua lại và camera bị rung do vị trí giữ các giá trị thập phân. Bạn mở thư mục dự án, mô tả triệu chứng trong 1 câu và để PixelTread tìm mã nguồn. Agent ánh xạ thư mục bằng list_dir và glob, đọc các script chuyển động và camera bằng read_file, rồi đề xuất một thay đổi nhỏ dưới dạng diff. Không có gì thay đổi cho đến khi bạn quyết định, nên phiên đầu tiên cũng là cách an toàn để học cách mỗi công cụ hoạt động. Chu trình tương tự áp dụng cho hầu hết các lỗi nhỏ: mô tả, đọc, xem lại, kiểm thử. Mỗi vòng lặp kết thúc trong trình soạn thảo, nơi bạn nhấn play và tự mình xem kết quả. Nếu bản sửa đầu tiên chưa đủ, bạn mô tả những gì đã thay đổi và thẻ tiếp theo sẽ dựa trên kết quả trước đó. Giữ dự án mở trong trình soạn thảo trong khi làm việc.

01

Mở thư mục

Chọn thư mục dự án GameMaker của bạn làm thư mục làm việc của cuộc trò chuyện, để các công cụ tệp có thể truy cập các script và tệp văn bản của dự án. Bắt đầu một cuộc trò chuyện mới cho mỗi lỗi để giữ mọi cuộc hội thoại tập trung vào một vấn đề và một diff duy nhất. Thư mục làm việc là ranh giới cho các công cụ tệp, vì vậy hãy trỏ nó vào dự án và không có gì khác. Mọi thứ bên ngoài thư mục đó không nằm trong phạm vi của các công cụ tệp.

02

Mô tả vấn đề

Viết những gì bạn thấy và ở đâu, ví dụ như camera rung khi nhân vật quay, và đề cập đến script nếu bạn biết tên nó. Một triệu chứng cụ thể cung cấp cho agent dữ liệu để nó có thể tìm kiếm bằng grep. Thêm những gì bạn đã thử, vì điều này giúp agent tránh lặp lại các bước đã làm. Các câu ngắn hoạt động rất hiệu quả.

03

Xem lại diff

Đọc từng thẻ, mở diff và chỉ chấp nhận các dòng bạn hiểu. Từ chối phần còn lại và giải thích lý do, agent sẽ thử lại. Chế độ Ask first tạm dừng trước mọi hành động thay đổi tệp, nên không có gì được lưu trữ ngầm sau lưng bạn. Mở thẻ mở rộng để xem toàn bộ diff, không chỉ dòng tóm tắt.

04

Xây dựng và kiểm thử

Chạy bản dựng trong trình soạn thảo GameMaker, chơi phòng và báo cáo lại những gì bạn thấy để bước tiếp theo bắt đầu từ các sự kiện thực tế. Nếu bản dựng thất bại, hãy dán nhật ký vào một tệp trong thư mục và để agent đọc nó. Sau đó ghi lại kết quả trong cuộc trò chuyện, để yêu cầu tiếp theo có điểm bắt đầu rõ ràng. Chạy cùng một bài kiểm tra sau mỗi thay đổi được chấp nhận, trong cùng một phòng.

Một script chuyển động nhỏ

scr_move.gml
// Move an object with the arrow keys
function scr_move(_speed) {
    var _r = keyboard_check(vk_right);
    var _l = keyboard_check(vk_left);
    var _d = keyboard_check(vk_down);
    var _u = keyboard_check(vk_up);
    x += (_r - _l) * _speed;
    y += (_d - _u) * _speed;
    // keep the position on whole pixels
    x = round(x);
    y = round(y);
}

Hàm đọc các phím mũi tên bằng keyboard_check, di chuyển x và y theo giá trị tốc độ và làm tròn cả hai để sprite được vẽ trên các pixel nguyên. Làm tròn là giải pháp cho tình trạng rung được mô tả ở trên. Một script như thế này chính xác là thứ mà agent có thể mở, thay đổi và hiển thị dưới dạng diff, và bạn có thể kiểm thử nó trong một phòng chỉ trong vòng một phút. Lưu nó dưới dạng tài sản script trước, và thay đổi từng dòng một. Yêu cầu agent thêm nhận xét ở trên mỗi thay đổi để bạn có thể tìm lại sau này. Các tên giả như _speed rất dễ đổi tên.

Bốn nhiệm vụ cho các dự án bắt đầu từ GameMaker Studio 2

Học bằng cách chỉnh sửa script của chính mình

Nhiều người thường hỏi làm thế nào để thực sự học lập trình GameMaker, và câu trả lời tốt là thay đổi các script thực tế và quan sát những gì xảy ra. Mở một dự án nhỏ và yêu cầu agent giải thích một script dòng một. Nó đọc tệp bằng read_file và trích dẫn các tên hàm từ hướng dẫn chính thức bằng web_search. Sau đó yêu cầu một thay đổi nhỏ, chẳng hạn như tăng tốc độ đi. Đọc diff trong chế độ Ask first, chấp nhận nó, xây dựng và chơi. Lặp lại với một thay đổi mới mỗi ngày, và để agent viết một tệp ghi chú bằng write_file, để bạn có thể xem lại những gì mỗi lần chỉnh sửa đã dạy bạn. Tiến bộ chậm vẫn là tiến bộ.

Vẽ sprite với phần mờ dần

Bạn có thể muốn làm trong suốt chỉ một phần của sprite, ví dụ như nửa dưới của nhân vật đứng trong nước. Agent đọc script vẽ của bạn bằng read_file, tìm lệnh gọi vẽ hiện tại bằng grep và đề xuất các thay đổi edit_file để vẽ sprite thành hai phần bằng draw_sprite_part_ext, một phần có giá trị alpha thấp hơn. Plan only có thể hiển thị cho bạn 2 phần trước khi thực hiện. Ngắn gọn và dễ kiểm thử. Chấp nhận diff, chạy phòng và kiểm tra đường nối giữa hai phần ở cấp độ pixel, vì khe hở 1 pixel rất dễ thấy khi chuyển động. Nếu mực nước di chuyển, yêu cầu agent liên kết điểm phân tách với một biến.

Dừng chuyển động trước tường

Để dừng di chuyển trước khi va chạm với một đối tượng, script nên kiểm tra vị trí tiếp theo và chỉ di chuyển sau khi xác nhận an toàn. Yêu cầu agent đọc script chuyển động của bạn và bao bọc mỗi bước trong một kiểm tra place_meeting tại vị trí mục tiêu. Thẻ edit_file hiển thị các dòng mới và Shell báo cáo mã thoát của lệnh xây dựng của bạn. Di chuyển vào tường trong phòng. Xem lại diff trước, sau đó kiểm thử ở tốc độ chậm và nhanh, vì đối tượng nhanh vẫn có thể bỏ qua tường mỏng, và yêu cầu giảm kích thước bước nếu xảy ra hiện tượng này. Giữ phòng kiểm thử nhỏ, chỉ gồm một bức tường và một nhân vật.

Tìm lỗi đầu tiên trong nhật ký xây dựng

Một nhật ký xây dựng dài thường che khuất dòng lỗi quan trọng. Lưu nhật ký dưới dạng tệp văn bản trong thư mục dự án, sau đó yêu cầu agent mở nó bằng read_file và tìm kiếm từ error bằng grep. Agent sẽ báo cáo lỗi đầu tiên cùng với tên script và số dòng, và có thể đọc script đó để đề xuất bản sửa bằng edit_file. Sửa lỗi đầu tiên thường tự động khắc phục các lỗi phía dưới. Chấp nhận diff trong chế độ Ask first, xây dựng lại và so sánh nhật ký mới với nhật ký cũ để xem số lượng lỗi có giảm hay không. Lặp lại cho đến khi nhật ký sạch lỗi.

PixelTread cho Windows

Chạy quy trình này trên dự án của riêng bạn

Tải xuống PixelTread ↗