2012년 5월 19일 토요일

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

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

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

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


질문:  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 생길 가능성도 더 많죠. 남에게 의존하지 않고 본인 스스로 할 수 있는 일이 많아질수록 그만큼 본인의 정신건강에도 좋고 본인이 만들고자 하는데로 게임을 만들 수도 있습니다.

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


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


댓글 8개:

  1. 좋은 답변글을 잘 읽고 이제 기획자님들의 댓글을 기대하며 스크롤을 내렸는데 '댓글 0'이라고 적혀있는걸 보며 웃음과 눈물이 동시에 나오네요 ㅋㅋㅋ......ㅠㅠ

    답글삭제
    답글
    1. 자.. 그럼 달아주세요~ ㅎㅎ

      삭제
    2. 저는 UDK로 게임을 만들어 본 적이 없어서... *^^* ㅎㅎㅎ

      삭제
    3. 그럼 만들어 주세요! (우기기 대마왕이 되어가고 있는 포프.. 분명 민근님에게 배운거야.. 중얼중얼~ -_-)

      삭제
  2. 전문가는 아니지만 도움될까해서 댓글을 남겨봅니다.
    엔진이 당췌 기능이 많고 범위가 넓다보니 한마디로 정의하기가 애매한 부분이 있는 것 같습니다. 엔진이란게 발생하게 된 원인으로 설명을 해보도록 하겠습니다.

    게임 타이틀을 한 두작품씩 만들다보면 타이틀끼리의 공통분모와 공통분모가 아닌 부분을 발견하게 됩니다. 주로 타이틀은 바뀌어도 잘 변하지 않는 부분은 그래픽 드로잉 부분이란것을 발견하게 됩니다. 게임로직같은 부분은 타이틀마다 변하지만, 이 부분은 대부분 유사한 워크플로우로 고정이되어 있었기 때문입니다. 앞으로 장사 한 두번 할게 아니니 그래픽 드로잉에 대한 함수들을 모아서 패키지화(라이브러리화) 해놓으면 다음 타이틀때 그대로 써먹으면 개발기간과 개발자의 마나소모량을 아낄수가 있으니까요.

    게임 드로잉 라이브러리가 만들어졌는데 그다음부터 살펴보니, 마우스키보드 제어나 사운드도 별로 달라질게 없다는걸 느끼게 되었습니다. 그래서 입력관련 부분과 사운드도 라이브러리화 합니다. 그러고보니 이런 라이브러리가 한 대여섯개씩 생기는데, 이걸 각각 관리하기 보다는 합쳐서 관리할 수 있는 커다란 게임의 틀을 만들고 싶어지게 됩니다. 그 틀안에서 게임을 만들면 예전 지난 타이틀에서 만들어 두었든 기능이 많으므로, 좀 더 빠르고 누구보다 빠르게 남들과는 다르게 색다르게 리듬을 타는 게임위의 나그네가 될수 있겠다 싶습니다.

    그 게임의 틀과 같은 부분을 소프트웨어쪽에서는 프레임워크라고 부릅니다.
    대부분 프레임워크를 말할때는 주변 도구들을 뺀 순수한 코어 라이브러리 셋을 의미하는 경우가 많고, 주변도구(에디터류)를 포함하는 경우에는 SDK 라고 통칭합니다.

    게임 프레임워크를 만들었는데, 개발을 하다보니 맵 에디터같은 것들도 만들어서 레벨을 디자인해야 되고 디아3도 해야되고 할게 많습니다. 맵 에디터나 스크립팅엔진과 같은 것을 덧붙이고 점점 방대하게 변모해갑니다. 다만 일반 게임 1개를 만들때와는 다른 점은, 이 프레임워크 자체가 좀더 범용적이라는 것입니다. 범용적이란 뜻은. 특정 장르나 타겟에 두는 것이 아닌 어떤 장르의 형태에도 잘 어울리도록 확장성이나 유연성을 더 고려를 해두었다는게 조금 차이가 있을 겁니다. (게임은 최적화와 속도가 생명이니 확장성과 유연성은 되도록 포기하게 되는 편일 것입니다.)

    엔진이란 이름이 나오게된 것은 마케팅적 차원의 이유가 큰 것 같습니다. 언리얼이라는 훌륭한 게임이 나와있고 후광효과를 노리기 위한게 아니였을까 싶습니다. 언리얼의 핵심코어가 되는 부분을 추출해왔다는 의미로 엔진이라는 용어를 사용하게 된이 아닐까 유추해봅니다. 마케팅을 "언리얼 심장" 이상하잖아요. "언리얼 프레임워크" 프레임워크가 사전적 의미로 틀을 의미하다보니 껍데기를 파는 느낌이고해서 새로운 마케팅적 용어를 만든듯 싶습니다.

    게임엔진에서 그래픽적인 부분을 자꾸 강조하는 이유는. 시각적인 홍보가 가장 먹히겠거니 하거니와 그래픽 관련된 부분은 굉장히 빠르게 발전하기 때문에 "우리 이런거 됨~"하고 자랑하기 좋고, 수학으로 도배되어 있어서 그걸 공부하고 구현하기 위해서는 상당한 노력이 필요하기 때문일것입니다. 게다가 최적화까지 해야되요.. 최적화는 알고리즘에 대한 거의 완전한 이해 없이는 최적화가 힘들어서 공부를 많이 해야 합니다. 90마리씩이나 되는 LOL 캐릭터 공부하기도 바쁜데 말이죠..

    제글이 도움 되셧으면 좋겠습니다.

    답글삭제
    답글
    1. 저에게 더 도움이 되는것 같은..... ^_^ 감사합니다!

      삭제
  3. 게임만들게 해주세요!!!2012년 5월 19일 오후 8:47

    오우! 오우! 오우! 빠른 답변 정말 감사합니다. ^^
    오늘 아침에 일어나자마자 컴퓨터를 키고 질문 글을 보러 왔는데 답을 해주셨더군요.
    시간이 안돼서 간단하게 답을 주신 것을 보고 있었는데 답변만 받은 걸로도 절로 웃게 되더라고요.

    솔직히 어제 질문 글이 끝나고 난 후에도 답변에 너무 시간이 오래 걸려 일이 흐지부지돼서 결국 이름없는 온라인 개발자로 남을지 아니면 게임리뷰 하는 게임 기자가 되어야 될지 오만 가지 걱정을 다하고 있었습니다.

    정말 이렇게 빠른 답을 받을 거라곤 기대하지 않았습니다. 정말 진심으로 다시 한번 감사합니다.

    그리고 포프님의 글에 공감이 많이 가네요.

    저희 학교도 올 라운드 형식으로 키워내고 있습니다. 그래픽, 기획, 프로그래밍(?)에 벽을 두지 않고요 그래서 북미의 기획자 분들도 올 라운드 형식의 기획자가 많은지 질문하려다가 결국 멍청한 질문 같아서 관뒀습니다.

    요 며칠간 글을 작성하려고 수많은 생각을 해봤는데 많이 알면 알수록 겸하는 게 많을 수록 좋은 질의 게임이 나올 거란 건 너무나 당연한 이야기라는 결론에 도달했습니다.

    다른 분야의 발목도 안 잡고 말로 기획을 설명하는 게 안되면 그림으로 설명하면 되고 이곳 저곳의 분야를 돕다 보면 개발 시간도 단축되고(의견충돌이 있을 수는 있겠지만요) 단축된 시간에는 더 좋은 품질의 게임을 만드는데 열중할 수 있으니 여러모로 좋다는 생각이 들었거든요.

    게다가 포프님에게 보이려고 스토리문서를 만들어봤는데 기획에서는 시각과 청각에 대한 묘사도 할 수 있고 묘사의 경계도 없다 보니 짤막하게 글로 시각, 청각묘사를 넣어 상세하게 하려다가 보니까 주인공 시점, 주변 배경 묘사, 주변 소리 묘사, 의상묘사, 캐릭터 묘사, 세계관 내에 존재하는 상징성 있는 사물, 날씨묘사를 넣다 보니 한 챕터만 서면적인 글로(삽화도 없이 말이죠.) 적어서 선보이려는 데도 작성하는 제가 손이 안가고 지루해지더군요.

    이게 소설인지, 대본인지 제가 뭘 하는 건지 잘 몰라서 결국 흐지부지 되더군요. 혼자 생각해내는데 판이 너무 커지는 문제도 있고요. 작성하는 제가 지치는데 과연 사람들이 볼까라고 생각했습니다. 지금에 와서 생각하는 건데 4컷 짜리 삽화플롯으로 묘사하는 게 편할 것 같네요. 그 장수가 많아 질지언정 말이죠.


    포프님 블로그를 보기 전까지 저에게 가장 중점이 되었던 건 제가 가고자 하는 곳의 최고로 가까이 있는 현직 종사자 분의 확실한 조언과 발언이었습니다. 저희 학과에서는 3d맥스, 파워포인트, 일러스트, 포토샵, 프리미어(베가스인지 정확히 모르겠네요), 워드, 비주얼베이직 같은걸 배웠는데 어떤 건 간단하게 배우고 어떤 건 집중을 안 했습니다.

    온라인 중심이다 보니 매번 안개 속을 해쳐나가는 것 같았고 우여곡절 끝에 북미에 갔는데 제가 배웠던 기술들이 안 쓰인다는 말을 들을까 겁도 났고요.

    그러다가 여러모로 생각하기를 제가 원하는 지역의 가장 가까운 캐나다의 VFS를 가면 가능 하려나 생각도 해봤지만 집에 돈이 많은 것도 아니니 입학요건이 된다 한들 이래저래 꿈은 멀어지고 절망만 하게 되었습니다.

    솔직히 UDK로 게임을 만들려는 생각은 오래 전에도 딱 한번 생각해봤습니다. 인터넷에서 오래 전부터 많은 글을 뒤져보고 온라인에서 근무하시는 분이 게임을 만들라는 글도 몇 번 접했습니다. 온라인분야지만 그래도 한번 해보면 뭐가 되든 도움이 될 거란 생각에 게임제작에 쓰이는 프로그램 검색을 해보던 결과 UDK를 알게 됐습니다.

    PC게임에서 흔하게 쓰는 언리얼 엔진 바탕인 UDK가 제가 가고자 하는 곳에서는 가장 흔하게 쓰이겠지 해서 결정했습니다만 당시로서는 UDK는 홈페이지 번역도 안되어있었고 한국인 교류가 활발하지도 않았고 제 컴퓨터가 UDK를 끊기면서 돌릴 정도로 좋지 않았습니다. 무엇보다 그때도 최근까지 생각해온 게임을 만들기 위한 습득해야 할 지식 같은 게 필요하지 않았나 생각했고요. 그러다 보니 설치해보고 실행해보고 삭제하고 끝냈습니다.

    그때부터 최근까지 배경지식에 대한 질문이 끊이지 않은 것과 확신이 없어서 게임제작에 눈을 돌려버렸습니다.

    하지만 제가 가고자 하는 곳에 가까이 계신 포프님이 게임제작을 강조하셨고 원하던 질문에 답도 해주셨고 나중에 제작을 하다가 막히면 도움을 받을 수도 있으니 게임제작을 해서 실력을 쌓으면 북미취업에 가까워 지겠죠. 글을 참 오래 쓰게 됬네요.

    오늘 UDK도 설치했으니 앞으로 하나하나 익숙해져가야 겠습니다.

    답글삭제
    답글
    1. 어차피 게임개발이라는 직종 자체가.. 한번 배우면 몇년 못쓰는 직종입니다. 계속 변하니 계속 새로운걸 배워야하지요. 따라서 실무에서 꾸준히 배우면서 발전해나갈 수만 있다면 당장 뭘 아는지니 뭐.. 크게 중요하진 않습니다...

      얼마전에 한국의 모회사 사장님과 대화를 나눌 기회가 있었는데 저희 둘다 동의한 것이.... '기본기만 있으면 중요한건 자세이다'였죠. 아무리 당장 배워놓은게 많아도 2년뒤에 발전이 없다면... 별 쓸모없는 개발자가 되는겁니다.

      열심히 하시고 결과 나오면 반드시 보여주세요 ^_^/

      삭제