PixelTread
워크플로우

GMS2 프로젝트 워크플로우: 폴더 열기부터 플레이테스트까지

03
시나리오

카메라가 흔들리는 프로젝트

많은 사람이 오늘날의 GameMaker를 의미할 때 여전히 gms2라고 말합니다. 플레이어가 왔다 갔다 할 때 카메라가 흔들리는 증상이 있다고 가정해 보세요. 위치가 소수점을 유지하기 때문입니다. 프로젝트 폴더를 열고 증상을 1문장으로 설명하면 PixelTread가 코드를 찾아줍니다. 에이전트는 list_dir와 glob로 폴더를 매핑하고, read_file로 이동 및 카메라 스크립트를 읽으며, diff 형태로 작은 변경을 제안합니다. 당신이 결정하기 전까지 아무것도 변경되지 않으므로, 첫 세션은 각 도구가 무엇을 하는지 배우는 안전한 방법이기도 합니다. 이 루프는 대부분의 작은 버그에 동일하게 적용됩니다: 설명, 읽기, 검토, 테스트. 각 단계는 편집기에서 끝나며, 여기서 플레이 버튼을 눌러 결과를 직접 확인할 수 있습니다. 첫 번째 수정로 부족하다면 변경된 내용을 설명하고, 다음 카드는 이전 내용을 바탕으로 작성됩니다. 작업하는 동안 편집기에서 프로젝트를 열어 두세요.

01

폴더 열기

채팅의 작업 폴더로 GameMaker 프로젝트 폴더를 선택하세요. 이렇게 하면 파일 도구들이 스크립트와 프로젝트의 텍스트 파일을 볼 수 있습니다. 각 버그마다 새로운 채팅을 시작하세요. 이렇게 하면 모든 대화가 하나의 문제와 하나의 diff에 집중됩니다. 작업 폴더는 파일 도구의 경계가 되므로, 프로젝트에만 포인팅하세요. 그 폴더 밖의 파일은 파일 도구의 범위에 포함되지 않습니다.

02

문제 설명하기

무엇을 보고 어디에서 보았는지 작성하세요. 예를 들어 플레이어가 회전할 때 카메라가 흔들린다는 점과, 알고 있다면 해당 스크립트를 언급하세요. 구체적인 증상은 에이전트가 grep으로 검색할 수 있는 단서를 제공합니다. 이미 시도한 내용을 추가하세요. 에이전트가 그 내용을 반복하지 않도록 하기 위함입니다. 짧은 문장이 잘 작동합니다.

03

diff 검토하기

각 카드를 읽고, diff를 열어 이해한 줄만 수락하세요. 나머지는 거부하고 이유를 말하세요. 그러면 에이전트가 다시 시도합니다. Ask first(먼저 물어보기) 모드는 파일을 변경하는 모든 작업 전에 일시 정지되므로, 백그라운드에서 파일이 저장되지 않습니다. 확장된 카드를 열어 요약을 넘어 전체 diff를 확인하세요.

04

빌드 및 테스트

GameMaker 편집기에서 빌드를 실행하고, 방을 플레이한 후 본 내용을 보고하세요. 그러면 다음 단계가 사실로부터 시작됩니다. 빌드가 실패하면 로그를 폴더의 파일에 붙여넣고 에이전트가 읽도록 하세요. 그런 다음 채팅에 결과를 기록하세요. 그러면 다음 요청이 명확한 시작점을 갖게 됩니다. 수락된 변경 후마다 동일한 테스트를 같은 방에서 실행하세요.

작은 이동 스크립트

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);
}

이 함수는 keyboard_check로 화살표 키를 읽고, speed 값만큼 x와 y를 이동시킨 후 둘 다 반올림하여 스프라이트가 정수 픽셀에 그리도록 합니다. 반올림은 위에서 설명한 흔들림을 수정하는 방법입니다. 이런 식의 스크립트는 에이전트가 열고 변경하며 diff로 보여줄 수 있는 정확한 대상이며, 방 내에서 1분 안에 테스트할 수 있습니다. 먼저 스크립트 애셋으로 저장하고 한 줄씩 변경하세요. 에이전트에게 각 변경 위에 주석을 추가해 달라고 요청하세요. 나중에 찾기 쉽도록요. _speed와 같은 자리 표시자 이름은 쉽게 변경할 수 있습니다.

GameMaker Studio 2로 시작한 프로젝트를 위한 네 가지 작업

자신의 스크립트를 변경하며 배우기

사람들은 종종 GameMaker 코딩을 정말로 어떻게 배우는지 묻습니다. 좋은 답은 실제 스크립트를 변경하고 변화를 관찰하는 것입니다. 작은 프로젝트를 열고 에이전트에게 스크립트 줄을 하나씩 설명해 달라고 요청하세요. 에이전트는 read_file로 파일을 읽고, web_search를 사용하여 공식 매뉴얼의 함수 이름을 인용합니다. 그런 다음 작은 변경, 예를 들어 더 빠른 걷기 속도를 요청하세요. Ask first 모드에서 diff를 읽고, 수락한 후 빌드하고 플레이하세요. 매일 새로운 변경으로 반복하세요. 에이전트에게 write_file로 메모 파일을 작성하게 하여 각 편집이 무엇을 가르쳤는지 나중에 볼 수 있게 하세요. 느린 진행도 여전히 진행입니다.

일부 투명도가 있는 스프라이트 그리기

스프라이트의 일부만 투명하게 만들고 싶을 수 있습니다. 예를 들어 물에 서 있는 캐릭터의 하반신. 에이전트는 read_file로 draw 스크립트를 읽고, grep으로 현재 draw 호출을 검색한 후 draw_sprite_part_ext로 스프라이트를 두 조각으로 그리는 edit_file 변경을 제안합니다. 그중 하나는 더 낮은 alpha 값을 가집니다. Plan only(계획만) 모드는 먼저 2개의 조각을 보여줄 수 있습니다. 짧고 테스트 가능합니다. diff를 수락하고 방을 실행한 후, 두 부분 사이의 이음을 픽셀 수준에서 확인하세요. 1픽셀 간격은 움직임에서 쉽게 보입니다. 물 높이가 움직인다면 에이전트에게 분할을 변수에 연결하도록 요청하세요.

벽 앞에서 이동 멈추기

객체에 충돌하기 전에 움직임을 멈추려면 스크립트가 다음 위치를 테스트한 후에만 이동해야 합니다. 에이전트에게 이동 스크립트를 읽고 대상 위치에 대한 place_meeting 확인으로 각 단계를 감싸도록 요청하세요. edit_file 카드는 새 줄을 보여주고 Shell은 빌드 명령의 종료 코드를 보고합니다. 방에서 벽에 부딪히세요. 먼저 diff를 검토한 후 느린 속도와 빠른 속도 모두에서 테스트하세요. 빠른 객체는 여전히 얇은 벽을 통과할 수 있으므로, 통과한다면 더 작은 단계를 요청하세요. 테스트 방은 벽 하나와 플레이어 하나로 작게 유지하세요.

빌드 로그에서 첫 번째 오류 찾기

긴 빌드 로그는 중요한 줄을 가립니다. 로그를 프로젝트 폴더의 텍스트 파일로 저장한 후, 에이전트에게 read_file로 열고 grep으로 'error'라는 단어를 검색하도록 요청하세요. 에이전트는 첫 번째 오류와 함께 스크립트 이름과 줄 번호를 보고하며, 해당 스크립트를 읽어 edit_file로 수정을 제안할 수 있습니다. 첫 번째 오류를 수정하면 종종 그 아래 오류들도 함께 해결됩니다. Ask first에서 diff를 수락하고 다시 빌드한 후, 새 로그와 이전 로그를 비교하여 오류 수가 줄었는지 확인하세요. 로그가 깨끗해질 때까지 반복하세요.

Windows용 PixelTread

자신의 프로젝트에서 이 워크플로우 실행하기

PixelTread 다운로드 ↗