Profile
도개걸윷모

2018.11.03

게임메이커 구체적인 설명과 알면 매우 좋은 팁 30개 [장문]

조회 수 186 추천 수 4
애드블럭을 꺼주시면 서버 운영에 도움이 됩니다.
부탁드립니다.

안녕하세요 도개걸윷모입니다.

 

 

1. 게임메이커 8.0 다운로드 방법'

게임메이커 8.0 한글 버젼을 다운 할 수 있는 링크 입니다.

 

모두 수표님이 만드신 링크입니다.

64비트 버젼[링크]

32비트 버젼[링크]

 

 

 

2. 게임메이커 스튜디오 다운로드 방법

게임메이커 스튜디오 1.4는 현재 게임메이커 스튜디오 2의 공개로 인해 막혀있습니다. 

막히기 전에 라이센스가 있었던 사람만 다운이 가능하기 때문에 입문자들은 새로 다운이 불가능합니다. 중고나라 같은 곳이나 게임메이커 관련 활발한 채팅방을 찾아서 중고 구매를 통해 라이센스 키를 구입하실 수도 있습니다. 다만, 게임메이커 스튜디오 2가 워낙에 1.4보다 모든 부문에서 뛰어나기 때문에 개인적으로는 게임메이커 2를 노리시는 것이 좋으실 거라고 생각합니다.

 

게임메이커 스튜디오 2는 이 링크에서 다운이 가능합니다.

 

 

 

 

3. 게임메이커 스튜디오 가격

 

게임메이커 2.0 가격은 다음과 같습니다.

 

creator 라이센스(최소 39달러)

-맥 12개월 버젼 (39달러)

-윈도우 12개월 버젼(39달러)

 

developer 라이센스(최소 99달러)

-데스크탑 영구 소장 버젼(윈도우, 맥, 우분투)(99달러)

-아마존 앱스토어 영구 소장 버젼(149 달러)

-웹 영구 소장 버젼(HTML5와 페이스북 게임 같은 플랫폼)(149달러)

-모바일 영구 소장 버젼(안드로이드, 아마존, IOS 스토어)(399달러)

-UWP(XBOX, 모든 윈도우10 디바이스)(399달러)

 

console 라이센스(최소 399 달러)

-UWP(XBOX, 모든 윈도우10 디바이스)(399달러)

-닌텐도 스위치 12개월 버젼(799달러)

-PSF 12개월 버젼(799달러)

-XBOX ONE 12개월 버젼(799달러)

-얼티멧 12개월 버젼(위 모든게 가능한 버젼)(1500달러)

 

위 가격들을 보시면 생각보다 비싸다는 것을 볼 수 있습니다.

그러니 데스크탑 버젼을 영구 소장을 원하신다면 일단 12개월 버젼을 구매하신 다음에

할인할 때 영구 소장 버젼을 구매하는 것을 추천합니다.

 

 

 

4. 게임메이커 스튜디오 소개

게임메이커 시리즈는 요요게임즈에서 제작된 2d 게임 제작에 특화된 게임 툴이며, 특유의 심플함 때문에 인디 게임 개발팀이나 1인 개발을 할 때 자주 쓰는 툴입니다. 대표적인 게임 작품으로는 언더테일, 대부분의 아이워너 시리즈, 세계수 키우기 등이 있습니다. 아주 좋은 맵 에디터, 스프라이트 에디터 그리고 GML이라는 전용 스크립트 언어가 존재하기 때문에 아주 편하고 빠르게 접할 수 있습니다. 자유도도 매우 높기 때문에 사람들이 매우 좋아하는 툴이기도 합니다.

 

 

 

5. 게임메이커 스튜디오 장단점 및 개인적인 평가

개인적으로 가장 큰 장점은 높은 자유도라고 생각합니다. 2d 게임 한해서는 리듬 게임, 슈팅 게임, 미연시(미사일 연사 시스템), RPG, 타워 디펜스, 격투 게임 등등 자유도가 높기 때문에 어떤 게임이든지 만들 수 있습니다. 그뿐만이 아니라 좋은 그래픽 에디터 때문에 1인 개발에 매우 유용합니다.

 

하지만 언더테일의 제작자인 토비 폭스가 게임메이커가 어렵다면서 놀란 팬에게 지옥에 온 것을 환영한다고 한 적이 있습니다. 이를 바탕으로 생각해보자면 입문은 쉽지만, 깊게 들어가려면 은근 어려운 툴이라는 것을 알 수 있습니다. 자유도와 숙련도가 대다수의 툴에서 비례하는 것을 볼 수 있는데 이 툴에서도 그대로 적용이 됩니다. 원할 수 있는 것을 다 만들 수 있지만, 기본적인 바탕이 없기 때문에 처음부터 끝까지 다 직접 준비하셔야 합니다. 그러한 점을 바탕으로 생각하면 RPG 게임이 만들고 싶으면 RPG 만들기 시리즈(쯔꾸르), 미연시가 만들고 싶으면 렌파이가 더 간편합니다. 

 

비록 특정 장르에서는 어느 정도의 숙련도를 필요로 한다는 단점이 있지만, 이는 거의 모든 툴에서도 그대로 작용이 되며, AAA 게임을 만드실 생각이 아니라면 꽤 괜찮은 툴이라고 생각합니다. 다시 말해, 저 같은 학생들, 또는 취미로만 게임을 만드실 생각이 있으신 분들, 또는 슈팅 게임처럼 고난도의 코드가 필요하지 않는 게임을 만드실 계획을 가지신 분들이라면 정말 완벽한 툴이라고 생각합니다. 

 

하지만, 그래도 장벽은 존재합니다. 제공하는 메뉴얼은 영어로 되어 있고, 대부분의 유투브 강좌들은 영어로 되어있습니다. 그렇기 때문에 이 글에서는 여러분들이 게임메이커를 입문하는데 부디 더 쉽게 입문을 하기 위해서 만들어졌으며, 목차에도 읽으셨다면 아셨을 거처럼 밑에 추천하는 팁 및 강좌 링크와 사이트가 적혀있기 때문에 한 번 사이트를 찾아서 참고해주셔야 합니다.

 

 

 

6. 기본적인 요소 1: 스프라이트

스프라이트는 쉽게 말해서 자신이 쓸 그래픽 리소스입니다. 만약에 슈퍼 마리오 브라더스 같은 게임을 만들고 싶은데 정작 마리오의 그림이 없으면 안되지 않겠습니까? 그래서 있는 것이 스프라이트입니다. 마리오의 그림이 있는 스프라이트를 만든 다음에 추후에 설명할 오브젝트에 활용시킨다면 마리오의 그림이 적용된 캐릭터를 생성할 수 있습니다.

 

앞서 말했듯이 어느정도 좋은 에디터를 제공하고 있습니다. 겜스 1.4와 겜메에서는 비록 아주 간단한 에디터만 제공하고 있지만, 겜스 2에서 부터 고급 수준의 기능도 제공하고 있습니다.

 

 

잠깐? 여기서 겜스 2와 겜메, 겜스 1.4는 뭔 뜻일까요?

 

 

7. 잠깐 설명 : 겜메, 겜스 1.4, 겜스 2

헷갈릴 필요없이

겜메는 게임메이커 8.0

겜스 1.4는 게임메이커 스튜디오 1.4

겜스 2는 게임메이커 스튜디오 2

를 의미합니다.

 

겜메는 사실 줄임말 자체는 게임메이커를 뜻하지만,

겜메는 1.0부터 8.1까지 많은 버젼이 존재하는데 8.1은 많은 버그가 존재하고 8.0 이전의 버젼은 오래되었습니다. 또한 8.0과 비교했을 때 성능이 매우 딸리기 때문에 보통 겜메라고 하면

게임메이커 8.0이라고 생각하시면 됩니다.

 

 

 

8. 기본적인 요소 2: 백그라운드

백그라운드(background)는 단어 뜻 그대로 배경의 역할을 지니고 있습니다.

배경화면이나 타일셋으로 사용이 됩니다. 백그라운드를 수정하는 툴은 스프라이트를 수정하는 툴과 완전히 같으며, 사실 유일하게 다른 점은 충돌 범위와 애니메이션이 제공되지 않는 점입니다. 이러한 점 때문인지 겜스 2(아까 배웠죠? 게임메이커 스튜디오 2를 의미하고 있습니다)에서 부터는 스프라이트와 백그라운드가 완전히 통합이 되었으며, 스프라이트만 존재합니다. 백그라운드로 쓰고 싶은 스프라이트는 직접 불러와 백그라운드로 사용하는 방식으로 변경이 되었습니다.

 

 

 

9. 기본적인 요소 3: 사운드

사실 이 역시 단어 뜻 그대로 사운드(sound) 즉 소리를 의미합니다. 

효과음, 배경 음악 등등 어떠한 종류의 소리를 사용하기 위해서는 반드시 사운드를 추가해야지 불러올 수 있습니다.

 

 

 

10. 기본적인 요소 4: 패스

패스 역시 단어 그대로 패스(path), 즉 경로를 의미합니다.

저 같은 경우는 자주 쓰지 않습니다. 보통은 특정 캐릭터를 이동할 때 정해진 경로를 따라 이동하게 하고 싶으면 패쓰를 설정한 다음에 캐릭터에 적용시켜 버리면 됩니다.

 

 

 

11. 기본적인 요소 5: 스크립트

스크립트 역시 단어 그대로 스크립트(script), 대본을 말합니다.

전에 코딩을 해본 적이 있으신 분들이라면 함수가 뭔지 아실 거라고 생각합니다. 쉽게 말해 스크립트에서 만드는 코드는 다 함수입니다. 함수를 이렇게 만들고 나서 나중에 불러서 자유롭게 쓸 수 있습니다.

 

하지만 코딩에서의 함수가 뭔지 모르시는 분들도 계실 겁니다. 이럴 때는 함수의 사전적인 정의를 이용하여 설명하면 편합니다. 함수는 특정한 input을 받으면 output이 나오는 것입니다. 스크립트를 통해 많은 작업을 더 쉽게 할 수 있습니다.

 

사실 아직 입문이여서 코드보다는 DnD, 드래그 엔 드롭(Drag and Drop)이라는 기능을 더 자주 사용하실 겁니다. 그렇기 때문에 아직은 깊게 다룰 필요가 없습니다. 그냥 쉽게 생각해서 특정 동작이나 행동을 쉽게 반복할 수 있게 하는 것이라고 생각하시면 됩니다.

 

 

 

12. 기본적인 요소 6:폰트

폰트는 쉽게 말해 글꼴, 크기, 기울기, 굴기 등을 지원할 수 있는 기능입니다.

게임 내에서 모든 텍스트가 같은 크기, 글꼴과 굵기를 가지고 있을 리가 없으니 필요한 기능입니다. 한글을 게임에서 그리기 위해서는 특정한 작업을 해야합니다.

이는 추후에 설명할 것이니 안심하셔도 됩니다. 

 

 

 

13. 기본적인 요소 7:오브젝트

게임을 위해서 반드시 필요한 요소입니다. 오브젝트는 쉽게 말해 게임 내 캐릭터, 벽 같이 게임 내 모든 객체라고 생각하시면 됩니다. 

 

 

 

14. 기본적인 요소 8:룸

룸(room)은 한글로 방을 뜻합니다. 완전히 똑같은 작업을 합니다

보통 여러분들의 방에는 침대도 있고, 책상도 있지 않습니까? 그것들이 오브젝트라고 생각하면 됩니다. 룸에는 오브젝트를 배치하는 곳입니다. 또한 여러분들의 방에는 벽지도 있지 않습니까? 벽지를 백그라운드라고 생각하신다면, 룸에서는 백그라운드 역시 정할 수 있습니다.

 

이제 아주 기초적인 정리는 모두 끝났습니다. 하지만 이 정리는 모두 아주 간단하며 상세하지 않는 설명입니다. 쉽게 말해 겉만 대충 핥아보았다고 생각하시면 됩니다. 밑에 링크들은 위 정보들뿐만 아니라 많은 정보와 설명을 볼 수 있는 사이트들이니 꼭 참고하시길 바랍니다.

 

 

15. 링크 정리

게임 가이드 : https://cafe.naver.com/crazygm/189667

짜신 코드를 확인 할 수 있는 링크 : https://yal.cc/r/gml/

거의 모든 장르에 대한 상세한 제작 방법 : http://kayanworld.tistory.com/

 

이제부터 짜잘하지만 유용하게 쓸 수 있는 팁들을 소개하겠습니다.

 

 

16. string과 변수 합쳐서 써먹기

만약에 변수 n이 1일 때 룸 room_1로 가고

만약에 변수 n이 2일 때 룸 room_2로 가고

만약에 변수 n이 3일 때 룸 room_3로 가고

...                                        ...

만약에 변수 n이 존재할 때 룸 room_"n"로 가게 하고 싶으면

asset_get_index를 사용하시면 됩니다.

asset_get_index는 만약에 넣은 스트링이 룸 이름이거나 스프라이트 이름 같이 특정한 이름일 시 스트링에서 특정한 종류로 바꾸어 줍니다.

예를 들어 n=asset_get_index(room_3)이라는 코드가 있고, room_3이라는 룸이 존재한다면

n은 "room_3"이 아닌 룸 room_3이 됩니다.

 

이를 이용하면 room_goto(asset_get_index("room_"+string(n))); 라는 코드로

room_"n"이라는 룸으로 이동이 가능하게 할 수 있습니다.

 

 

 

17. 두개의 변수의 값을 임시변수 없이 바꾸기

의외로 잘 모르시던데, ^라는 xor 연산을  3번 이용하시면 임시 변수없이 손쉽게 값을 교환할 수 있습니다. 특정 캐릭터의 x와 y값이 서로 바뀌게 하고 싶으면

x^=y

y^=x

x^=y

라고 하시면 됩니다. 그러면 x는 y가 되고 y는 x가 됩니다.

 

 

 

18. 재귀함수를 사용할 때는

게임을 만드셨을 때 느끼셨겠지만, 스크립트를 이용한 재귀함수는 게임에 어마어마한 렉을 일으킵니다. 게임메이커가 스크립트 관련 부분이 최적화되어 있지 않기 때문입니다. 그렇기 때문에 event_user()를 이용하시는게 좋습니다. 유저 이벤트 말입니다.

 

 

 

19. 메뉴얼을 읽으셨으면 아시겠지만,

image_speed가 음수이면 역재생

image_speed의 절대값이 1이상이면 몇몇 프레임을 스킵하면서 재생합니다.

특정 이벤트를 잘 이용해서 맨 처음 프레임이나 맨 마지막 프레임을 재생하고 나서 방향을 바꾸도록 할 수 있습니다.

 

 

 

20. 분명히 코드가 다 맞았는데 런할 때 이상하게 된다면

꼭 타겟을 클린해보세요. 런 버튼 옆의 정지 버튼 옆에 빗자루 모양의 버튼을 꼭 눌러서

target clean을 해주셔야 합니다. 분명 실수가 없는데 이상하게 자꾸 에러가 뜨거나 종료되면, 99% target clean을 안 해서 이러나는 일입니다. 한 번 이 문제 때문에 어떤 분이 알려주시기 전까지는 몰라서 3시간 동안 에러를 뒤져보는 뻘짓을 해본 적이 있습니다.

 

 

 

21. 특정한 스크립트들 중 랜덤한 한 개를 이용하고 싶으면

유명하지 않아 사람들이 잘 모르시는 코드인데 이를 메뉴얼에 검색할 시 이 사용법이 나옵니다.

script_execute라는 코드인데

스크립트 이름과 input을 넣으면, 그 스크립트를 실행해 줍니다.

메뉴얼에서 제공하는 예시를 이용해보자면

script_execute(choose(scr_Up,scr_Down,scr_Left,scr_Right),irandom(5));

 

라는 코드는

scr_Up,scr_Down, scr_Left,scr_Right 중 하나의 스크립트에 0~5까지의 임의의 정수를 input로 삼아서 실행한다는 뜻입니다. 랜덤한 움직임을 구현할 때 쓸만할 거 같습니다.

 

 

 

22. DnD를 GML로 번역하고 싶으시다면

GML Buddy라는 프로그램을 깔아주시면 됩니다. 

다운은 여기서 받아주시면 될듯합니다 [링크]

 

 

 

23. 사실 draw_circle은

원을 그리지 않고 정24각형을 그립니다.

draw_set_circle_precision(precision);을 이용해서 원의 정확도를 조절해서 

4n각형을 그리게 할 수 있습니다. 하지만 어떻게해서든 정확한 원을 그리실 수는 없으십니다.

 

 

 

24. 인스턴스 아이디나 오브젝트 이름을 이용하여 변수의 값을 변형

with를 사용하지도 않고 id나 오브젝트 이름을 이용해서 변수의 값을 조절할 수 있습니다.

id를 c라는 변수에 있다고 가정했을 때

c.hp-=5라고 한다면 id가 c인 인스턴스의 hp를 5깎는 것이 되는 것입니다.

만약에 obj_enemy.hp-=5라고 한다면

모든 obj_enemy의 인스턴스의 hp가 5 깍이게 되는 것입니다.

 

 

 

25. 줄 띄어쓰는 방법들

그냥 "h

3" 이렇게만 해도 h와 3 사이에는 줄이 바뀌어 집니다.

 

줄을 자주 바꿔야 할 시에는 chr(10)이나

겜스 1.4 기준에서 #이나

겜스 2 기준에서는 \n을 사용해야 합니다.

 

 

26. 한글 폰트 적용하는 방법

한글 경량화 파일을 구해서 적용시키는 방법과 직접 폰트를 게임 내에 추가해서 font_add로 추가하는 방법이 있으나 경량화 파일을 이용하는 것이 훨---씬 낫습니다.

 

 

 

27. 게임을 대규모 수정을 할 때에는

우선 다른 이름으로 저장을 해서 나중에 원래대로 돌아오게 할 때 전에 저장해둔 파일로 손쉽게 돌아가서 작업할 수 있게 하는 것이 좋습니다. 만약에 대규모 수정을 하고 구버젼을 따로 저장하지 않았으면 복구하는 방법이 없어서 귀찮아 지기 때문입니다.

 

 

 

28. 주석은 쓸모가 있다? 없다?

나중에 자신이 쓴 코드를 볼 때 이해하기 편하기 하기 위해서 자주 쓰입니다.

또는 잠시 사용하지 않을 코드에는

/*, */를 이용해서 많은 줄의 코드를 잠시 무효화 시킬 수 있습니다.

 

한 줄만 주석을 할 시에는 //를 이용하며 되며

보통 /*,*/로 여러 줄의 주석을 다고 싶으면

/*

*

*

*/ 이렇게 해서 보기 편하게 주석을 다는 것이 보통입니다.

 

 

 

28. 스크립트나 코드를 들어가지 않고 보게하고 싶으면

맨 윗줄, 그니깐 첫번째 줄에다가 ///를 붙이고 설명을 붙여줍시다. 예를 들어

이 코드는 hp를 담당한다고 설명하게 하고 싶으면 첫 줄에

///hp 담당이라고 적어주시면 됩니다.

 

그렇게 할 시에 코드를 분류하기 편합니다.

 

 

 

29. 스크립트의 input을 아는 간단한 방법

사실상 위의 응용법인데 만약에 스크립트 two_add가

숫자 두개를 받는 스크립트라면 맨위에다가 ///two_add(num1,num2); 이렇게 input을 정리해줍시다. 그러면 

이렇게 밑에서 어떤 것을 넣어야 하는지 확인이 가능합니다.

 

 

 

30. 온라인 게임을 만들 때 팁

온라인 게임에 관련된 강좌들은 cgm에 있으며, 만들 때 매우 유용합니다. 하지만 파일 공유나, 스코어 보드, 게임 자동 업데이터 같은 기능은 대부분 유로로 다른 방법을 구해야 합니다. 하지만, 쿠키라는 온라인 엔진 및 커뮤니티가 탄생하면서 무료로 가능해졌습니다.

 

쿠키 링크는 https://www.cookiee.net/

 

 

네이버, 카카오톡, 트위터 그리고 구글로도 로그인이 가능하며, 앱도 있으며 쿠키 사용자들을 위한 카카오톡 채팅방도 있습니다. 오늘의 문제도 간간히 출제가 되고 있습니다.

 

 

 

굳이 겜스를 사용하고 있으신 분들일 필요가 없으며, 심지어 게임을 만드시는 분이 아니여도 좋습니다. 게임 개발에 관심을 가지고 계신 분들이라면 얼마든지 환영입니다.

 

 

 

현재 글을 썼을 때 얻는 포인트를 10에서 2배로, 즉 20로 올렸으며, 만약 7일 연속으로 게시글 한 개씩 채운다면 100포인트를 추가로 드리는 이벤트도 있으니, 쿠키에 글을 쓰는 것을 추천합니다. 사실 벌써 쿠키넷이 만들어진지 9개월을 넘어가고 있지만, 쿠키는 현재 활성화가 너무 되어있지 않아 접근하는 사람이 너무 적습니다. 그렇기 때문에, 쿠키가 완전히 활성화되기 전까지는 개발 일지, 성과 자랑글은 물론이며, 오늘 아침에 뭐 먹었는지 정도에 의미없는 글도 상관없이 올리셔서 쿠리를 활성화 시킬 수 있으면 감사하겠습니다. 애초에 쿠키는 엔진인 동시에 커뮤니티이기 때문입니다.

 

 

아무리 온라인 서비스를 제공하는 엔진이지만 아무도 활동을 하지 않아 비활성화된 상태라면 온라인 서비스의 제공이 힘들 수도 있습니다.

 

 

 

들어와주시면 정말 감사하겠습니다. 이상 도개걸윷모였습니다. 감사합니다.



Profile
8
Lv

7개의 댓글

번호 제목 글쓴이 날짜 조회 수
게임메이커 구체적인 설명과 알면 매우 좋은 팁 30개 [장문] 7 profile 도개걸윷모 2018.11.03 186
64 [팁] <댓글 스티커>, <쿠키 마켓>의 쿠키 반환 비율 (수수료, 이익 비율) 2 profile 며르치 2019.01.21 33
63 [팁] 쿠키 얻기/쓰기 조건 정리 4 profile 며르치 2019.01.17 60
62 [쿠키 API] ini처럼 온라인 데이터 저장/불러오기 구현하기 3 profile 주인장수표 2018.12.26 65
61 [쿠키 API] 구글, 네이버, 카카오톡 로그인 구현하기 profile 주인장수표 2018.12.26 52
60 인벤토리 만들기 - 1 profile Experience 2018.12.18 36
59 간단한 도트 찍는 방법! profile Experience 2018.12.17 23
58 [자료] 스팀 게임 플레이어의 통상적 컴퓨터 사양 1 profile 주인장수표 2018.12.17 21
57 [변수의 활용] VAR (if) 액션과 컨트롤액션 profile Experience 2018.12.17 6
56 윈도우를 컨트롤하자! profile Experience 2018.12.17 16
55 GML 차근차근 배워보기. [ 4 ] 조건문 profile Experience 2018.12.17 7
54 GML 차근차근 배워보기. [ 3 ] 연산자 (2) profile Experience 2018.12.17 5
53 GML 차근차근 배워보기. [ 3 ] 연산자 (1) profile Experience 2018.12.17 10
52 GML 차근차근 배워보기. [ 2 ] 변수 (2) profile Experience 2018.12.17 8
51 GML 차근차근 배워보기. [ 2 ] 변수 (1) profile Experience 2018.12.17 11
50 GML 차근차근 배워보기. [ 1 ] 강좌 진행 환경 조성 2 profile Experience 2018.12.17 8
49 리얼리티 '뷰' 노이즈 강좌 profile Experience 2018.11.29 14
48 [윈도우] 게임을 실행할 때 다른 윈도우를 모두 최소화시키기 profile Experience 2018.11.29 13
47 간단한 8방향 이동 코드 profile Experience 2018.11.29 9
46 겜스 간단한 페이드인/페이드아웃 profile Experience 2018.11.29 11
45 게임메이커 8 강좌 5화 -룸- END profile Experience 2018.11.29 13
서버에 요청 중입니다. 잠시만 기다려 주십시오...