오류 보고서 작성하기
게임 메이커(GameMaker)를 만들 때 안정적이고 신뢰할 수 있는 도구가 되도록 많은 주의를 기울였지만, 소프트웨어의 특성과 여러 운영 체제에서 실행되는 특성상 문제가 발생할 가능성이 항상 존재합니다. 대부분의 IDE 오류는 게임 메이커에서 감지되며, "불안정해졌다"는 오류 메시지가 나타날 수 있습니다. 이 경우 프로젝트를 저장하고 프로그램을 종료한 후 다시 시작하라는 메시지가 표시됩니다.
이런 일이 발생하거나 런타임 또는 IDE에 버그가 있다고 의심되는 경우, 도움 메뉴에서 "게임 메이커 버그 보고" 옵션을 사용하여 버그 보고서를 제출해 주시기 바랍니다. 가능한 한 많은 정보를 제공하고 모든 필드를 최대한 잘 작성해 주시기 바랍니다. 또한, 버그 보고자가 프로젝트의 복사본을 보내도록 허용하는 것을 강력히 고려해 주시기 바랍니다. 이는 문제를 재현하는 데 필수적일 수 있으며, 프로젝트를 제공하지 않으면 도움을 드릴 수 없을 수 있습니다. IDE 버그 보고서를 통해 보내는 파일은 항상 비공식적으로 첨부됩니다.
버그 보고서 작성 창
Help -> Report a GameMaker Bug
옵션을 선택하면 IDE 내에서 버그 보고서를 작성할 수 있는 창이 열립니다. 로그인하지 않은 경우, 로그인 또는 등록하라는 메시지가 표시됩니다. 익명으로 계속 진행하는 것도 가능합니다. 게임 메이커 계정을 사용하는 경우, 게임 메이커 계정 대시보드를 통해 GitHub 계정을 연결하는 것이 좋습니다. 이렇게 하면 제출한 보고서가 계정에 연결되어 업데이트를 게시하고 팀으로부터 알림을 받을 수 있습니다.
버그 보고서 창에서는 제목과 설명을 입력하고, 문제를 재현하는 단계 및 문제 카테고리를 선택할 수 있습니다. 프로젝트를 비공식적으로 첨부할 수도 있으며, 이는 많은 종류의 버그 보고서에 일반적으로 필요합니다. 추가 파일을 첨부할 수도 있습니다. 마지막으로, 문제의 가시성을 설정해야 하며, 공개 또는 비공개로 설정할 수 있습니다(첨부된 프로젝트와 파일은 항상 비공식적으로 유지되며 게임 메이커 직원만 접근할 수 있습니다).
제출하기 전에 알려진 문제 목록을 먼저 확인하는 것이 좋습니다. 보안 취약점을 보고할 가능성도 있습니다. 버그 보고서를 통해 첨부된 모든 파일은 비공식적으로 업로드되며, 공개된 버그라도 게임 메이커 팀만 접근할 수 있습니다.
프로젝트나 추가 파일을 첨부하는 것을 잊은 경우, 도움 메뉴에서 "버그/티켓 샘플 업로드" 옵션을 사용하여 해당 파일을 업로드하고 문제에 추가할 수 있는 링크를 받을 수 있습니다. 현재 프로젝트를 포함하려면 "프로젝트 포함" 체크박스를 선택할 수 있습니다. 문제를 보여주는 샘플 프로젝트를 제공하는 것이 매우 권장됩니다. 런너와 관련된 카테고리를 선택할 때 체크박스가 선택되지 않은 경우 현재 패키지를 포함하라는 메시지가 표시됩니다. 마지막으로, 제출 버튼을 클릭하여 보고서를 제출할 수 있습니다.
충돌 감지 창
게임 메이커가 완전히 충돌하는 극단적인 경우, 다음 시작 시 IDE 버그 보고자가 이전 충돌이 감지되었다고 알리며 버그 보고서를 보내달라고 요청할 수 있습니다. 이 경우 보고서를 제출해 주시기 바랍니다. "보고하기"를 클릭하면 위에서 설명한 버그 보고서 창이 열립니다. 어떤 데이터가 전송되는지 정확히 알고 싶다면 게임 메이커 도움말 센터의 관련 기사를 참조하시기 바랍니다.
항목 | 설명 |
---|---|
오류 감지 | IDE에서 오류를 감지하고 사용자에게 알림 |
버그 보고서 작성 | 제목, 설명, 재현 단계 입력 |
프로젝트 첨부 | 문제 재현을 위한 프로젝트 첨부 |
가시성 설정 | 문제의 공개 또는 비공개 설정 |
충돌 감지 | IDE가 충돌 시 사용자에게 보고 요청 |
활용 예제
// 예제 1: 간단한 오류 보고 함수
function reportError(errorMessage) {
// 오류 메시지를 로그에 기록
show_error(errorMessage, true);
}
// 예제 2: 프로젝트 파일 첨부
function attachProjectFile(projectPath) {
// 프로젝트 파일을 첨부하는 로직
var success = uploadFile(projectPath);
return success;
}
// 예제 3: 버그 보고서 제출
function submitBugReport(title, description) {
var report = createReport(title, description);
sendReport(report);
}
// 예제 4: 충돌 감지 및 보고
function detectCrash() {
if (isCrashed()) {
reportError("게임이 충돌했습니다. 버그를 보고합니다.");
}
}
// 예제 5: 사용자에게 알림
function notifyUser(message) {
show_message(message);
}
// 예제 6: 보안 취약점 보고
function reportSecurityVulnerability(vulnerabilityDetails) {
// 보안 취약점 보고 로직
sendSecurityReport(vulnerabilityDetails);
}