컴퓨터공학과에 재학 중인 대학교 1학년입니다. 게임 개발자를 꿈꾸고 있어요. 게임 개발자에 관해 궁금한 점을 해결하고 싶어 이렇게 용기 내어 멘토님께 질문을 드립니다.
©Lorenzo Herrera
멘토님은 어떻게 게임 개발자를 꿈꾸셨나요? 듣기로는 굉장히 근무가 많아서 여가가 없다고 하는데 실제 여가시간은 얼마나 있는지 궁금합니다.
게임개발자를 조사하다 보니 제 생각과는 다르게 많이 힘든 직업이며, 취직 또한 잘 되지 않는 직업인 것 같아 괜시리 의기소침해졌습니다. 멘토님께 현실을 여쭤볼 수 있을까요?
소중한 시간 내주셔서 감사합니다!
게임 개발자라는 꿈을 실현하려고 부단히 노력하려는 모습이 참 멋있네요. 어떤 목표점을 향해 나간다는 건 모호함과 불확실성을 해결하는 측면에서 여러 궁금증을 질문하는 태도는 매우 바람직하다고 봅니다.
초등학교 시절부터 게임에 푹 빠져 지냈습니다. 공부가 하기 싫어 일종의 회피였을 수도 있습니다. 그렇게 컴퓨터에서 동작하는 여러 소프트웨어를 살펴보며 명확하진 않았지만 컴퓨터와 관련된 업종에서 일하면 어떨까라는 막연한 생각을 갖고 대학에 진학했습니다.
대학에 진학해서도 열심히 게임을 즐기며 생활했죠. 그 당시만 해도 '게임을 만들어볼까?'라는 생각보다는 그저 게임을 플레이하는 그 순간을 즐기곤 했습니다. 그런데 석사를 공부하는 도중에 '월드 오브 워크래프트'라는 인생 게임을 만났습니다.
게임을 플레이하며 도대체 어떻게 시스템을 만들고 40명의 사람들이 한꺼번에 도전하는 던전을 만들 수 있을지 궁금했습니다. 그래서 석사를 졸업하고 획득한 전공과는 전혀 다른 Direct X를 학원에서 배우는 방향으로 선회했습니다. 학부와 석사에서 배울 수 없었던 게임 엔진을 배우며 클라이언트 프로그래머로 취업을 하였고 그 뒤로 지금까지 클라이언트 프로그래머 개발자로 삶을 살아가고 있습니다.
©Clint Bustrillos
처음 직장을 다니며 소위 '프로' 의식을 갖기 전까지 부단히 노력하며 코드를 분석했던 시기가 떠오릅니다. 여가 시간은 연차와 자신의 실력, 그리고 스튜디오의 상황에 따라 다릅니다. 그래서 프로젝트의 초기와 알파 버전, 본격적인 개발, 론칭으로 나눠서 설명해 볼까 합니다.
프로젝트가 시작되고 어느 정도의 윤곽이 보이는 시기까지는 바쁜 일상을 보냅니다. 중견 기업이 아닌 스타트업에서는 항상 바쁜 시간을 보내겠지만, 자본이 어느 정도 뒷받침되는 회사의 신규 프로젝트는 '허들'이 존재합니다.
초기 버전의 완성도를 판단하여 상업적으로 성공 확률이 어느 정도 보장되어야 프로젝트는 정식 스튜디오로 승인되어 경영상 인력 충원이 허가됩니다. 아무래도 '허들'이라는 완성도를 높이려면 소수의 인원이 바쁘게 움직여야 보다 완성도가 높은 게임이 만들어집니다. 이런 시기에는 여가 시간이 그리 많지는 않습니다.
프로젝트의 초기 버전의 가능성이 보여 정식 스튜디오 승인이 된다면 인력을 조금씩 충원하여 나름 즐겁게 개발하는 시간을 보냅니다. 여러 의견과 새로운 시스템을 만들어가는 모습을 볼 수 있습니다. 이런 시기에는 자신의 역량에 비례하여 적절한 업무 배분으로 비교적 안정적인 시간을 확보할 수 있습니다. 프로젝트 론칭 시기에는 체력적으로 상당히 무너지는 타이밍이 존재해서 체력을 비축하는 일정과 자기 관리가 필요한 시기이기도 합니다.
이렇게 프로젝트가 진행되어 어느 정도 완성도가 보이면 론칭의 시점이 다가왔다고 볼 수 있습니다. 게임의 론칭은 말 그대로 상품을 소비자에게 내놓는 날을 정하는 겁니다. 어느 누구라도 자신의 상품의 문제가 발생한 상태로 소비자에게 모습을 공개하기는 싫습니다. 게임은 매우 복잡한 상품입니다. 그래서 의도치 않은 '버그'와 방향성으로 게임의 론칭 시기에는 매우 바쁩니다. 여가 시간은 다른 시기에 비해 턱없이 부족하답니다.
©Muha Ajjan
게임 개발자에게 가장 중요한 건 아무래도 개발 능력이겠죠. 그 밖에 갖추어야 할 기본 소양으로 창작의 호기심, 커뮤니케이션 능력, 컴퓨터의 기본 지식이 있습니다.
우선 프로그래머라면 어떤 개발 과제가 주어졌을 때 어떻게 개발을 완수할지 끊임없이 생각하며, 효율과 동작의 완성도를 높이는 역량이 중요합니다. 그리고 게임 개발은 1인 개발이 아닌 이상 기획, 그래픽, 서버, 클라이언트라는 4개의 팀이 유기적으로 연결되어 결과물을 만들어냅니다. 이렇게 여러 파트와 함께 일하는 협업에서 중요한 요소는 커뮤니케이션입니다.
그리고 의외로 컴퓨터의 지식이 부족한 개발자가 있는데, 컴퓨터 하드웨어, 소프트웨어 지식은 학부 시절에 충분히 내공을 쌓아야 한다고 생각합니다. 학부 시절에 배운 알고리즘, 운영체제, 자료구조, 객체지향 프로그래밍과 같은 전공 과목을 충실히 완수하면 기본 소양은 갖추었다고 봅니다.
개발을 하다 보면 언제나 좋은 일만 있을 수는 없습니다. 자신이 구현한 시스템이 화면에 동작하는 모습을 보면 뿌듯하고, 특히 게임을 론칭하면 그동안 고생했던 순간들이 보상을 받는 기분이 들기도 합니다. 그러나 역설적이게도 게임을 론칭한 순간에 힘들기도 합니다. 노력한 만큼의 성과가 나타나지 않기도 하니까요. 스트레스를 관리하는 능력도 필요하겠죠.
질문에 충분한 답이 됐으면 좋겠습니다.
감사합니다! 덕분에 많은 정보를 얻어 개발자에 한 걸음 더 가까이 갈 수 있을 것 같습니다.