Prosto

게임을 만들고 싶다면? 게임 제작 방법은? 본문

Programing

게임을 만들고 싶다면? 게임 제작 방법은?

Prosto 2016. 9. 7. 19:50

모두들 게임 하나씩은 해봤을 것으로 생각됩니다. 아주 재밌게 한 게임이 있을 수도 있고요.

게임을 해오면서 게임 제작자의 길을 가고 싶은 사람들도 있을 것입니다.

그렇다면 게임을 제작하고 싶다면 무엇을 어떻게 해야 할까요? 게임 제작 방법에는 어떤 것이 있을까요?

그리고.. 게임을 만든다는 것은 무엇일까요?

 

 

일단 우리는 게임은 어떻게 구성되는지 확인해볼 필요가 있습니다.

 

우리가 하는 게임을 뜯어보자면..

기획(구상) + 그래픽(그림/3D모델링) + 프로그래밍(실제 구현)이 가장 큰 부분입니다. 사실 이 외에도 사운드, 영상 등 다양하게 들어가는 것을 알 수 있습니다. 그렇기에 소규모 게임이 아닌 대부분의 게임은 기획, 그래픽, 프로그래밍 등 모든 부분은 각각의 전문가가 있기 마련이고 그 전문가들이 모여서 만들게 됩니다.

이렇듯 게임을 만든다라고 하는 것은 생각보다 굉장히 많은 것을 요구한다는 것입니다.

 

 

  단순하게 '게임을 만들고 싶다.'라는 이야기는 너무 광범위한 이야기입니다. 그렇다면 게임에서 어떤 부분을 하고 싶은지, 혹은 정말로 대부분의 것들을 혼자 처리하여 게임을 만들고 싶은지 생각해볼 필요가 있습니다.

  자신이 잘할 수 있는 분야가 있다면(기획, 작곡, 그래픽, 프로그래밍 게임 개발에 참여하는 어떤 부분이든) 그 분야를 갈고 닦아 게임 개발에 참여한다면 그 사람은 게임을 만드는 사람이라고 할 수 있습니다. 이 때 마땅히 진행하고 있는 게 없다면 게임 개발에 있어 가장 큰 부분을 시작해 보면 좋겠죠?

 

(마인크래프트 게임 화면)

 

 

다시 본론으로 돌아와 게임을 만들고 싶다면 어떻게, 어떤 것을 해야 하는 걸까요?

 

  그에 대한 대답으로 가장 대표적인 게 프로그래밍 공부를 하는 것입니다.

  게임에서 프로그래밍이 담당하는 부분은 실제 구조, 구현입니다. 그림을 그리는 그래픽 디자이너가 그림을 그려서 주면 프로그래머는 그 그림을 실제로 이동하고 점프하고 공격할 수 있도록 만들어 주는 역할을 합니다. 이렇듯 실제 게임이 실행되게 하는 사람이 프로그래머이기에 프로그래밍 공부를 하라는 얘기죠.

 

 

프로그래밍을 잘하면 게임을 만들 수 있을까요?

  어떤 게임이냐에 따라 다를 수 있겠지만, 일반적으로는 '그렇다.'고 볼 수 있습니다.

  왜냐하면 그래픽, 사운드와 같은 리소스(자료)는 별도로 구매하여 사용할 수도 있고, 정말 단순한 게임의 경우 직접 그릴 수도 있고, 애초에 그림이 없는 게임도 있기 때문입니다. (도형들만 나오는 게임 같은..)또한 기획 부분도 마음 먹으면 프로그래머도 완전하지는 않지만 할 수 있는 부분입니다. (게임 성공의 유무를 떠나..)

 

 

  실제로 우리가 게임을 만드는데 단순히 기본언어인 C언어나 C++로 모든 것을 만들지는 않습니다. 하지만 내부 구조(로직)를 만드는 것은 필요합니다. 그렇기에 먼저 C언어 기초부터 하며 그 로직 만드는 방법을 배워가는 것이죠.

 

  게임을 만들 때 게임 엔진이라는 프로그램의 도움을 받아 만듭니다. (한 단계 더 도움을 받을 뿐 프로그래밍은 필요합니다.)

(일부 게임사 같은 경우는 이 엔진을 직접 만들거나 기존 엔진을 변경하여 사용하기도 하죠.)

 

대표적인 게임 엔진은 어떤 것들이 있을까요?

 

1.Unity 3D (유니티 엔진)

- 현재 가장 널리 사용되는 게임 엔진입니다. 국내 회사들에서도 많이 사용하고 개인 개발자들도 많이 사용합니다.

- 유니티 엔진을 이용하여 만든 게임의 경우 별도의 로얄티나 사용료 없이 사용이 가능합니다.(무료 personal 버전 사용 시)

- 단, 연수입이 $100,000 이상의 경우 프로 버전 구매하여 사용하면 됩니다.

- 캐쥬얼 3D 게임이나, 2D 게임에 가장 많이 사용되고, 특히 모바일에서 가장 빛을 발하고 있습니다.

- 다양한 플랫폼 변환을 지원하여 게임 엔진 중 크로스 플랫폼이 가장 뛰어난 엔진입니다. (거의 모든 플랫폼 변환 가능..)

- 프로그래밍은 C#과 JAVA 기반으로 작성합니다.

- 툴을 사용하는 경우 프로그래밍이 약해도 할 수 있어 기획자나, 그래픽 디자이너들이 접근하기도 좋습니다.

 

[ 유니티 3D 사이트 : https://unity3d.com/kr ]

(홈페이지 로고)

 

 

2.Unreal Engine (언리얼 엔진)

- 언리얼 엔진의 경우에도 국내에서 인지도가 높은 편에 속합니다.

- 일반적으로 스케일이 큰 고퀄리티 게임에 많이 사용되고 최적화가 잘 되어있는 엔진입니다.

- 유니티 처럼 접근성이 뛰어나지 못해 개인, 모바일 개발자들의 사랑은 많이 받지 못 했습니다.

- 최근에는 C로 작성도 가능하게 바뀌었고 전보다 접근성이 나아졌습니다.

- 무료 버전 사용 시 무료로 사용 가능하지만 분기별 매출이 $3,000 이상인 경우 5%의 로열티를 지불하게 됩니다.

- 크로스 플랫폼으로 PC, Mac, iOS,Android, PS4, Xbox One, VR, HTML5 다양하게 지원해줍니다.

- 프로그래밍은 C++ 언어 기반으로 작성합니다.

 

[ 언리얼 엔진 사이트 : https://www.unrealengine.com/ko ]

(홈페이지 로고)

 

 

3.Cocos2d-x (코코스 엔진)

- 코코스 엔진은 무료 엔진입니다. 개인 개발자들에게 유니티 다음으로 많은 사용자들이 있었습니다.

- 다만 처음 사용하기에는 난이도가 있어 쉬운 접근은 어렵고, 익숙해지면 추가 작업은 용이한 편입니다.

- 마찬가지로 크로스 플랫폼입니다. iOS, 안드로이드, 윈도우 등 모바일 관련하여 대부분 전환이 가능합니다.

- 프로그래밍은 C++ 언어 기반으로 작성합니다.

 

[ 코코스 엔진 사이트 : http://cocos2d-x.org/ ]

(홈페이지 로고)

 

 

  그 외에 크라이 엔진, 겜브리오 엔진 등 아주 다양하지만 가장 대표적으로 사용되는 세 가지 엔진만 간략하게 소개했습니다.

  현재 저는 모바일 2D 게임들의 작업을 유니티3D 엔진으로 하고있으며 대부분에서 만족하고 있습니다. 파티클 시스템(이펙트) 구성이나 처리도 어렵지 않게 잘되고, 엔진 자체의 인터페이스도 좋아 사용하기에 편리합니다. C#을 사용하기 때문에 쓸 수 있는 코루틴 기능도 아주 유용하게 사용하고 있습니다. 유니티 관련 자료도 많아 궁금할 때는 찾아보기 좋습니다.

  처음 엔진을 선택하는 중이라면 유니티 엔진을 추천하는 편입니다.

 

 

  더 쉽게 게임 제작을 하고 싶다면 게임 툴을 이용하여 만드는 방법이 있습니다.

  대표적으로는 RPG만들기시리즈(RPG쯔꾸르), 게임 메이커 스튜디오가 있습니다. 이 툴을 사용하면 크게 코딩(프로그래밍)을 하지 않아도 어느정도 게임을 완성할 수 있습니다. 처음에 관심을 갖고 한번 해보기엔 좋지만, 전문적으로 하기에는 약간 애매한 부분이 있습니다. 프로그래밍을 배워서 한다면 위에 정리된 대표적인 엔진들 중 선택하여 공부하는 게 좋을 것 같습니다.

Comments