나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2023-09-23 18:48:05

게임메이커/상세 기능

파일:상위 문서 아이콘.svg   상위 문서: 게임메이커
1. 전역 변수2. 임시 변수3. 뷰4. 디버그 모드5. 스프라이트 제작
5.1. 마스크5.2. 애니메이션

1. 전역 변수

전역 변수란 어떤 변수를 하나의 오브젝트 안에서만 사용되도록 하는 것이 아니라 게임 전체에서 사용될 수 있도록 하는 것이다. 간단히 예를 들자면, 각각의 몬스터의 체력을 다르게 지정할 필요가 있는 게임에서는 그 몬스터의 체력을 일반 변수(지역 변수)를 통해서 지정한다. 하지만, 플레이어의 돈이나 기타 게임 시스템과 관련된 변수들은 어떤 한 오브젝트에만 적용될 것이 아니라 게임 전체에 적용될 필요성이 있으므로 전역 변수를 사용해야 한다.

사용법은 간단한데, a란 이름의 전역 변수를 정의하고 싶다면 global.을 붙여서 global.a라고 정의하면 된다! 혹은 게임이 시작될 때 코드 어딘가에 globalvar (변수 이름);을 쓰면 굳이 일일이 global.을 붙이지 않고도 글로벌 변수로 쓸 수 있다.

2. 임시 변수

한편 코드를 실행할 때 잠깐 쓰고 버려지는 변수가 있는데, 이를 별도 처리 없이 일반 변수(지역 변수)로 사용하면 그만큼의 메모리가 낭비된다. 이때 코드 맨 위에 var문을 사용해서 그 코드에서만 잠깐 사용하고 자동으로 삭제할 임시 변수를 정의할 수 있다. 예를 들어 var temp;와 같이 쓰면 그 코드가 끝날 때까지만 temp라는 이름의 변수를 임시로 사용할 수 있다.

게임메이커 8.x에서는 var temp = 1;과 같이 선언과 동시에 대입을 하면 문법 오류가 나지만, 스튜디오로 넘어오면서 이러한 문법이 가능해지게 되었다.

지역 변수, 임시 변수, 전역 변수의 이름이 겹칠 경우 임시 변수는 그냥 foo, 지역 변수는 self.foo, 전역 변수는 global.foo로 써서 구분할 수 있다.

3.

게임에서 사용되는 룸의 크기가 너무 클 때, 우리는 게임을 플레이하는 데 어려움을 겪는다. 이때 필요한 것이 바로 라는 기능이다. 뷰는 한 오브젝트를 자동으로 추적하여 그 오브젝트를 중심으로 그 주위를 화면상에 보여준다. 코드를 사용하면 룸 상의 특정 지점을 지정하거나 반대로 뷰 상의 특정 지점을 다른 곳에 활용할 수 있다. 대표적으로 UI처럼 화면에 고정되어야 하는 인스턴스들은 뷰를 기준으로 draw 해주면 UI가 이탈하는 문제가 없다.

이 기능은 다양한 방법으로 응용되곤 하는데, 대표적으로 2인용 게임이 있다. 한 화면에 여러 시점의 뷰를 보여줄 수 있으므로 박스헤드와 같은 2인용 게임을 만들 때 매우 유용하다. 뷰를 설정할 때는 그 뷰를 지정할 룸을 클릭한 후, 뷰 활성화에 체크를 해주면 된다. 물론, 추적할 오브젝트도 같이 설정해야 한다.

4. 디버그 모드

자신이 만든 게임을 테스트해보고 싶을 때 사용하는 기능. 디버그 모드 상에서는 변수, 게임 스피드 등을 매우 쉽게 확인하거나 조작할 수 있으므로 유용하다. 간단히 예를 들자면, 어떤 이벤트가 일어날 조건이 플레이어의 레벨이 100을 달성했을 때라고 생각해보자. 이때는 겨우 테스트 한 번 하자고 레벨을 100까지 올려볼 수는 없을 것이다. 따라서 디버그 모드를 사용한다.

사용 방법은 상단의 빨간색 화살표(F6)를 누르면 되고, 변수 등을 조작하고 싶다면 디버그 모드에서 뜨는 창에서 Tools - Execute Code를 사용한다.

게임메이커: 스튜디오에서는 디버그 창이 바뀌어 8.0보다 더 편리하게 디버깅을 할 수 있게 되었다. 단, GMS 엔진의 한계로 코드 실행이 막혀있기 때문에 게임에서 자체적으로 디버그 기능을 짜서 넣어놔야 한다. 코드상에 중단점을 지정하면 그 위치에서 게임이 일시정지되고 각종 정보가 표시된다. 실시간으로 변수 값 변화를 추적할 수도 있다.

5. 스프라이트 제작

5.1. 마스크

게임메이커에서 유용하게 사용되는 기능 중 하나가 바로 마스크이다. 이 기능을 통해 각각의 스프라이트의 충돌범위를 지정할 수 있다. 한마디로 판정박스. 기본적으로는 스프라이트 모양에 맞추어 자동으로 설정되나, 액션 게임 등에서 세세한 조작이 필요할 경우 Modify mask를 눌러 수정할 수 있다. 사각 박스로 후려치거나 원형으로 대충 뭉개는 게 아니라 픽셀 대응으로 정밀하게 체크해주는 옵션이 있어서 매우 편리하다. 물론 사각 박스나 원형으로 설정하는 것도 가능하고, 정밀 마스크를 쓸 때에도 사각의 충돌체크 범위를 또 설정해 2중 마스킹을 하는 것도 가능하다.

5.2. 애니메이션

스프라이트를 애니메이션 형태로 만드는 기능이다. 사용법은 간단하게 Edit sprite를 클릭하여 여러 개의 스프라이트를 만들어주면 된다. 그렇게 되면 그 여러 개의 스프라이트가 연속적으로 이어지게 보이게 된다. 하지만, 자연스러운 형태의 애니메이션을 만드는 것은 매우 어렵기 때문에, 스프라이트 수정 창에서 Animation 탭을 사용하면 간단한 회전이나 확대, 축소 등을 편리하게 구현할 수 있다. GIF를 지원하지 않으므로 외부 툴에서 작업해서 삽입할 경우에는 개별 png로 출력해서 한 스프라이트에 몰아넣어주면 된다.