유니티 게임 엔진의 등장

유니티 공부 방법 – 제가 게임 기획자로 게임업계에 처음 발을 들였던 지난 1996년을 회고해 봅니다. 저에게는 그 당시, 게임 프로그래밍이라는 것은 특별한 능력이 있는 사람만 할 수 있는 영역으로 느껴졌습니다.

당시의 게임 프로그래머들은 기본적으로 어셈블리어 정도는 다룰 줄 알았고, 대부분 게임 엔진과 레벨 에디터도 직접 만들어야 했습니다. 그 뿐 아니라 게임 기획자(지금의 레벨 디자이너. 당시에는 레벨 디자이너를 따로 구분하지도 않았습니다.)들을 위해 스크립트 언어까지도 스스로 개발해서 제공해야 했으니, 프로그래밍에 대해 아무 것도 모르는 기획자 지망생이던 저에게 직접 게임 프로그래밍을 한다는 것은 정말로 불가능해 보이는, 어려운 작업으로만 보였습니다.

하지만 이제 세상은 많이 변했고, 유니티를 비롯, 누구나 쉽게 배울 수 있는 좋은 게임 엔진들이 넘쳐나는 시대가 되었습니다. 엔진을 사용하기 위해 비싼 돈을 내고 구입을 할 필요도 없습니다. 또한 유니티를 공부하기 위해 참고할 만한 교재나 동영상 강의도 이제는 쉽게 찾아볼 수 있기 때문에 이제는 마음만 먹으면 누구든 게임 개발을 배울 수 있게 되었습니다.

하지만 배우는 데에도 효과적인 공부법이 있기 마련입니다. 특히 가장 빠르게 배울 수 있는 유니티 공부 방법을 미리 알아 보시고 유니티를 배우기 시작하신다면 시간과 노력 대비 큰 효율을 기대하실 수 있을 것입니다.

내가 경험한, 가장 효과적이었던 유니티 공부 방법

이런 상황에서 떠오르는 일화가 하나 있습니다. 제가 독일에 오기 전, 한국에서 유니티 게임 프로그래밍을 강의할 때의 이야기입니다. 수강자 분 중에 유난히 기억에 남는 분이 있었는데, 그 분은 당시 유니티를 비롯, 게임 개발에 대해 특별히 사전 지식이나 경험을 가지고 있지 않은 분이었습니다. 따라서 첫 수업 때는 별로 눈에 띄는 점이 없었는데, 이후 수업이 끝날 때마다 저를 찾아와서 무엇인가를 보여주기 시작하셨습니다.

그것은 조금씩 만들어 가고 있는 그분 만의 게임이었는데요, 수준이 높지는 않았지만 독특한 게임 플레이(gameplay) 경험을 제공하는 게임이었습니다. 그리고 그 때 제가 확실하게 알 수 있었던 것은, 그분은 유니티를 배우러 제 수업에 온 것이 아니었다는 사실이었습니다.

그 분은 “어떤 구체적인 게임”을 만들고 싶었고, 그 게임을 만들 수 있는 지식과 기술을 배우러 제 수업에 온 것이었습니다. 다시 말해서 자신이 만들고 싶은 게임이 구체적이고 명확했으며, 단지 그런 게임을 만들기 위한 방법을 알고 싶었기 때문에 제 유니티 강의에 수강자 등록을 하고 배우러 오신 것이었습니다. 따라서 매번 수업이 진행될 때마다 그 분의 게임은 점점 더 완성된 모습을 갖추기 시작했으며, 수업의 절반 정도가 지나자 저는 그 분이 만들고자 했던 게임이 어떤 것인지를 정확하게 알 수 있었습니다.

결과적으로 전체 수업 과정이 다 끝날 무렵, 그 분의 실력은 다른 수강자들과는 비교가 안되는 수준이 되었습니다. 물론 한달 정도의 짧은 과정이었기 때문에 게임 개발 수준이 아주 높은 것은 아니었지만, 그저 유니티를 배우러 오셨던 분들과, 자신이 만들고 싶었던 ‘어떤 구체적인 게임’을 만들기 위해 유니티 지식과 기술을 필요로 했던 분과의 차이는 엄청났습니다.

능동적인 유니티 공부 방법 – 구체화된 목표를 세우세요

어떤 분들은 이것을 수동적인 배움과 능동적인 배움의 차이라고 설명하기도 하는데, 여기에 덧붙여 저의 생각을 조금 더 추가해 보도록 하겠습니다.

게임을 만들고 싶어 하는 분들은 세상에 많습니다. 게임을 플레이하는 것을 좋아하는 사람들이라면 아마 누구든 ‘나도 이렇게 재미있는 게임을 만들어 보고 싶다’는 생각을 해 보았을 것입니다. 그래서 유니티 프로그래밍 책을 사서 보기도 하고 강의를 듣기도 하면서 게임 개발자의 꿈을 키우곤 하지요. 하지만 단지 막연하게 ‘나도 재미있는 게임을 만들어 보고 싶다’ 정도의 생각만으로는 이러한 배움의 과정을 지속할 수가 없습니다.

시작은 쉽습니다. 하지만 작심삼일이라는 말이 있듯이 그러한 배움을 계속해 나간다는 것은 정말로 어려운 일입니다. 막연히 ‘하고 싶다’ 정도의 마음가짐만 가지고는 해 낼 수가 없지요. 따라서 ‘목표가 분명하고 구체적일 필요’가 있습니다. 그렇지 않다면 일단 공부를 시작한 다음에도 중간에 길을 잃어버리고, ‘내가 왜 이것을 하고 있지?’라는 회의가 밀려드는 것을 경험하게 됩니다. 이것을 이겨낼 수 있는 힘이 필요합니다.

게임에 대한 열정 따위(?)가 아닙니다

이것은 단순히 ‘게임에 대한 열정’이라는 말이 아닙니다. ‘게임에 대한 열정’이라는 표현에 나와 있는 ‘게임’은 너무나도 막연하고 큰 개념입니다. 게임 플레이를 구체적으로 묘사할 수 있는, ‘그 어떤 게임’을 마음 속에 그리고 있어야 합니다. 그것이 없다면 열정 자체가 생겨날 수 없습니다.

연애를 할 때, 단지 ‘누군가를 사랑하고 싶다’는 마음만으로 연애가 시작되지는 않습니다. 우리는 구체적인 누군가이기 때문에 그 사람을 사랑하는 것이지, 그냥 추상적인 연인을 사랑하는 것이 아니기 때문입니다. 추상적인 것으로는 감정, 열정이 생겨나지 않습니다.

나를 위한 효과적인 유니티 공부 방법을 설계하자

유니티 게임 개발도 마찬가지입니다. 유니티로 게임 만드는 법을 배우고 싶으신가요? 그렇다면 먼저 막연한 ‘게임’이 아니라 구체적인 어떤 게임을 만들고 싶으신 지 스스로를 돌이켜 보시기 바랍니다. 만들고 싶은 게임의 내용을 글로 적거나 그림으로 그릴 수 있다면 더욱 좋겠죠.

“나는 구체적으로 이런 게임을 만들고 싶은데, 방법을 모른다. 그래서 지금 유니티를 배우는 것이다.” 이런 마음으로 공부를 시작할 수 있어야 합니다. 그렇지 않다면 금방 포기하고 마는 자신을 발견하게 될 것입니다. 추상적인 공부, 다시 말해서 책이나 동영상 강좌에서 강사가 예제로 제시하는 ‘다른 사람의 게임’을 단지 수동적으로 따라 만드는 것만으로는 열정이 지속되기 어려우니까요.

제목은 거창했지만, 단순한 이야기가 되고 말았습니다. 하지만 유니티나 게임 개발을 처음 시작하는 분들께 이 글이 어느 정도 도움이 되었기를 기대합니다. 저는 다음에 다른 글로 다시 인사 드리겠습니다. 🙂

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

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

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