[방명록 답변] 게임기획자가 UDK로 게임을 만드려면?

김포프 2012-05-19

전에 써놨던 블로그글 '게임개발자 지망생님들, 질문에 답해드리겠습니다'에 장문의 질문이 달렸는데 거기에 답글을 달자니 너무 길어지는거 같아 아예 새 글로 올립니다.

제가 답변은 달지만 아무래도 기획쪽 질문이라 저보단 다른 현직 기획자분들이 좀 더 멋진 댓글을 달아주셨으면 합니다…

(불행히도 이번엔 저 잘난척 할 내용은 없군요.. 쳇 -_-)

질문: UDK로 게임을 만들려고 하는 게임기획 지망생인데요…

안녕하세요 우선 포프님에게 감사의 말씀부터 드리겠습니다. 제가 옛날부터 가지고 있던 북미에 관한 많은 궁금증에 대해 개인의 경험과 함께 상세하게 써내려 풀어주신 것 정말 진심으로 감사 드립니다.

다만 제가 기획자를 꿈꾸는지라 프로그래밍이 중심인 글들에서는 제가 얻고 싶었던 정보를 얻기가 쉽지 않았습니다. 게다가 한국과 거리가 먼 곳이고 게임유형이 다르기 때문에 PC나 콘솔게임산업에 대해서도 기본적으로 원하는 능력이 각국마다 틀릴 것 같아 개인적으로 많은 궁금증을 가지고 질문을 하겠습니다.

제 소개가 늦었습니다만 우선 저는 한국의 직업전문학교를 다니는 학생이며 과는 게임기획과입니다.

최종적인 저의목표는 북미에서 전세계 사람들에게 시대가 변해도 불변하지 않는 사람의 의지나 감정을 담아내는 게임을 만들고 게임이 가지고 있는 기술들이 앞으로 어떻게 발전하고 다른 산업에 앞으로 어떻게 도움을 줄지 또 타 유형의 문화 콘텐트와 접목해가며 지향해 나가야 할 바를 알고 들으며 보고 논의해 가고 싶습니다.

온라인게임은 한국의 큰 특징인 시시각각 변모하는 유행을 축으로 하여 발 빠르게 소비자의 욕구를 지속적으로 충족시키는 장점을 조합한 성격을 지닌 유형으로 기존에 있던 유형들의 게임들과 크게 대비되며 잘은 모르지만 여러 해에 걸쳐 많은 성과를 일궈낸 걸로 압니다. 그러나 한국이라는 지역적 특성에도 불구하고 저는 온라인게임을 좋아하지도 잘하지도 않습니다. 어릴 적부터 팩을 꽂아 하는 비디오게임에 친숙해진 이유도 있겠지만 RPG이외의 장르는 시나리오의 존재가 눈에 띄게 부족하고 캐릭터의 존재의의가 희박했습니다. (단적으로 밖에는 모르지만 제 생각에는 다수의 인원이 모여서 하는 게임에서는 혼자 하는 게임 시나리오나 캐릭터의 비중에 비해 많이 희석되는 것 같습니다. 세계관을 토대로 시나리오나 캐릭터 존재의의를 궁금해하는 것이 게임 내나 공동의 목표가 아닌 타 진영을 이기는 것에 초점을 두고 이 효율성을 강조하기 때문으로 압니다.) 따라서 온라인은 게임으로서의 재미는 주어지지만 개인적으로 감명이나 감흥을 받기에는 힘들었습니다.

하지만 저희 학과는 철저히 온라인게임 중심의 수업입니다. 학생들이 팀을 이뤄 대략적인 온라인 게임 기획서를 만들고 특정 이용자 층을 공략하고 사람을 어떻게 모으고 유료화 콘텐트를 만들어 많은 이익을 창출해낼 것인가를 주 프로젝트로 삼고 있으니까요. 프로젝트마감이 최고조에 이르는 동안에는 학교에서 잠을 자서 완성하기도 합니다.

이런 연유로 PC게임이나 콘솔게임을 만들려는 저의 꿈이 너무나 멀게만 느껴져서 뭘 해야 될지 모르겠습니다.

그러던 와중 포프님께서 계속 언급하시던 중요한 항목인 게임을 만들어보라는 말을 듣고 게임을 만들려고 하는데요. UDK를 이용해 보려고 합니다.

여기서 질문이 있습니다.

첫 번째 질문으로

제가 개념이 부족해서 그러는데 엔진이 정확히 어디에 쓰이는지 잘 모르겠습니다. 게임개발에 핵심적인 것이라고 밖에는 인식을 못하는데요. 게임엔진이 가볍다거나, 무겁다는 의미를 모를 정도입니다. 엔진 시연 동영상을 보면 질감이라든지 물체의 양각을 두드러지게 하거나, 물리작용을 적용하거나, 광원을 조절하는 것으로 아는데 정확한 설명과 기획자들은 주로 엔진을 어디에 쓰는지 가르쳐주시면 감사하겠습니다.

두 번째 질문으로

저는 고등학교를 다닐 때 수리영역은 최하 점에 영어도 못합니다. 그림도 못 그리고 C언어를 배운 적도 없습니다. 따라서 코드, 스크립트, 함수 값의 개념도 모르는데요. 기껏 해본 건 콜 오브 듀티 개발자 콘솔을 아주 조금 이용해 본 것 밖에 없습니다.

show fps로 fps수치를 본다거나 sensitivity로 마우스 민감도를 조정하거나 cg_fov로 field of view값을 변환시킨다 정도로 말이죠

이런 제가 UDK를 만지기 전에 기본적으로 알고 배워야 할게 뭐가 있는지 어디에 쓰이는지 알고 싶습니다. 또 기획자가 가져야 될 지식도 될 수 있으면 알고 싶습니다.

끝으로 이렇게 긴 글 읽어 주셔서 감사합니다. 이 글을 쓰기까지 일주일이 넘게 생각과 시간이 걸렸네요. 개인적으로 많은 고민과 한숨을 섞어서 쓰게 됐습니다. 또한 쓰면서 많은 수정과 저 자신을 되돌아보는 계기가 됐습니다만 한편으론 주위에 온라인게임 개발에만 중점을 둬서 PC와 콘솔게임에 대한 정보를 얻기 힘들다는 게 슬프네요. 모쪼록 유익한 답변 부탁 드립니다.

답변:

일단 고통 잘 이해합니다. 본인이 하고 싶은게 있는데 정작 비싼 돈내고 다니는 학교에서 그걸 얻지 못하는 기분…. 기대가 클수록 실망도 크지요. 전 사실 게임개발 자체가 학교에서 배울수 있는거라 생각하는 놈이 아닌지라.. (전 독학팝니다.. -_-) 그래서 UDK로 뭔가를 만들어보겠다고 결정하신거 아주 잘하신거라 생각합니다. 정말 단순한 게임부터라도 만들면서 즐거움을 다시 찾으시길 바랍니다. (직접 손으로 주무르보면 재미를 느껴야 더 열심히 할 마음이 생기죠.)

그럼 마지막에 달아주신 질문에 대해 답을 제멋대로 답을 달아드리겠습니다. (위에도 밝혀놨듯이 전 기획자가 아니라 제 답에 모자른 부분이 많을겁니다. 다른 현직 기획자분들이 댓글로 좀 달아주시길 바래봅니다.)

1) 게임엔진의 역할

"게임엔진의 역할이 뭐냐?"라는 질문을 받으니 갑자기 머리속이 하애지는걸요? -_-; 사실 저도 이 놈의 정확한 정의가 뭔지는 잘 모릅니다. 원래의 개념은 자동차 엔진처럼 게임을 실행하는데 필요한 기술들을 모아놓은 거였던거 같은데(즉, 아티스트가 만든 모델들을 화면에 보여주거나, 사운드를 출력하거나.. 게임 이벤트를 관리하거나 등등…) 요즘은 그 외에 게임에 들어갈 리소스들을 만드는데 필요한 툴/에디터까지 총괄하는 개념이 되어가는거 같아요.

UDK나 Unity가 인기를 끄는 이유도 사실 엔진자체의 성능보다는 에디터가 좋아서거든요. 제가 언리얼 엔진 3을 제대로 써본지 한 7년되어놔서 이젠 잘 모르지만… 게임이벤트등을 노드로 연결하며 만들 수 있는 툴이 있는 걸로 알고 있고요. 스크립팅도 손수 하실 수 있을거에요. UDK보단 Unity쪽이 더 사용하긴 쉽습니다. UDK가 좀더 고성능이란 장점이 있죠. 그만큼 엔진이 무겁긴 하지만요…(하드웨어 사양이 높아야 한다는 뜻인듯…)

뭐, 다시 말씀드리면 저도 게임엔진의 정확한 정의를 아직 모릅니다. 그러면서도 제가 엔진 프로그래머인데…. 그냥 게임을 제작 및 실행하는데 필요한걸 무조건 만들어서 추가할 뿐이죠 -_-; 게임을 제작/실행하는데 필요한 기술들을 구현하는거죠 뭐. 뭐든간에 저 개인적으로는 어떤 걸 이해부터 하려고 노력한다면서 시간낭비하기 보다는, 직접 몸으로 체험하가면서 대충 감을 잡은 뒤 나중에 한발 물러서서 전반적인 걸 이해하는걸 선호합니다.

당장 조그만 게임부터 하나 만들려고 해보시면, 만들면서 "아 이건 어떻게 하지?" 하는 질문들이 수백만개 생길것이고 그것에 대한 해답을 찾아가면서 (구글 검색이면 왠만하면 다 나옵니다. 아님 UDK 웹사이트를 참조) 익히게 됩니다.

2) UDK를 만지기 전에 알아야 할 것

이 질문은 그냥 무시하겠습니다. '준비한 뒤에 뭘 만진다.' 라는 자세보다는 '일단 만지면서 뭐가 필요한지를 찾아낸다.'란 자세를 가지도록 하세요. 혼자 게임을 만드시려면 그냥 기획서만 작성하시기 보다는 맥스나 마야같은 아트 패키지도 약간 만지셔야 할거고 스크립팅도 약간 하셔야 할 겁니다. 반드시 그래야 한다는 것보다는 그래야 본인이 편합니다.

아무리 백날 '이런 이런 게임을 만들거니까 이 문서를 읽고 이렇게 만들어주세요.'라고 해봐야 그거 제대로 이해할 수 있는 사람 없습니다. 그게 바로 상용게임들도 실제 게임이 출시되고 게이머들이 플레이해본 뒤에야 제대로 평가를 할 수 있는 이유기도 하고요. '이렇게 이렇게 해주세요.'라고 말만하고 프로그래머가 (혹은 다른 개발자가) 그걸 만들어주기만 기다리는건 효율적이지도 않습니다 중간에 miscommunication 생길 가능성도 더 많죠. 남에게 의존하지 않고 본인 스스로 할 수 있는 일이 많아질수록 그만큼 본인의 정신건강에도 좋고 본인이 만들고자 하는데로 게임을 만들 수도 있습니다.

가끔 '다른 거 안하고 자기분야만 열심히 해도 된다' 라고 생각하시는 분들을 좀 봤는데.. 정말 아주 뛰어난 실력자 아닌 이상 별로 환영받지 못하는 분위깁니다. 회사 규모가 클수록 그렇죠. 다른 분야를 잘 이해하는 게 자기 분야에 대한 실력을 높이는 방법이기도 합니다. 크 ㄴ회사일 수록 다양한 사람들이 같이 일하니 서로의 업무에 대해 잘 이해해야만 팀 다이나믹이 좋아지죠. (저 스스로만 해도 프로그래밍 뿐만 아니라 온갖 프로그램 다 만질줄 압니다. 포토샵, 맥스, 마야 등은 기본이구요.. 기획자분들이 다루는 툴들도 필요하면 만지고 배웁니다.)

이 정도면 제가 달 수 있는만큼 답은 단듯 합니다. 다른 기획자분들의 멋진 댓글을 기다려보죠. 이제.