[취재] 평범한 학생에서 '듀랑고' 개발자로! 초보 개발자의 2년 돌아보기

게임뉴스 | 김규만 기자 | 댓글: 30개 |



NDC2017 두번째 날, '야생의 땅: 듀랑고'를 개발하고 있는 왓스튜디오의 손채원 프로그래머는 '어쩌다 신입: 초보 개발자의 2년 간의 포스트모템'이라는 제목으로 강단에 섰다.

손채원 프로그래머가 신입으로 왓스튜디오에 입사하게 되기까지의 계기는 이렇다. 여느 학생들과 같이 평범한 인문계 고등학교를 재학 중이던 그는 대학교에 진학하지 않기로 결심한다. 그 이유는 바로 게임을 만들고 싶었기 때문이었고, 대학 진학을 포기한 대신, 당시 네이버에 처음 만들었던 프로그래밍 교육기관 ‘NHN NEXT’ 에 지원해 2년 동안 게임 프로그래밍 공부를 시작하게 된다.

2년간의 공부가 끝난 뒤에는 입사 지원서를 작성했다. 특별한 것 없었던 입사 지원서였기에 뽑힐 일이 없을 것만 같았지만 이게 웬일, 그렇게 손채원 프로그래머는 넥슨 왓스튜디오에서 신입 프로그래머로서 일을 시작하게 되었다.

하지만, 마냥 설레던 첫 출근의 소감은 한마디로 ‘힘들다’ 였다. "첫 출근 날 했던 것은 인사와 자리에 컴퓨터를 설치한 것이 다였지만, 왜 힘들었는지 모르겠다”고 덧붙인 손채원 프로그래머는 이후로도 이런저런 고민이 계속되면서 계속 힘든 나날이 계속됐다고 설명했다.



▲ 왓스튜디오 손채원 프로그래머







새로운 환경과 새롭게 만난 사람들, 살면서 처음 겪어보는 문제들과 계속 직면하게 되면서 ‘이대로 게임 개발을 계속해도 괜찮을까?’ 하는 생각도 들었다. 어렵게 느껴지는 과제들과 이를 제대로 해결하지 못하는 자신에 대한 부끄러움, 어떨 때는 무능한 기분까지 들었던 신입의 생활. 처음으로 게임 개발을 하고 회사를 다니면서 고민했던 것들을 네 가지 물음표로 정리해 공유해 보려고 한다.

처음으로 갖게 되었던 질문은 ‘내가 이대로 게임 개발을 해도 괜찮을까?’ 에 대한 것이었다. 처음 왓스튜디오에 합류한 이후, 좋아하는 것은 많지만 잘하는 것은 많지 않음을 발견했다. 그럼에도 불구하고 ‘자신이 좋아하는 것은 반드시 잘하게 될 것이라는 생각을 가지고 있었고, 당시 입사지원서에도 “재미있는 것을 잘합니다” 라고 적을 만큼 거기에는 자신이 있었다.




게임 만들기와 프로그래밍으로 문제 해결하기를 가장 재밌어했었지만, 그중에서도 가장 좋아하는 것은 3D 그래픽스라는 컴퓨터 학문이었다. 3D 그래픽스는 눈에 보이는 모든 이미지에 대한 컴퓨터 공학으로, 이미지를 논리적이고 수학적으로 만들어 내는 것을 의미한다.

듀랑고에 적용해 파도가 치는 바다를 만들고, 무기를 휘두를 때 생기는 효과를 다듬고, 키 큰 나무들의 밑동이 훤히 드러나던 식물 스프라이트 버그 문제 등을 해결할 수 있었다.

이렇게 좋아하는 일을 점차 해 나가다 보니 조금씩 더 잘하게 되었고, 반신반의했던 믿음은 확신이 되었다. 가장 중요했던 것은 자신이 하고 싶은 것이 무엇인지 적극적으로 말했던 점이 기회를 가져다줬다는 것이다. 그리고, 이 이야기는 누구에게나 해당하는 일이라고 생각한다. 이렇게 좋아하는 것을 잘하게 되는 시간을 거치면서, 처음 들었던 질문에 대한 답을 자연스럽게 찾게 되었다. “나는 게임 개발이 재미있으니까 계속해도 괜찮겠다”고.




두 번째로 자신에게 가졌던 질문은 프로그래머로서의 역할이라는 것이 과연 무엇일까?에 대한 것이었다.

이런 고민을 하게 된 배경은 처음으로 아티스트(기획자)와 협업을 하게 되는 일이 생기면서였는데, 당시에는 소극적이고 시야가 좁은 상태로 일을 했으며, 각자의 역할에 대해 잘 알고 있지 못했고 그 기준 또한 뚜렷하지 못했기에 꽤나 어리둥절했던 첫 협업이 되었던 것으로 기억한다.

당시 처음 협업을 할 때는 각자의 역할을 문자 그대로만 이해하고 있었다. 프로그래머는 구현을 하는 사람이고, 디자이너는 디자인을 하는 사람이라고 말이다. 그렇기 때문에 일하는 방법 또한 다음과 같이 진행될 수밖에 없었다.




‘구현할 것이 없으면 기다린다. 디자인에 빠진 부분이 있다면 또다시 기다린다. 문서를 전달받으면? 문서대로 구현한다’

위와 같이 일했던 이유는 어떻게 일해야 좋은 게임을 만들 수 있는지 기준이 뚜렷하지 않았던 것이 컸다. 주어진 역할만 정확하게 따르고 기다리면 좋은 게임이 나올 것이라는 생각도 은연중에 하고 있었고, 무엇보다 디자인에 참여를 한다는 것이 어딘지 주제넘어 보였던 것도 사실이다.

그러던 어느 날, 협업을 하던 디자이너 분과의 대화를 통해 깨달음을 얻게 되었다. 회사에 입사한 이유는 문서대로 코딩을 하기 위해서가 아닌, 게임이 만들고 싶었기 때문이었다는 것을 다시금 깨닫게 되었고. 이후로는 일하는 방법을 변경하기로 결심했다.

구현할 것이 없다고 무작정 기다리는 것이 아니라, 구현이 필요한 곳이 있을까 하고 고민을 해보게 되었고, 디자인에 빠진 부분이 있다면 그 부분에 대한 의도를 파악하기 위해 (디자이너와)적극적인 소통을 나누기 시작했다. 또, 문서대로 구현하는 것이 다가 아니라, 적절한 구현 방법을 함께 고민하고, 미리 프로토타입을 고민하기도 하는 방향으로 작업 방식을 바꾸게 되었고, 그 결과 업무 만족도와 결과물 모두 좋아진 것을 확인할 수 있었다.

이후 ‘함께 게임을 만든다는 것’은 문서대로 구현만 하는 것도, 동료의 전문성을 침범하는 것이 아닌, 구현 방법을 공유하면서, 디자인 의도를 잘 표현할 수 있도록 돕는 일이라는 생각을 하게 됐다.







세 번째 고민은 ‘내가 할 수 있는 일을 어떻게 확장할 수 있을까?’ 에 대한 것으로, 이 부분은 현재 개발에 참여하고 있는 게임 ‘야생의 땅: 듀랑고’에 대한 예시를 통해 설명하고자 한다.

게임의 주요 무대가 되는 ‘섬’들은 절차적 생성 기법을 통해 다양한 모습과 생태계를 가지고 무한에 가깝게 생성이 된다. 그중에서 하나의 섬이 만들어지기까지의 과정을 간략하게 설명하자면 이렇다.

먼저, 디자인 문서와 여기에 따라 수식화된 데이터가 필요하고, 이를 토대로 섬이 생성된다. 이후에는 다양한 식생을 심고, 동물을 배치하며, 이러한 요소들이 주기적으로 리젠될 수 있도록 하는 작업이 진행되며, 이후에는 이렇게 만들어진 섬을 저장소에 업로드하고, 서버에서 발급 및 데이터베이스에 반영하는 등 다양한 순서가 잇따른다.




이처럼 듀랑고라는 게임을 만들 때 필요한 일들을 커다란 원이라고 본다면, 그중에 신입 프로그래머로서 자신이 할 수 있는 일은 점에 불과하지 않았다. 이렇게 할 수 있는 일의 반경이 넓지 않다 보니 여러 가지 문제에서 동료들을 괴롭히고 있는 자신을 발견하게 되었고, 이대로는 안돼겠다고 생각해 개발에 필요한 여러 작업들을 내 것으로 만들기 위해 질문을 하기 위해 노력하게 됐다.

무작정 찾아가서 이것저것 물어본 것은 아니다. 각각의 문제에 대해 나름대로 해결 방법을 찾아보고, 적합한 질문 방법도 찾아보고 이를 인용해 질문하기 위해 노력하는 나날을 계속했다.

그 결과, 지금은 혼자서도 섬 하나를 만들 때 필요한 작업에서 몇몇 부분에 떠오르는 문제들을 수정할 수 있게 되었다. 처음보다 '내가 할 수 있는 일'의 반경이 늘어났고, 작업과 관련 있는 모든 일에 대해 배우고자 했더니 이전보다 작업 프로세스를 더 잘 이해하게 됐다. 프로세스의 이해는 또 의도에 적합한 구현을 제안하거나, 사소한 일로 발생하는 커뮤니케이션 비용을 줄이는 등과 같은 장점을 가져다주었다. 다시 말하면, 적극적으로 배우면 게임을 위해 더 많은 일들을 할 수 있다는 것을 깨닫게 되었다.




마지막으로 고민했던 것은 ‘게임을 재미있게 만드는 데 어떤 기여를 할 수 있을까?’ 였는데, 여기에 대해서는 디자이너의 입장에서 고민을 해본 것이 크게 도움이 되었다.

‘듀랑고’ 세계 속에서 절차적 생성에 따라 갈대 하나가 자라기까지는 적당한 온도와 습도, 호수와의 거리와 양분 등 다양한 수치에 대한 필드가 필요하다. 문제는 이러한 갈대들을 적절한 타일 위에 심어야 하는데, 어는 타일이 적절한지 알 수 없다는 것이었다.

두 번째 문제는 자연물 간의 경쟁이 예측 불가능하게 이뤄지는 것으로, 갈대들이 너무 빽빽해 보여 몇 개를 지우면, 그 틈으로 나무가 자라버린다. 하지만 왜 이런지 이유를 아무도 알 수 없었다. 나무들의 간격 조절이 어렵다는 것도 문제였는데, 나무들 사이의 간격을 원하는 만큼만 떨어뜨릴 수 없다는 것은 디자이너에게 있어서도 문제가 될 것 같았다.




이렇게 프로그래머가 보기에도 어려운 작업들을 없앤다면 디자이너들이 상상한 그대로를 게임에 넣을 수 있지 않을까? 라는 생각에서 개발한 것이 ‘숲 시스템’이었다. 온도와 습도 같은 어려운 수치들을 모두 없애고, 자연물 간의 복잡한 경쟁도 없애고, 타일 간격을 설정할 수 있게 하는, 말하자면 ‘얼마만큼의 영역에, 얼마만큼의 식물이, 얼마만큼의 간격으로 자랄 것인지’를 쉽게 설정할 수 있는 시스템을 기존 시스템 위에 새로 만들었던 것이다.

디자이너의 입장에서 고민해보고, 지금 존재하는 문제를 단순화하는 방향으로 만든, 간단한 시스템이 게임에 기여하는 것을 보고 쉬운 게임 시스템으로도 게임에 기여할 수 있다는 것을 알 수 있었다.



▲ 새롭게 추가된 '숲 시스템'을 이용해 제작된 생태계

이렇게 2년간의 신입 생활을 보내면서, 업무에 대한 자세에 변화가 생겼다. 좋아하는 것을 하고 싶다고 적극적으로 표현할 수 있게 되었고, 디자이너의 의도를 우선적으로 고려하면서 소통하게 되었다. 또, 관련 작업을 소화하기 위해 작업 반경을 적극적으로 넓히고자 노력하게 됐고, 모르는 것이 있다면 혼자 오래 고민하기보다는 동료들에게 질문하면서 배워나가는 길을 택하게 됐다.

물론, ‘허락보다 용서를 구하라’는 사내 문화 또한 성장의 배경이 되었던 것 같다. 이런 관용적인 분위기가 창의성과 용기를 키워주었다고 생각한다. 혹기 과거의 나에게 한마디 할 수 있는 기회가 생긴다면, 조금은 식상하지만 이렇게 말해주고 싶다. “혹시 지금 바보 같아도 괜찮아, 매일 매일 나아질 테니까” 라고.












댓글

새로고침
새로고침

기사 목록

1 2 3 4 5