게임메이커

게임메이커 8.0~8.1까지의 심볼게임메이커: 스튜디오의 현재 심볼

1 개요

요요 게임즈에서 제작하는 2D 게임 제작에 특화된 통합 개발 툴.

네덜란드의 교수인 마르크 오버르마르스(Mark Overmars)가 강의를 목적으로 만든 Animo라는 그래픽 툴을 기반으로 1999년 첫 사용버전인 1.1을 출시한 이후 8.1버전까지 넘버링이 이어져왔고, 2012년 멀티플랫폼으로 퍼블리싱이 가능한 툴인 게임메이커: 스튜디오 1.0을 발매한다.

그래픽 에디터, 맵 에디터, 자체 스크립트 언어 등이 내장되어 이 프로그램 단독으로도 게임을 만드는데 큰 무리는 없다. 플래시와 추구하는 바가 비슷하지만, 게임메이커는 게임 제작에 특화되어 있다는 게 차이점.

현재 최신 버전은 게임메이커: 스튜디오 1.4.1760이고 개발툴 자체는 윈도우 전용[1][2]이지만 콘솔부터 모바일, 데스크탑까지 다양한 플랫폼으로 익스포트 가능한 모듈을 구매할 수 있다.

2 특징

상당히 오랜 역사를 갖고 있으며 사용자층이 두터운 편이다.

게임메이커: 스튜디오 이전의 구 게임메이커의 최신 버전은 8.1.141이다. 스튜디오에 비해 퍼포먼스가 좀 떨어지고 데스크탑용 게임만 만들 수 있지만 프로그램 자체는 가벼워 빠른 개발이 가능하기 때문에 간단한 프로토타이핑용 개발 도구로 아직까지 쓰이고 있다.[3] 개발사인 요요게임즈에서는 공식적으로 업데이트를 종료한 상황.

멀티 플랫폼(윈도우, OS X, iOS, 안드로이드, 우분투, HTML5, 타이젠, Steam 창작마당, GameMaker: Player)을 지원하는 게임메이커: 스튜디오가 2012년 5월 22일 발매되었으며, 최신 버전은 2016년 8월 30일 업데이트된 1.4.1760(2016년 9월 기준)이다. Pro 라이센스에서 다음 게임메이커 버전의 프리뷰를 설치해 볼 수 있다.

쉬운 사용법과 높은 자유도를 바탕으로[4] 대규모 커뮤니티를 만들었으며 인디 게임계에서는 중요한 위치를 차지하고 있다. 게임메이커: 스튜디오부터는 모바일 플랫폼 지원, 스팀 워크샵 연동을 통해 이전 버전보다 본격적으로 시장 진입을 노리고 있다.

처음에 유료로 판매되며 간간이 무료로 제공되던 스탠다드 에디션이 2014년 6월부터 완전 무료로 전환되었다. 이 게임은 게임메이커로 만들어졌다는 표시가 실행 시 뜨지만 이전 무료 버전에 리소스 제한이 있었던 걸 생각하면 매우 좋아졌다. 재한이 딱 한개다!!

구입하지 않아도 많은 기능을 제공하며 만든 게임을 팔아도 따로 라이센스비 등을 지불할 필요가 없으며 가격 또한 단돈 몇만 원 수준의 대인배 툴이기는 하지만, 여러 플랫폼으로 익스포트하려면 플랫폼별로 모듈을 구매해야 한다. 기존 버전에 비하면 훨씬 비싸지만, 별로 어렵잖게 다양한 플랫폼으로 어플리케이션을 익스포트할 수 있다는 것은 강점. 그리고 2012년 10월부터 Steam 창작마당과 연동을 시작하면서, 개인 및 소규모 제작팀의 시장 진출이 가속화될 것으로 보인다. 2015년 9월 기준으로 윈도우, 모던UI 앱(네이티브/자바스크립트), 우분투(리눅스), OS X 및 게임메이커: 플레이어(게임메이커 게임들을 구동하는 전문 플랫폼) 익스포트가 기본으로 제공되며(Pro 라이센스 기준), 안드로이드, iOS, 타이젠 (네이티브/자바스크립트), 윈도우 폰, HTML5 익스포트를 추가로 구매할 수 있다.

주의할 점은, 각 모듈을 익스포트 할 때 대상 모듈의 OS와 SDK가 있어야 한다. 윈도우8용 앱이라면 윈도우8 64비트, 안드로이드면 안드로이드 SDK, iOS라면 OS X이 설치된 맥, 우분투라면 리눅스가 설치된 컴퓨터, ... 이런 식이다. 개발자에겐 당연한 사실이지만 내 핸드폰에 게임을 설치하고 싶어! 하고 덜컥 샀다간 낭패를 볼 수 있다. 또한 사용자 계정 이름에 공백이나 특수문자가 있으면 익스포트에 애로사항이 생기므로 잘 알아보는 게 좋다. 사용자 계정 이름이 한글로 되어 있는 경우에도 오류를 뿜어내기도 한다.

2014년 말부터 마켓플레이스라는 서비스를 제공하여 에셋(게임에 쓰이는 그림이나 엔진 등의 소스)이나 게임을 팔 수 있게 되었다. 유료로 뭔가를 팔려면 프로 라이센스가 있어야 한다. 다만 역으로 마켓플레이스에서 다운하거나 구입하지 않은 확장 패키지는 사용할 수 없게 되었다.망했다 Execute Shell 무료가 있긴 한데...

비슷한 소프트웨어론 컨스트럭트, MMF2(멀티미디어 퓨전 2, 이후 클릭팀 퓨전으로 개명), 유니티3D, 일본의 아스키사에서 만든 액션 쯔꾸르도 있다.

현재 험블번들에서 프로는 무료로, 10달러내면 HTML, 15달러내면 안드로이드 및 iOS 모듈을 제공한다. 이는 정상 가격의 2퍼센트에 불과하니 구매에 좋은 기회다. 이 기회를 놓치더라도 후의 기회를 기약해보자.

3 상세 설명

3.1 구조

3.1.1 게임메이커 전체

여기에서는 모든 게임메이커(~8.1&게임메이커: 스튜디오)에서 공통으로 존재하는 리소스를 설명한다.

3.1.1.1 스프라이트

스프라이트는 그래픽 리소스인데, 게임메이커에서 제공하는 자체 스프라이트 에디터는 여러 프레임의 애니메이션과 충돌 범위를 지정할 수 있다. 물론 전문 그래픽 툴에 비하면 한없이 초라한 수준의 에디터지만 바로 모션을 체크할 수 있다는 장점이 있다.

3.1.1.2 백그라운드

백그라운드는 배경화면으로 주로 사용된다. 스프라이트와 같은 에디터(일부 기능이 없긴 하다)를 제공하며 간혹 가다 스프라이트처럼 쓰는 사람도 있다. 타일셋으로 사용되기도 하며, 3D 게임에서는 텍스처로 사용되는 경우도 있다. 스프라이트와 비교하면 충돌 범위, 애니메이션이 지원되지 않는 정적인 이미지이다.

3.1.1.3 사운드

사운드는 말 그대로 소리이다. 게임메이커 한정으로 약간의 효과를 넣을 수 있다. 다만 내장 사운드 에디터는 없다.

3.1.1.4 패스

패스는 경로를 지정할 때 사용된다. 주로 슈팅게임류에서 사용하며 코드로 제어하기 힘든 움직임을 제어할 때도 쓰인다.

3.1.1.5 스크립트

일반적인 다른 프로그래밍 언어의 함수와 같은 개념이다. 오브젝트에 직접 작성되는 코드와 따로 분리되어 취급된다.

3.1.1.6 폰트

폰트는 글꼴을 말한다. 크기, 굵기, 기울이기 등의 설정을 할 수 있다. 드로우할 때 사용하는데, 사용법은 draw_set_font(폰트_이름); draw_text(x좌표, y좌표, 내용);이다.
폰트를 사용할 문자 범위를 지정할 수 있으며, 스튜디오부터는 유니코드를 지원해서 한글도 사용할 수 있다. 단 한글이 차지하는 양이 많아서 큰 글꼴을 쓰려면 다른 방법을 이용해야 한다.

3.1.1.7 타임라인

알람보다 훨씬 복잡한 시간에 따라 처리하는 내용을 할때 쓴다. 타워 디펜스 게임에서 적을 생성할 때 (또는 보스의 패턴을 만들 때) 주로 사용한다.

3.1.1.8 오브젝트

오브젝트는 게임 내에 나오는 모든 객체를 지칭한다. 작품에서의 캐릭터 같은 것이다. 플레이어 캐릭터, NPC, 건물 등. 코드 하나 없이 드래그 앤 드롭 방식으로 이벤트-액션을 정의할 수 있다. 예를 들어, 플레이어 오브젝트에 '적이 쏜 총알 오브젝트와 충돌했을 경우'라는 이벤트를 등록하고, 이에 따른 액션으로 '플레이어가 파괴된다'를 등록하면 되는 식. 다양한 이벤트와 액션 아이콘이 구비되어 있다. 다만 이벤트-액션은 초보자용이고, 제대로 된 걸 만들려면 코드에 숙달되어야 한다. 아이콘으로 쓸 수 없는 기능도 있고 오브젝트에 기능을 추가할수록 스크롤 압박 때문에 알아보기 힘들게 되기 때문이다.

3.1.1.8.1 이벤트

해당 문서 참조.

3.1.1.8.2 액션(코드)

해당 문서 참조.

3.1.1.9

룸은 게임 화면을 말한다. 때문에 다른 에셋이 다 갖춰저 있어도 룸이 없으면 게임을 실행할 수 없다. 오브젝트를 넣거나 배경화면, 뷰 등을 설정할 수 있다.

3.1.2 게임메이커: 스튜디오

게임메이커:스튜디오에만 있는 기능을 설명한다.

3.1.2.1 셰이더

이게 C++언어또는 GLSL ES언어 안배우면 절대로 만들수 없다 카더라
스타크래프트에서처럼 유닛에 팀 색을 입히는 기능을 만든다거나, 광원 효과를 추가하거나 하는 고급 그래픽 기능으로, GLSL ES라는 전용 언어를 사용한다.

3.1.3 게임메이커 5.0

게임메이커 5에서 존재하는 기능을 설명한다.

3.1.3.1 Data File(테이터 파일)

게임메이커 5에서 생김 기능이지만 6에서는 사라졌다.
사용법은 추가바람

3.2 GML

기본적인 기능들을 배치하는 것만으로도 게임을 만들 수는 있지만, 세밀한 제어를 위해서는 자체 언어인 GML을 어느 정도 다룰 필요가 있다.

자체 스크립트 언어인 GameMaker Language는 VNAP의 접근성에 C의 문법을 결합한 정도이기 때문에 적은 노력으로 좋은 결과를 얻어낼 수 있다. 또한 제공되는 내장 함수들이 2D 게임에 특화된 것이 많아서 생산성이 높다.
단 C 문법 중 이중 배열을 쓰는 방법이 다르므로 주의. C에서는 array[x][y]로 이중배열을 쓰지만 GML에서는 array[x, y]로 사용한다. 삼중 이상의 배열은 아예 사용할 수 없다.
따로 int를 통한 선언이 없으나, 선언을 해주어야만 변수를 사용할 수 있다. 8.1 이전의 게임메이커에는 '선언되지 않은 변수를 0으로 취급'하는 설정이 있어 따로 변수를 선언할 필요가 없지만, 스파게티 코드가 생길 가능성이 농후하기 때문에 절대 체크하면 안 된다.

OOP의 요소인 상속도 간단하게나마 구현되어 있으며, 내장된 코드 에디터는 문법 하이라이팅이나 자동 완성이 지원되어 가벼운 툴 치고는 꽤 준수한 편.
외부 DLL을 끌어와서 기능을 확장할 수도 있으며, 오랜 역사와 충성도 높은 커뮤니티의 지원으로 라이브러리도 풍부한 편.

3D 제작에 쓸 수 있는 외부 3D 액션 DLL을 끌어들여 액션으로도 3D를 만들 수도 있지만, 거의 모든 3D는 GML로 만들어진다.[5] 3D 게임을 제작하려면 필수적으로 알아야 하는 부분.

3.3 상세 기능

해당 문서 참조.

4 GMS 2.0?

요요게임즈 공식 트위터를 통해서 '#Time2MeetYourMaker'라는 해시태그와 함께 게임메이커: 스튜디오 2.0으로 추정되는 스크린샷이 지속적으로 공개되고 있다.

5 단점

Welcome to hell

지옥에 온 걸 환영한다.
- 언더테일의 제작자 토비 폭스, 게임메이커를 처음 써보고 어려움에 놀랐다는 팬에게

여타 툴에 비해서 제약은 덜한 편이지만, 체계적인 라이브러리가 많이 없어 어려움을 느끼는 경우가 많다. 가령 RPG 만들기 시리즈에선 아예 RPG를 만든다는 전제를 하고 있기 때문에 인벤토리나 아이템, 스킬 같은 체계가 갖춰져 있다. 하지만 게임메이커는 특정 장르를 타겟으로 한 툴이 아니므로 그런 구체적인 시스템을 기본 제공하진 않는다. 물론 개발 커뮤니티에서 각종 시스템을 구현한 소스 파일을 건질 수 있지만, 찾을 수 없다면 직접 제작하는 수 밖에 없다.

특히나 비주얼 노벨 같은 경우, 어지간히 독특한 시스템을 바라는 게 아닌 이상 게임메이커보다는 렌파이, VNAP, 네코노벨, 바실리어트등의 프로그램으로 만드는 게 더 낫다. RPG를 만드려면 RPG 만들기 시리즈를 쓰는 것도 방법이지만, 이 쪽은 편리한 만큼 한계도 뚜렷한 편이라 선택은 본인의 몫.[6] 으레 그렇듯 편한 건 제약이 심하고, 자유도가 높으면 사용이 어려운 셈이다. 둘 다 갖춘 건? 비싸다!

고해상도에 약하다. 물론 설정하기 나름으로 고해상도 게임을 제작할 수도 있지만, 내장된 이미지 에디터는 저해상도에 특화되어 있는 데다가, 충돌 체크 등의 내장 함수들이 픽셀 단위로 처리되어 고해상도로 갈수록 속도가 기하급수적으로 느려지는 경향이 있다. 인디 게임판에 관심이 있다면 쉽게 게임메이커 기반임을 짐작할 수 있을 정도로 특유의 레트로한 느낌이 있다.

가장 큰 문제점이라면 인터프리터 방식이라 처리 속도가 상당히 느린 편이란 것이다. 요즘에는 컴퓨터 사양이 좋아져서 웬만큼 복잡하게 만들지 않는 이상 느끼기 힘들지도 모르지만, 한 프레임에 천 개쯤 되는 눈송이 같은 걸 뿌리고 싶다면 최적화에 골머리를 좀 썩여야 한다. 이런 걸 고려하지 않고 무턱대고 리소스를 때려박으면 나중에 피본다. 512×512 정도의 배열을 체크한다면 상당한 프레임 저하가 발생할 수 있다. 이런 부분은 외부 라이브러리를 끌어다 처리를 넘기는 게 효과적이다. 유명 2D 물리엔진인 Box2D가 내장되어 있고(게임메이커: 스튜디오 한정), 그 외 유저들이 제작한 dll 방식의 외부 라이브러리들의 종류도 다양한 편. 스튜디오 프로 버전의 경우 1.2 버전에서 YYC(YoYo Compiler)라는 이름의 LLVM(Low Level Virtual Machine, 저레벨 가상 머신)이 추가되어 JIT 컴파일 방식으로 속도를 10배 이상 끌어올렸다. 그런데 300달러라는 거금을 내고 따로 사야 했었다. 본 프로그램보다 비싸다! 이 컴파일러는 코드 부분만 성능이 향상되는 거라 무슨 스타크래프트처럼 대규모 길찾기 인공지능이라도 적용되는 게 아니면 큰 성능 차이가 없다. 큰 그림과 많은 애니메이션 장수로 소모되는 시스템 자원은 거의 똑같이 소모되거나 오히려 느려지기까지 한다. 다른 모듈도 그렇고 잘 생각해보고 사야 한다. 이후엔 각 모듈에 컴파일러가 통합되었는데... 모듈 가격이 100달러 올라갔다. 월세 라이센스도 기획하는 모습을 보였지만 실현되진 않았다.

한편 게임메이커는 본래 2D 게임 제작을 지향하는 툴이며, 6.0 버전에 와서야 3D 관련 함수가 추가되었다. 3D 처리 성능은 뛰어난 편이 아니며, 관련 함수도 빈약하여 본격적인 3D 게임을 만들기엔 무리가 있다. 주로 2D 게임에서 연출을 위해 보조로 활용하며, 개인의 실력에 따라서 그럭저럭 뽑아낼 수도 있지만 생산성이 높지 않다.[7] 따라서 좀 더 본격적인 3D 게임 제작을 원한다면 언리얼 엔진[8]이나 유니티 3D[9], 플래시[10] 등을 고려하는 편이 낫다. 다만 GM Ogre 등 외부 3D 엔진을 아예 게임메이커 내로 편입시키는 라이브러리도 존재하며, 8.1 버전 이후(스튜디오 포함)에서 3D 처리 성능이 십수 배 향상되고 셰이더를 활용하면 꽤 만족스러운 그래픽을 뽑아낼 수 있기 때문에 막연히 밀린다고 하기엔 힘들다.

보통 작은 게임을 만드는 데 쓰이는 만큼 큰 문제는 아니지만 32비트 프로그램이기 때문에 1.7GB 이상의 램을 사용하면 뻗는다.

엔진 외적인 부분의 문제점도 있는데, 바로 이름. 이름이 상당히 직설적이다 보니 무시당하는 경우가 자주 있다. 알만툴과 혼동되는 경우도 간혹 있다고.. 이름 변경이 시급합니다

소규모 제작사인 만큼 이런저런 문제점들이 있는데[11], 대부분 사용자들이 이를 커버할 수 있는 스크립트를 만들어서 공유하므로 그렇게 큰 문제는 되지 않는다.

6 기타

  • 1999년 첫 버전인 1.1부터 8.0까지의 역사 당연히 8.1도 없다.
  • # 1.1로 마리오 게임을 만들었다고 한다.
  • DRM이 있는데 이게 시간이 지나면 먹히지 않아서 구 버전을 사놓고도 시간이 지나면 정당하게 사용하지 못하게 되고, 2012년 말 DRM이 오작동해서 게임 안의 이미지에 멋대로 해골 그림을 넣고 저장해버리는 섬뜩한 사태를 일으킨 적이 있다. 개발사 요요 게임즈는 욕을 신나게 얻어먹고 이후에는 자제하겠다고 했다.
  • 2014년 요요 게임즈는 소니, 마이크로소프트와 협의하여 PS4, PS Vita, 엑스박스 원으로 게임을 낼 수 있도록 한다고 했고 2015년에는 개발자 등록만 하면 정말로 낼 수 있게 되었다.
  • 스팀판에서는 제작 소프트웨어임에도 24개의 도전과제가 있다. 실행하기나 모듈 실행 및 인증 등 기능들을 건드려 보는 내용들이다. 그 중 눈에 띄는 업적은 1000번 실행하기, 1000번 디버깅하기, 그리고 1000번 컴파일 에러 일으키기. 어차피 하다보면 저절로 돼있다\
  • 2015년 9월에 험블 번들에서 1주일간 12달러로 게임메이커: 스튜디오와 안드로이드 모듈, 그리고 몇몇 게임메이커 게임들의 소스 코드를 구매할 수 있었다. 수요가 쇄도함에 따라 웹사이트가 이틀이 넘게 마비되어 있기도 하였다. 그리고 2016년 9월 이 할인행사가 다시 한번 진행되면서 또다시 인디게임계는 폭발적인 반응을 보였다.
  • 중고판매로 유명한 네이버 모 카페에서 험블번들에서 구매한 키를 되팔이 하는 모습이 보인다. 7만원에서부터 40만원까지 다양한 가격에 판매하고 있으니 게임메이커 번들을 놓친 사람은 꼭 사보도록 하자.
  • 게임메이커로 만들어진 게임들 중에 윈도우 8에서 호환이 잘 안 돼서 튕기는 경우가 종종 있다. 해결 방법은 여기로.
  • 게임메이커 무료 버전으로 만든 게임의 경우 V3 Lite가 예고 없이 차단할 수 있기 때문에 V3 Lite를 사용하는 사용자라면 환경설정 > Active Defense 설정에서 클라우드 자동 분석 사용을 해제해야 한다.

7 유명작

8 관련 웹사이트

다른 강좌를 하는 한국블로그가 있으면 추가바람

이 중 GameMaker Community(GMC)는 공식 커뮤니티로서, 가장 규모가 크다. 언어의 장벽만 극복할 수 있다면 게임메이커에 관련하여 유용한 자료와 최신 정보를 얻을 수 있으니, 관심이 있다면 가입하는 것을 권장한다. 가장 핵심인 검색 기능을 사용하려면 가입을 해야 하기 때문에...
  1. 게임메이커 7, 8은 맥용으로도 포팅되었다.
  2. 와인이라는 프로그렘에서 실행할수는 있다.
  3. 8.1아닌 8.0을 쓴다. 그이유는 8.1는 잡오류가 많기 때문
  4. 사실 쯔꾸르보다는 유니티나 플래시에 가깝다.
  5. GML을 쓰면 외부 DLL을 끌어올 필요도 없고, 장문의 3D 코드를 볼때 필요한 가독성도 GML이 액션보다 훨씬 뛰어나며 무엇보다 3D를 이것저것 해보며 여러가지 응용법을 익힐 수 있다.
  6. 물론 XP 버전부터 Ruby 스크립트를 지원하면서 이런 문제를 부분적으로 해결헀지만, 이 쪽으로 넘어가면 한계를 극복하는 대신 어려워지는 게 문제.
  7. 다만 이런 것도 만드는 굇수도 있다.
  8. 과거에는 상당히 비싼 엔진이었다. 하지만 유니티 3D가 무료화 전략을 취해서 개발자들을 다수 확보하자 이쪽도 4 버전을 기해 전면 무료화가 되었다.
  9. 이름부터가 3D. 본격적인 3D를 위한 제작 엔진.
  10. 3D 엔진을 사용하면 되며, 플래시 플레이어 11부터는 플래시에서 기본적으로 그래픽 가속을 지원(이전엔 그래픽 가속을 사용하려면 개발자가 직접 가속 코드를 짜야 했다.)하여 속도가 크게 개선되었다.
  11. 제작사인 요요 게임즈가 2015년에 Playtech라는 회사에 인수되었다고 한다. 다만 아직까지 그렇게 큰 변화는 없는 듯.
  12. 대부분의 아이워너 시리즈가 게임메이커로 만들어졌다. 원작보시는 제외
  13. gmkor 카페 관리자가 2015.12.20에서 2018.09.19까지 군대간다고 했었다.