시리즈:게임제작에 입문하려는 히치하이커를 위한 안내서

리브레 위키

틀:안내서 시리즈

이제는 인디게임이 뜨는 시대가 왔습니다. 수많은 쉽고 좋은 툴들이 많이 출시되었고, 인터넷이 발달함에 따라 그 툴을 사용하는 방법도 빠르게 습득이 가능하죠.

이미 시중에는 RPG만들기 시리즈와 같이 특정 장르에 특화된 대신 정말 쉽고 간편하게 게임을 만들수있는 툴들이 많습니다. 이런 툴들을 이용하면 영어실력이 정말로 많이 필요하겠지만 엄청나게 쉽고 끝내주도록 간편하게 게임을 만들수 있습니다.

하지만 세상에 RPG같은것만 있는건 아니잖아요? 타워를 짓거나 액션을 즐기거나 그러한 재미도 끝내주지요. 이미 시중에는 정말로 쉬우면서도 간편하게 다양한 장르의 게임을 만들수있는 툴이 있습니다.

게임메이커 스튜디오[편집]

파일:겜메홈피.png

www.yoyogames.com/studio

게임메이커 스튜디오는 마크 오버마스(Mark Overmars)가 제작하고 요요 게임즈(YoYo Games)에서 지속적으로 개발 중인 게임 제작 툴입니다. 아무것도 정해진것이 없기때문에, 어떠한 장르라도 만들수 있습니다. 과거에는 게임메이커 였으며, 최종버젼으로 게임메이커 8.1까지 출시되었고, 2012년 5월 22일에 현재의 게임메이커 스튜디오가 발매되었습니다.

본래에는 스탠다드버젼까지 유료로 판매하였으나, 지금은 스탠다드버젼이 무료로 제공되고 있습니다. 아무 제한이 없는 대신 윈도우에서만 구동이 가능하고, 게임을 켤때마다 게임메이커 스튜디오의 마크가 등장하지만, 그 외의 대부분의 기능을 제한없이 사용가능하고, 해당하는 게임을 판매해도 라이센스비용 지불이 없습니다. 정말로 대인배에요

그리고 게임을 만들때에는 이것을 명심해보아요.

모른다고 안하지말고 몰라도 찾아보자

결국 게임만드는데 중요한건 프로그래밍이에요. 하지만, 그렇다고 모든걸 외울 필요는 없어요. 사람이 외우기에는 턱없이 많은 정보가 있지만, 필요할때 찾으면 되는거에요. 쉽게_배우는_프로그래밍_입문#프로그래밍을 무서워 하지 말자!를 한번 정독하시고 마음을 다잡아봅시다.


그래서 무엇을 만들까?[편집]

우선 게임메이커로 만들어진 유명한 작품들을 보고 갈까요?

파일:Ctrlcv스샷.jpg

게임메이커 스튜디오로 제작된 Iji와 Ctrl C V 입니다.

이 두 작품은 게임메이커로 만들었으며 선풍적인 인기를 끈 게임들입니다. 하지만 이 두 게임이 정말 화려한 그래픽을 가지고 있을까요? 아니면 엄청나게 멋진 오케스트라음악을 썻을까요?

정답은 아니요 입니다. 이 두가지 게임의 공통점은 지금까지 없었던 독창적이고 신선한 스타일 이라는것이죠.

그림을 못그려도, 곡을 못써도, 우선 게임에서 가장 중요한것은 아이디어랍니다.

설명이 정말로 길었습니다만, 그래도 첫 제작인데 너무 어려운걸로 시작하면 안되겠죠?

프로그래밍에 Hello, world! 가 있다면, 게임제작에는 역시 똥 피하기 가 있죠!

캐릭터와 다른 물체들이 움직이고, 목적은 없지만 게임오버조건은 있고, 잠수기준잡기도 편한, 정말 교과서적인 게임입니다. 차근차근 계단을 밟아올라가봅시다.

그런 의미로 시작합니다. 리디버그 피하기 제작! 면책조항:전 리디버그가 정말 귀엽다고 생각합니다.

리소스[편집]

파일:겜메첫화면.png

쉽다고해서 열어봤는데 정말 어려워보이시나요? 영어가 어렵다면 어휘력을 기르세요

여기서 왼쪽에 있는 리스트들은 현재 만들고있는 게임에 포함된 리소스들이에요. 그림이나 음악 등등을 담고있죠. 당연한 말이지만, 무언가를 보여주고 들려주기 위해서는 리소스에 그걸 담아둬야해요.

스프라이트[편집]

스프라이트는 게임에 쓰일 그림파일들을 말합니다. 그럼 우리가 무슨 그림이 필요한지 볼까요?

리브렌이 떨어지는 리디버그를 피하는 게임을 만들고싶어!

기억하시나요? 그럼 우리가 무슨 스프라이트가 필요한지도 딱 찾기 쉽겠네요. 떨어지는 리디버그와 그걸 피할 리브렌 두가지가 필요합니다.

이 파일을 게임에 나오게 하기 위해서는 등록이 필요하겠죠?

왼쪽의 sprites 폴더를 오른쪽클릭하면 Create Sprite 라는것이 보일겁니다. 이걸 누르면 스프라이트를 만들수있습니다.

스프라이트 이름을 spr_libren 이라고 해두었습니다. 그 이유는 바로, 다른곳에서 겹치는것을 방지하기 위해서인데요. 폴더가 분리되어 있지만, 그렇다고 이름을 똑같이 만들면 큰일나기 때문이에요. 그래서 sprite의 앞 3글자인 spr_을 앞에 붙여두면 나중이 편해요. 습관화!

오른쪽에 보니 Collision Checking이라는게 있네요. 해석하면 충돌확인! ~피하기류의 게임인만큼 각자의 충돌범위는 중요하죠. 3가지가 있는데 하나하나 알아봅시다.

  1. Precise collision checking : 정밀충돌판정. 사실 스프라이트의 기본적인 충돌범위는 그림이 외접하는 직사각형이에요. 빈공간인데도 전부 충돌범위인것이죠. 이것을 체크하면 딱 그림만큼만 충돌범위를 가져요.
  2. Separate collision masks : 충돌마스크분리. 스프라이트의 판정범위를 별도의 마스크로 설정하는거에요. 지금은 어려우니까 그냥 켜두세요.
  3. Modify Mask : 직접 충돌범위를 보면서 조정할 수 있어요.

지금은 위의 2개만 체크해두고 다음은 리디버그를 만들어보아요.

리디버그는 피해야하는 물체지요. 그렇기 때문에 난이도나 직관성 등등을 위해서라도 크기를 수정할 필요가 있습니다. 이름란 밑의 Edit Sprite를 누르면 스프라이트를 스튜디오에서 직접 수정이 가능합니다. Transform - Scale을 통해 크기를 30% 정도로 줄여줍시다.

파일:겜메강좌03.png

이번엔 Modify Mask에서 충돌범위를 수정해줍시다. 너무 크면 어렵고 작으면 쉽겠죠?

자. 게임에서 나올 그림들은 전부 만들었습니다. 간단하죠? 영어를 못하면 어렵겠지만...

오브젝트[편집]

드디어 게임메이커스튜디오에서 가장 중요하다고 볼 수 있는 오브젝트입니다. 오브젝트는 게임에서 나오는 모든 연산과 수행뿐만 아니라 그래픽과 사운드까지 관장합니다. RPG 만들기 시리즈에서 말하는 "이벤트"와도 비슷하지만, 오브젝트는 타일 하나하나에도 설정이 가능합니다.

게임메이커 스튜디오의 자유도는 바로 오브젝트에서 나옵니다. 오브젝트는 기본적인 조건과 그에 따른 행동만을 가지고 있기 때문에, 원하는 조건과 원하는 행동을 계속 써줌으로서 어떠한 게임이든지 구현이 가능하기 때문입니다.

우선 우리가 어떤 오브젝트를 만들어야하는지 알아볼까요?

  • 리디버그를 피하는 리브렌
  • 리브렌을 잡으러 오는 리디버그

여기까지는 다들 아실거에요. 하지만, 여기서 의문이 듭니다.

그럼 리디버그는 누가 떨어뜨려?

네. 바로 이 행동까지도 오브젝트의 영역으로 처리하는 것입니다. 그렇다면 우리가 필요한것은 이 세가지가 되겠네요?

  • 리디버그를 피하는 리브렌
  • 리브렌을 잡으러 오는 리디버그
  • 그 리디버그를 만들 시스템 오브젝트

네. 좋습니다. 이게 바로 기획입니다. 게임을 만들때에 필요한 것은 침착함입니다. 당장 무언가를 하기 전에, 무엇이 필요한지를 먼저 생각하고 만든다면 어떠한 것이던지 구현이 가능할거에요.

그래서 그 오브젝트는 어떻게 다루냐고요? 그건 다음에 알아보아요. 침착하라고 했잖아요! 우선 우리가 무엇이 필요한지부터 미리 만들어두자고요.

백그라운드와 룸[편집]

아무것도 안보이는데 게임을 하는게 가능할까요? 당연히 불가능하겠지요. 게임이 진행되는 공간을 지정해주고 그곳에 오브젝트를 때려넣어야할겁니다. 그걸 우리는 이라고 합니다.

파일:겜메강좌04.png

(해당 이미지내의 게임은 lecture_2_practice.gmk를 사용합니다. 저작자-강낭땅콩 [블로그])

모든 오브젝트는 그 자체로 어떠한 행동을 하지 않고, 룸에 배치해야만 행동을 개시하게 됩니다. 이때, 배치된 오브젝트는 자신의 인스턴스를 만듭니다. 오브젝트는 설계도일뿐이고, 실제로 행동하는것은 그 설계도대로 만든 인스턴스 라는거죠. 비슷하면서 전혀 다른 의미이므로 구별하셔야 합니다.

여튼, 무언가를 하고싶다면, 룸에 모든것을 넣어두어야합니다. 룸에 있지 않은 오브젝트는 다른 오브젝트가 부르지 않는 이상 그 룸에서는 어떠한 역할도 할 수 없는것이죠.

백그라운드는 그 룸의 맨 뒤를 장식합니다. 네. 배경 입니다.

파일:겜메강좌05.png

백그라운드도 스프라이트와 비슷합니다.

파일:겜메강좌06.png

자 그럼 룸을 만들어보겠습니다. 룸을 생성하면 참 복잡한게 너무 많네요. 그러니까 영어를 배우세요

우선 왼쪽의 탭을 설명하겠습니다.

  • background : 백그라운드 리소스를 가져와서 배경으로 씁니다.
  • views : 현재 게임의 화면에 나올 화면을 정해줍니다.
  • physics : 중력 등등의 물리엔진을 관장합니다.
  • objects : 오브젝트 리소스를 가져와서 인스턴스로 씁니다.
  • setting : 룸의 크기와 속도를 지정합니다.
  • tiles : 타일셋 사용(Use as tile set)설정이 켜져있는 백그라운드 리소스를 가져와서 배경으로 씁니다. RPG 만들기 툴과 비슷하게 타일로 맵을 만들수 있습니다.

참 쉽죠?

우리는 굳이 화면이 이동할 필요도 없기때문에 지금은 다 건들지말고 배경설정과 크기조절만 할게요.

파일:겜메강좌07.png

파일:겜메강좌08.png

여기까지 해두면 룸설정은 더 건들 필요가 없겠네요.

-

Speed는 룸의 속도를 나타냅니다. 1초당 몇 스탭을 가지는가?를 나타내는데요, 다른 게임으로 치면 프레임과 비슷한 겁니다. 용량이 커지면 낮춰야겠지만, 똥피하기 정도는 60스탭도 가뿐합니다.

-

Persistent라는 단어를 object에서도 room설정에서도 보았을텐데요, 이것이 켜져있으면 그게 고정됩니다. 위치가 아니라, object는 다른 룸으로 가도 따라 오고, room은 다른 룸으로 가도 초기화가 되지 않습니다.

-

sprite에서 말씀드린거지만, 꼭 리소스 이름은 리소스종류_이름 으로 하세요!

더 멋있게 다듬기위한 리소스들[편집]

알아두면 좋은 리소스들[편집]

실전! 게임을 만들어보자![편집]

조작을 만들어보자[편집]

대망의 제작실습이에요. 지금까지 잘 따라오고 계신가요? 게임메이커스튜디오를 통한 게임제작은 오브젝트로 시작해서 오브젝트로 끝나요. 모든 조작과 모든 기능을 오브젝트로 다뤄야 하기 때문이에요. 하지만, 오브젝트의 경우에는 알아둬야할게 많아요. 필요한것만 배우고 싶다면 아래에 있는 표들을 접고 따라오시면 되지만, 그래도 한번 쯤 배우고 가고싶다면 열어서 한번씩 훑어봅시다. 게임 제작은 직접 하면서 실력이 오르지만, 그래도 예습은 중요하잖아요?

파일:겜메강좌09.png

우선 오브젝트의 속성부터 살펴봅시다.

  • Name : 이름입니다.
  • Sprite : 이 오브젝트에게 스프라이트를 지정해줄수 있습니다.
  • Visible : 이 오브젝트로 작업하는 이미지들이 보이게 합니다. 꺼져있다면, 아무리 Draw액션을 사용해도 안나옵니다.
    • Sprite가 지정된 오브젝트라도 Draw액션을 사용하면 그 Sprite로 보이지 않게 됩니다. 후술할 Draw액션에서 자세히 설명할께요.
  • Solid : 오브젝트에게 "고체화"속성을 부여합니다. 이거 자체로는 아무 효과 없어요! 후술할 이벤트나 액션에 영향을 끼칩니다.
  • Persistent : 일반적으로 다른 룸으로 옮겨갈경우 이전 룸에서의 인스턴스가 전부 사라집니다. 하지만, 이걸 켜둔 오브젝트의 인스턴스들은 룸을 옮겨갈경우 같이 따라 옵니다. 만약 이 오브젝트가 있는 룸에 다시 들어갈경우, 인스턴스가 초기화됩니다.
  • Uses Physics : 물리엔진을 사용하는가에 대한 것입니다. 중력 등등을 의미합니다. 별로 쓸 일은 없을겁니다.
  • Depth : Z축을 의미합니다. 수치가 높을수록 Z축 위치는 작아집니다. 반대로, 수치가 낮을수록 다른 스프라이트들을 덮고 보이겠죠.
  • Parent : 부모오브젝트 상속을 설정합니다. 이게 설정된 오브젝트는 그 오브젝트에 설정된 이벤트들을 제외한 다른 조건에서의 액션들을 부모오브젝트와 똑같이 복사합니다. 물론, 설정된 이벤트에서도 상속받도록 하는 액션이 있습니다.
  • Mask : 실제 보이는 모습과 충돌범위를 다르게 하고싶을경우 고르시면 됩니다.
  • Children : 자기 자신을 parent로 설정한 오브젝트의 리스트입니다.
  • show information : 이 오브젝트의 정보들을 텍스트형태로 보여줍니다.
  • Events : 조건입니다.
  • Actions : 그 조건에 맞을 경우 실행될 결과입니다.

사실 영단어 알면 해석이 가능한 수준입니다

오브젝트는 가장 중요한만큼 아는것이 힘이됩니다. 알면 나중에 빼쓰기도 좋거든요.

오브젝트 이벤트와 액션은 게임메이커스튜디오 액션 을 참조해주세요. 한번쯤 훑어보고 앞으로의 내용을 읽는것이 더 도움이 됩니다.

흐름을 만들어보자[편집]

게임을 완성해보자[편집]

각주