게임 개발자가 되고 싶다면?

게임 개발자 되기 – 게임을 좋아하는 사람들은 한번 쯤 생각해 봤을 겁니다. ‘나도 이런 게임을 직접 만들 수 있으면 좋겠다’ 하고요. 사실 게임을 하다 보면 뭔가 부족한 점이 느껴질 때도 많고, 불편한 점이 있을 때도 많습니다. 이런 점을 이렇게 개선할 수 있으면 게임이 더 재미있을 텐데 왜 이 게임을 만든 게임 개발자들은 그런 생각을 못하는 걸까? 하는 생각이 자연스럽게 드는 순간이지요.

게임 개발자 – 무엇을 공부해야 하는가?

그런데 게임을 하는 법에 대한 매뉴얼들은 많지만, 게임을 만드는 법에 대한 매뉴얼을 찾아 보기란 쉽지가 않습니다. 게임을 만들기 위해 요구되는 역할들이 워낙 다양하기 때문에 이들을 하나로 아우르는 어떤 통합 학습서를 만드는 것은 거의 불가능합니다. 따라서 게임 개발자가 되기 위해 무엇을 공부해야 할 지 알아 보기 전에, 먼저 자신이 어떤 역할을 담당하고 싶은 지에 대해 생각해 보는 것이 필요합니다.

게임 디자이너 (게임 기획자)

게임을 만들기 위해 요구되는 게임 개발자 역할은 다양합니다. 우선 우리가 흔히 게임 기획자라고 이야기하는 게임 디자이너가 있습니다. 게임 디자이너는 게임의 목표와 그 목표를 달성하기 위한 규칙, 이른 바 게임 시스템 및 게임 메카닉(게임 메카닉은 게임 시스템의 하위 개념입니다)을 정하고, 플레이어에게 요구되는 스킬 및 사용자 인풋(키 조작 및 게임 패드 조작법)과 아웃풋(게임 인터페이스) 등을 지정하고 설계합니다. 여기에 별도로 게임 스토리 설정 및 스토리 텔링도 담당해야 합니다.

일반적으로 소규모 게임 회사나 팀에서는 한 사람의 게임 기획자가 이 모든 것을 담당하고, 큰 규모의 게임 회사에서는 각 분야를 담당하는 전문 역할들이 따로 있습니다. 게임 시스템 디자이너, 내러티브 디자이너(시나리오 기획자), UI/UX 디자이너(인터페이스 디자이너), 레벨 디자이너 같은 세부 역할들이 존재하는 것입니다.

게임 프로그래머

다음으로는 게임 프로그래머가 있습니다. 게임은 기본적으로 컴퓨터(모바일, 콘솔 기기 포함)에서 돌아가는 소프트웨어입니다. 따라서 프로그래머가 반드시 필요합니다. 기획자가 아무리 좋은 기획을 해도 프로그래머가 그것을 실제로 작동 가능한 소프트웨어로 구현하지 않으면 아무런 소용이 없습니다. 

프로그래머의 역할도 다양합니다. 게임 엔진을 담당하는 엔진 프로그래머가 있고, 게임 플레이를 구현하는 게임 플레이 프로그래머가 있습니다.

앞에서 이야기한 게임 인터페이스를 담당하는 UI/UX 프로그래머, 그리고 개발을 위해 필요한 편리한 툴을 개발하는 툴 프로그래머도 있습니다. 게임 인공지능(AI)를 전담하는 AI 프로그래머, 그래픽 효과(비주얼 이펙트)를 담당하는 비주얼 이펙트 프로그래머 등 규모가 큰 게임 회사에서는 게임 프로그래머의 역할도 아주 세부적으로 나뉘게 됩니다. 물론 소규모 개발팀에서는 한 두명의 프로그래머가 유니티나 언리얼 엔진 등을 이용해서 이 모든 역할을 다 하는 경우도 많습니다.

게임 그래픽 아티스트

멋진 게임 그래픽에 매료된 분이라면 게임 그래픽 아티스트의 역할을 맡아 보는 것도 좋습니다. 그래픽 아티스트 역시 많은 세부적인 역할로 나뉘어집니다. 3차원 모델링을 전담하는 모델러(캐릭터 모델링과 배경 모델링으로 세분화됩니다), 모델러가 만든 입체적인 모델에 덧붙일 그림(텍스춰)을 담당하는 텍스춰 아티스트(한국에서는 맵퍼라는 호칭으로 불리곤 합니다), 게임 인터페이스에 사용될 2차원 이미지들을 만들어내는 2D 그래픽 아티스트, 원화를 담당하는 컨셉 아티스트, 그리고 기술과 아트를 서로 이어주는 역할을 담당하는 테크니컬 아티스트 등 다양한 역할이 있습니다.

게임 애니메이터

물론 이 외에도 더 많은 역할이 있습니다. 대부분의 게임에서 게임에 등장하는 캐릭터나 배경의 일부 요소들은 정적으로 고정되어 있지 않고 움직입니다. 따라서 이러한 게임 애니메이션을 담당할 게임 애니메이터가 필요합니다. 게임 애니메이션은 2D 게임과 3D 게임이 서로 다른 방식으로 애니메이션을 구현하기 때문에 역시 2D 애니메이터와 3D 애니메이터로 나뉘게 됩니다. 또한 컷씬(Cut Scene)이라고 일컬어지는, 게임 내에서 영화와 같은 미리 계획된 애니메이션을 연출하는 컷씬 담당 애니메이터가 따로 존재할 수도 있습니다.

게임 오디오 디자이너

이 외에도 게임 개발자라는 이름 하에 포함될 수 있는 역할은 더 있습니다. 오디오 디자이너나 작곡가도 게임 개발자 중 한 명입니다. 음향 효과와 음악이 빠진 게임을 플레이해 보신 적이 있나요? 간혹 독특한 인디 게임의 경우 아무런 오디오를 넣지 않고 개발되기도 하지만 대부분의 게임에서 사운드가 빠질 경우 그 게임에의 몰입감은 엄청나게 약화될 것입니다. 따라서 오디오 담당자도 게임 개발자의 범주에 반드시 포함되어야 합니다.

게임 개발자 – 추천 학습 자료 소개

이 밖에도 많은 사람들이 모여서 게임을 개발하기 때문에 게임 개발자가 되려고 생각한다면, 이들 각각의 역할들이 구체적으로 무엇이고, 이들이 만들어낸 결과물들이 어떤 식으로 조합되어 하나의 게임으로 완성되는지에 대해 더 많은 공부가 필요합니다.

앞에서 설명 드린 다양한 역할 중, 자신에게 맞는 것이 무엇인지를 알기 위한 가장 좋은 방법은 아주 쉽고 간단한 게임을 하나 만들어 보는 것입니다. 유니티와 같은 편리한 게임 개발 도구를 이용해서 아주 기초적이면서도 간단한 게임을 만들어 보면 자신이 게임 기획에 더 흥미가 있는지, 프로그래밍을 하고 싶은지, 아니면 그래픽 아트에 흥미가 있는지에 대해 알 수 있는 기회를 얻을 수 있습니다.

이와 관련하여 보실 만한 몇 가지 공부 자료(동영상 강의)들을 소개해 드리겠습니다.

게임 개발자 – 3개의 추천 강의들

하단에 소개한 강의들은 완전 초보자들을 대상으로 게임 만드는 법을 상세하게 설명하고 있습니다. 하단의 링크를 통해 각각의 강의가 다루는 내용을 확인하신 뒤, 자신에게 흥미 있는 내용을 다루는 강의를 택해서 도전해 보시기 바랍니다.

각 강의에서 소개하고 있는 간단한 게임들을 만들어 보는 과정에서 게임 개발에 더욱 흥미가 느껴질 수도 있고, 아니면 생각보다 너무 어려워서 자신과 맞지 않다고 생각할 수도 있습니다. 어떤 결론을 내리게 되건, 일단 해 보고 내린 결론과 그냥 생각만으로 내린 결론은 그 무게감이 다릅니다. 게임 개발자가 되고 싶다면, 일단 뭐든 시작해 보시기 바랍니다. 그 과정에서 스스로 자신의 길을 찾아내실 수 있을 것입니다.

retr0의 유니티 게임 프로그래밍 에센스

동영상 강좌로 배우는 유니티

C#과 유니티로 3D 게임 개발하기

더 공부할 자료 - 개발 능력 다양화를 위한 학습의 필요성

유니티 엔진의 대안으로서, 인디 개발자들에게 선풍적인 인기를 끌고 있는 엔진이 바로 고도 엔진입니다. 혹시 고도 엔진을 배워 보려고 하신다면, 다음의 온라인 강의를 체크해 보시기 바랍니다.

초보자를 위한 고도엔진 게임 개발 입문