우선 저는 5년 정도 기획자 일을 하다가 하던 일에 한계를 느끼고 프로그래머로 전향하기 위해 준비중인 사람입니다.
일단 하던 기획자를 때려쳤다는 시점에서 근성없는 찐따 확정이지만, 타산지석이라는 말이 있듯 성공한 사람의 사례에서 배우려다가 가랑이 브레이킹되는 것보다는 실패한 사람의 이야기를 듣고 '아, 나는 저런 짓을 하면 안 되겠구나.' 하시는 게 더 효율적일 것 같아 글을 남겨봅니다.
첫째. 설계된 것을 구현하는 일은 프로그래머가 합니다.
이 프로그래밍이라는 것은 크게 클라이언트와 서버로 나뉩니다.
클라이언트는 우리가 실제로 키보드로 조작하고 화면에 표시되는 것을들 구현하는 작업이며, 클라이언트 프로그래밍은 분야에 따라 UI, 렌더링, 기타 등등등으로 나뉘지만 일정 규모 이하의 회사에서는 각각의 분담없이 복수의 일을 하게 됩니다.
서버 프로그래머는 눈에 보이지는 않지만 온라인 게임 클라이언트 간의 통신이나 DB와의 상호작용을 하도록 구현합니다.
둘째, 아이템에 속성을 부여하고 퀘스트를 만드는 것은 기획자가 합니다.
기획자는 기획문서를 작성하고 팀원에게 기획내용을 이해시키며, 기획된 내용을 기반으로 컨텐츠가 정확히 완성이 되도록 노력하는 사람입니다.
여기에서의 정확한 컨텐츠의 완성이란, 기획된 내용으로 알고리즘이 프로그래밍되었는지, 기획된 내용을 효과적으로 표현할 수 있도록 그래픽 요소가 만들어졌는지에 대한 확인을 의미합니다.
그러나 기획자가 이러한 요소에 대한 확인을 한다고 해서 기획자가 왕인 게 아닙니다.
일개 기획자는 자신의 뜻대로 기획을 할 수도 없을 뿐더러, 멋대로 기획을 하고 다른 파트의 개발자에게 그것을 '지시'하는 것은 명백한 월권행위입니다.
그러나, 많은 기획자들이 다른 개발자들을 '게임의 재미도 모르는 무지렁이' 취급을 하며 상대적으로 우월감을 느낍니다.
허나 이것은 잘못된 생각이며, 다른 파트의 개발자들은 '할 줄 아는 것도 없는 헛소리꾼'이라고 생각합니다.
서로에 대한 불신을 해소할 수 있는 것은 발로 뛰며 의견을 전달하고, 기획자를 매개체로 프로그래밍, 아트 파트가 유기적으로 통합될 수 있는 환경을 구축하는 것입니다.
즉, 기획자는 게임의 재미를 멋대로 정의할 수 있는 사람이 아니라, 개발팀이 목표로 하는 게임을 만들 수 있도록 각 파트 간의 가교 역할을 하고 개발을 진행함에 있어서 빠진 것은 없는지, 부족한 것은 무엇인지 고민하는 사람입니다.
여담이지만, 신입 개발자의 경우 기획자가 연봉이 제일 낮습니다.
셋째. C언어 공부.
많은 선배기획자들이 기획을 잘 하려면 프로그래밍을 공부하라고 합니다.
하지만 이것은 프로그래머 수준으로 프로그래밍을 할 수 있게 하라는 것이 아닙니다.
적어도 전자계산기(대학에서는 컴퓨터를 이렇게 케케묵은 단어로 지칭합니다.)의 작동 원리와 프로그래밍의 구조,
그리고 기획을 함에 있어서 논리적, 절차적 사고가 가능하도록 하라는 의미입니다.
까놓고 말해, 인간의 언어를 이해할 수 있을 정도의 사고력이 있으면, lua 스크립트와 같은 유사 프로그래밍 언어는 입사 후에도 얼마든지 습득 가능합니다.
다시 말해, 프로그래밍을 배운다는 것은 프로그래머들의 사고를 학습함으로서 기획에서의 논리적 오류(빵꾸라고 합니다.)를 줄이고 컨텐츠의 완성도를 높이기 위한 방편의 하나이지, 필수가 아닙니다.
만약 자신이 논리적인 사고에 자신이 있다면 굳이 프로그래밍을 배우지 않아도 됩니다.
기획자가 어설프게 독학한 프로그래밍은 전문대 졸 신입 프로그래머에게도 못 미치는 수준입니다.
따라서, 프로그래머가 되실 게 아니라면 지금 단계에서의 프로그래밍 공부는 별로 추천드리지 않습니다.
사족 : 정 프로그래밍을 공부하시겠다면 C말고 C++을 보십시오. C는 안 씁니다.
사족2 : 회원 관리는 GM이 합니다. 그러나 GM은 서비스직군으로 분류되며, 실 개발을 담당하는 사람은 아닙니다.
넷째. 게임을 만드는 대략적인 플로우차트
게임, 혹은 게임에 추가될 새로운 컨텐츠를 만드는 흐름은 대략 아래와 같습니다.
1. 업데이트 계획 수립
2. 각 업데이트에 추가할 컨텐츠 물량 설정. 서비스 중인 온라인 게임이라면 이 과정에서 사업부의 의견도 중요한 스펙결정 지표가 됩니다.
3. 디렉터의 지시에 따라 개별 기획자가 세부 컨텐츠 기획서를 작성.
4. 컨텐츠 개발 파트에 개별적으로(혹은 통합적으로.) 기획 스펙 전달.
5. 개발
6. 테스트
7. 라이브 서버 패치
8, 유지 보수
다섯째. 게임 업계의 수익.
이 부분에 대해서는 상당히 민감한 주제가 될 수 있기 때문에 구체적인 언급은 피하겠습니다.
그러나, 확실히 말할 수 있는 것은 현재 시장의 대세는 모바일이라는 것입니다.
대형 개발사, 혹은 퍼블리셔들이 온라인게임이 아니라 모바일 게임으로 이동하고 있는 추세이며 당분간은 이 추세가 지속될 것으로 보입니다.
한국 모바일 게임 시장의 새 역사를 쓴 카카오톡의 드래곤 플라이트는 일 매출 추정 12억(언론 기사 참조. 구글 플레이 스토어 1위 유지 중)이었다고 합니다.
주워들은 이야기로는 구글 플레이 스토어 50등 안에만 들어가도 일 매출이 천 만원 이상은 나온다고도 합니다.
그러나 모든 게임들이 그렇게 많은 돈을 버는 것은 아닙니다.
개발자는 기본적으로 연봉을 받게 되어 있으며, 게임이 대박이 날 경우에는 인센티브를 받게 되는데, 이 인센티브는 대부분 사내 규정에 의해 액수가 정해져 있습니다.
따라서 게임이 대박나지 않는다는 가정 하에, 연봉이 자신의 주 수익이 될 텐데요, 연봉을 결정하는 것은 다음과 같습니다.
1. 최종학력
2. 경력
3. 능력
신입개발자로 들어갈 경우 최종학력이 매우 큰 영향을 끼칩니다. 고졸, 전문대 졸, 4년제 졸에 따라서 최초 받게 되는 연봉의 액수가 몇 백만원 단위로 달라집니다.
연봉의 상승이 현재 자신의 연봉의 x%라는 것을 감안하면, 최초 연봉이 매우 중요하다는 것을 알 수 있습니다.
두 번째로 경력입니다.
아직까지 게임 업계는 학벌보다는 경력을 더 쳐주는 편입니다. 왜냐면 게임 개발 1세대인 사람들은 학력으로 게임업계에 들어왔다기 보다는 자신의 열정만으로 게임을 만들고, 업계를 일으켜 세웠기 때문입니다.
어떤 게임의 어떤 컨텐츠를 개발했는지가 경력에 있어서의 주요 포인트고, 따라서 성공한 게임의 개발에 참여했던 사람일수록 연봉이 높아질 수 있습니다.
세 번째는 능력입니다.
만약 자신이 가지고 있는 능력을 크게 발휘(업무 능력, 근태, 회사에 기여한 바 등)한다면 빠르게 연봉을 상승시킬 수 있습니다.
여섯 째. 자신의 실패를 통한 시사점
저는 대인관계가 그렇게 원만한 편이 못 됩니다.
거기다 활달한 성격도 아니어서 기획자로서 타인과 커뮤니케이션하는 데에 매우 큰 부담을 느꼈습니다.
또한 학력도 고졸이 전부라 최초 시작할 때의 연봉도 매우 낮았으며, 타 직군에 대한 열등감으로 인해 업무 평점 및 근태가 점점 나빠지기 시작했습니다.
결정적으로는 진짜 기획을 할 능력이 안 되어 있다는 판단을 하게 되었고, 이 일로 인해 큰 우울증을 얻어 도망치듯 회사를 빠져 나왔습니다.
저는 이제 막 프로그래머로서의 재탄생을 위해 준비를 하기 시작했습니다.
제대로 된 프로그래머가 될 수 있을지는 미지수이지만, 적어도 실질적인 스킬(PT를 하고 기획서를 잘 쓰는 것도 능력이지만...)을 익히기 위해 프로그래머의 길을 택했습니다.
마지막으로, 막 개발자의 꿈을 키우기 시작하신 분들께 제 실패를 참고삼아 몇 가지 조언을 드리고자 합니다.
1. 공부를 게을리 하지 마십시오.
다소 현실적인 얘기로, 개발자의 최초 연봉에 직결되는 것이 바로 학력입니다.
NC 소프트의 경우에는 직원 공개 채용 시에 관련 학과 4년제 석사가 아니면 지원할 수 없습니다.
따라서 어떻게든 공부를 열심히 하여 자신의 학력을 끌어올리는 것이 과제입니다.
그게 싫으시다면 영어를 엄청 열심히 하셔서 외국으로 나가시는 것도 추천드릴만 합니다만, 대한민국에서 개발을 하시려면 공부를 열심히 하십시오.
그럼 실용적인 의미에서 공부가 어떻게 도움이 되는지 말씀드리겠습니다.
우선 게임이란 컴퓨터를 통해서 제작, 플레이가 가능하고, 이 컴퓨터는 기본적으로 수학적인 연산을 기반으로 구동되는 물건입니다.
또한 세상의 모든 일들은 대부분 수학을 통해 분석되어 있는 상태입니다.
따라서 게임 안에 어떤 세상을 녹여내려면 수학 공부는 필수입니다.
그리고 국어능력. 기획서는 글로 되어 있습니다.
또한 갖가지 최신 기술을 설명하는 기능서들 역시 한글로 되어 있습니다.
적어도 일정 이상의 독해, 작문 능력을 습득하여야 원활한 개발이 가능합니다.
마지막으로는 영어입니다.
해외 개발사에 도전하는 것 이외에도, 몬스터의 이름을 지을 때, 변수명을 설정할 때, 외국에서 발매된 최신 기술서적을 읽을 때에는 반드시 영어가 필요합니다.
사회나 과학도 배워두면 좋으나, 기본적으로 모든 개발자에게 필요한 덕목은 국영수라고 보시면 되겠습니다.
2. 게임을 너무 많이 하지 마십시오.
누구나 가장 좋아하는 게임은 있을 것입니다.
그러나, '내가 왜 그 게임을 재미있어 하는가?' 에 대해 이해하지 못한 상황에서 '내가 좋아하는 게임에 이런 게 있으니 우리 게임에도 이거 넣어보자.'라고 말하는 것보다 부끄러운 일은 없습니다.
적어도 자신이 좋아하는 게임을 분석하고 파악하여, 어떤 요소가 흥미를 이끌어 내는지에 대해서는 숙지하고 있어야 합니다.
(또한 장르가 다른 게임의 컨텐츠를 무턱대고 넣자고 하는 것은 무식을 자랑하는 행위입니다. 물론 팀원 대부분이 그 게임을 좋아한다면 별 문제없이 그 컨텐츠가 들어가겠지요. 물론 그 컨텐츠는 안 만드니만 못한 컨텐츠가 될 것입니다.)
또 다른 의미로, 게임을 너무 많이 하게 되면 지나친 자기 검열을 하게 됩니다.
위 상황과는 반대로, 어떤 컨텐츠를 만들려고 해도 '아 이건 xx 게임에 있던 거잖아. 표절이야 표절!'이라는 생각에 스스로 괴로워하게 됩니다.
해당 게임에 대해 몰랐더라면 더 자유로운 상상이 가능했을 텐데도, 스스로 족쇄를 채우는 꼴이 되는 것입니다.
몇 가지 더 쓸 말이 있었습니다만 여기서 줄이겠습니다.
아마도 그 부분은 개발자 지망생분들이 실제 개발자가 된 다음에 들으셔야만 하는 내용일 겁니다.
읽기 귀찮으신 분들을 위해 요약해 드리겠습니다.
요약
1. 게임의 컨텐츠를 설계하는 것은 기획자다.
2. 설계된 게임을 구현하는 것은 프로그래머다.
3. 프로그래머가 될 게 아니라면, 지금 당장 프로그래밍을 배우는 것은 무의미하다.
4. C언어 말고 C++을 배우자.
5. 대박을 바라지 말고, 자신의 연봉을 높일 방법을 생각해보자
6. 국영수 공부를 열심히 하고, 가급적이면 4년제 대학을 가자.
7. 개발자가 꼭 게임을 많이 해봐야 할 이유는 없다. 많이 한다면 그만큼 많은 분석이 뒤따라야 한다. 다만 이것도 어느 시점에서는 독이 될 수 있다.
이상입니다.
그리고 이것은 마지막 사족이자, 조언이자, 일종의 경고입니다.
프로그래밍은 어렵고, 그림 그릴 재주는 없고, 평소에 시나리오는 많이 생각해두니까 기획자나 해봐야지!
하는 분들은 희망을 버리십시오.
기획자는 시나리오 라이터도 아니고, 아이디어 뱅크도 아닙니다.
개발팀에서 가장 냉정해야 하는 사람이 기획자입니다.