2010년 7월 28일 수요일

게임개발자 북미취업 가이드 3편: 취업을 위한 필수/선택요건 - 면접절차

    안녕하세요.  포프입니다. 이제서야 좀 본격적인 내용으로 들어가게 되서 다행이고 그동안 기다려 주셔서 고맙습니다. ^^ 이번 편을 읽으실 때 아래의 교훈(?)을 반드시 기억하시기 바랍니다. 이것이 이 편의 중심 주제입니다.

    성공하는 유일한 방법은 중요한 소수의 것에 한정된 자원(시간, 돈, 노력 등)을 집중적으로 쏟아붇는 것입니다.

    누구 말을 인용한 것이 아니라 제 스스로의 생각을 담은 것입니다. 북미에 게임개발자로서 취업을 하기위해 갖춰야 할 요건들이 꽤 됩니다. 하지만 그 많은 요건들이 모두 다 동일하게 중요하진 않습니다. 따라서 정말 중요한 것에 집중하는 대신, 모든 요건 전부를 대충 수박 겉핥듯이 갖추려고 하면 절대 성공하지 못합니다. 언제나 중요한 요건을 갖추기 위해 최대한의 노력/시간/돈/인생을 투자하시고 나머지 것은 대충 중간정도만 맞추시길 바랍니다.

    그렇다면 북미에서 취업을 할 수 있을 정도의 훌륭한 개발자가 되려면 어떤 요건들을 갖춰야 할까요? 우선 북미의 면접(interview) 절차에 대해 알아보도록 하죠. 각 면접 단계에서 어떤 요건/자질 등이 중요한지를 알면 전체적으로 어떤 요건들을 준비해야하는지가 보이거든요. ^^

    (일반적인)북미 게임개발자 면접절차
    위에서도 말씀드렸듯이 면접절차를 알면 뭘 준비해야할지가 보입니다. 일반적이라고 써드린 이유는 회사따라 기술면접 및 대인면접의 횟수나 시간이 조금씩 다르기 때문인데 뭐 그래도 아주 큰 차이는 없습니다. 그럼, 더이상 딱히 뭔가 멋지게 소개를 드릴 방법이 없으니 곧바로 본론으로 들어가죠. -_-;;;;

    1. 구인공고를 읽은 뒤 지원
    간단합니다. 일단 구인공고를 찾습니다. 구인공고가 한군데에 전부 나오는 곳은 가마수트라 구인공고란 외에는 딱히 아는 바가 없고 여기에 올라오지 않는 구인공고도 많습니다. 보통은 각 회사의 웹사이트에 직접 가시면 구인공고가 거기에 올라있습니다. (참고로 대규모 공채따윈 없습니다. 실력따라 뽑는 시스템에선 대규모 공채가 존재하기 어렵습니다.) 따라서 각 회사의 웹사이트를 방문하시고 거기서 일자리를 찾아서 지원하시면 됩니다. 북미 게임회사의 목록은 "2편: 북미 게임개발 근무환경/취업시장"에서 이미 소개드렸습니다. 지원은 보통 이메일이나 웹폼으로 합니다.

    이 단계에서 요구되는 자질은 '끈기'와 '노력'밖에 없습니다.

    2. 인사부(HR)의 추리기(Screening) 절차
    대규모 공채가 아니라 특정한 위치 하나에 지원을 하는거라 그만큼 경쟁률도 언제나 높습니다. 따라서 제일 첫번째 절차는 인사부 직원이 지원자들의 이력서를 읽으면서 그 중 면접을 할 사람을 골라내는 것입니다. 참고로 인사부 직원은 게임개발에 대해서는 쥐뿔도 모르는 사람들이므로(-_-) 그 사람들이 봤을때 '오! 이 지원자는 실력이 있어보이는데?'라는 느낌이 들 정도의 이력서를 내야 합니다. (참고로 여기의 이력서는 한국처럼 정형화된 서식이 아닙니다. 자세한건 '4편: 실전 가이드'에서 다룹니다.)

    따라서 이 절차를 통과하려면 옆집 아주머니 같은 분들에게 실력을 뽑낼만한 무언가가 필요합니다. 즉 '실력을 보여줄 방법'이 필요합니다. 경력자시라면 '경력' 및 '출시한 게임목록'이 당연히 도움이 되겠고, 딱히 경력이 없다면 '개인 프로젝트로 만든 게임'도 도움이 됩니다. 또한 '컴퓨터학과를 나왔다는 증명'도 도움이 될 수도 있습니다. (될 수도 있다고 한건 워낙 아시아권의 대학교육이 개판인게 많이 뽀록이 난 판이라... 별로 신뢰를 안두는 회사들이 꽤 생겼습니다.)

    만약에 실력을 증명할 방법이 아무것도 없다면... 여기서 걸려나가실 겁니다. 최소한 개인 프로젝트라도 하셔서 포트폴리오라도 구축하세요. (이에 대한 자세한 사항은 다시한번 '4편: 실전 가이드'에서 다룹니다.)

    3. 인사부 직원과의 전화면접
    인사부직원과의 추리기 절차를 통과하셨다면 가장 큰 골칫거리를 통과하신 겁니다. 사실 인사부 직원들은 게임개발에 대해 아는 게 별로 없으므로 이 사람들 통과하는게 가장 난해합니다.  힘든게 아니라 난해하죠. -_-;;; 본인이 가진 실력을 직접 보여줄 방법이 없으니까요. 어쨌든 추리기 절차를 통과하셨다면 아마 요 밑의 단계들을 거의 전부다 거치는 경우가 더 많을 겁니다. (중간에 엄청 개판치시지 않는한 말이죠..-_-;;;)

    인사부 직원이 이메일을 보내서 언제언제 전화면접을 하자고 약속을 잡고, 그 시간되면 지네들이 전화합니다.(국제전화비 걱정마시길 -_-;;) 시간은 15분에서 30분 정도 걸립겁니다. 인사부 직원들이 전화면접에서 보는건 두가지입니다.

    a) 이력서를 다 진실되게 썼는가? - 이력서에 열거한 내용들을 하나씩 물어보며 그 때 한 일(혹은 공부한 것)에 대해 좀 더 자세히 물어봅니다. 그냥 솔직하게 말씀하시면 됩니다. (여기선 거짓말 했다가 들키면 매장이라고 생각하셔도 됩니다. -_-)

    b) 인성이 어떤가? - 몇가지 질문을 통해 지원자의 인성이 어떤지 대충 알아보려 합니다. 완전히 지 혼자 잘나고 매우 거만한 사람들만 아니면 무사할 겁니다. 이 때 보통 묻는 질문들은 "전에 있던 프로젝트에서 어떤 문제가 있었냐? 그럴 땐 어떻게 해결했냐? 다음엔 어떻게 해결할 거냐?", "본인의 장점이 무엇이라 생각하나?", "본인의 단점이 무엇인라 생각하나?" 등입니다. 역시 별로 크게 문제될 질문 내용은 아닐듯 합니다.

    따라서 이 과정에서 정말 중요한 자질은 '인성'외에는 없습니다. 저는 인성도 실력(skills)중에 하나라고 생각합니다. 게임개발자가 되려면 프로그래머라면 기술적인 실력(technical skills), 기획자라면 창의적인 실력(creative skills), 그리고 아티스트라면 예술적인 실력(artistic skills)이 있어야 하지만 이 외에도 모든 개발자들은 대인관계 실력(people skills)가 필요합니다.  따라서 '인성'도 '실력'으로 보겠습니다.

    4. 개발자들과의 전화면접
    인사부와의 전화면접이 큰 무리 없이 끝났다면 또 다른 날에 전화면접 예약을 잡고, 그 날에 그 회사에 근무하는 개발자 2명 정도가 전화를 줄 것입니다. 이 면접에서도 역시 이력서에 쓴 내용을 중심으로 이전 경력(또는 학교공부)에 대해 짧게 논한 뒤에,  주로 기술적인 내용들을 많이 물어보지만 전화상으로 면접을 보는지라 아주 구체적인 내용을 묻기보다는 전반적인 이해도를 묻습니다. 일반적으로 묻는 질문들은 "추상 함수가 무엇인가?", "행렬의 용도는 무엇인가?", "쿼터니언을 왜 쓰는가?" 등의 질문입니다. 이 면접은 보통 1시간 정도 될 겁니다.

    이 단계에서 중요한 것은 무엇일까요? 당연 '실력'이죠. 다른 것 없습니다.

    5. 개발자들과의 대인면접
    개발자와의 전화면접까지 통과하셨다면 이제 대인면접을 봅니다. 비행기값 100~200만원 별거 아니니까 그냥 내시고 날라오시면 됩니다. -_-;;;;..........는 농담이고 ^^.... 해외에 있는 개발자들을 구인할려고 맘 먹은 회사정도 되면 비행기값/숙박비 정도는 다 제공합니다. 그리고 회사 입장에서도 이 정도 돈을 내고 사람불러다 면접 볼 정도면 이미 채용할 생각을 많이 하고 있단거죠. 따라서 그냥 떨지 마시고 담담하게 면접 보시면 됩니다.

    보통 하루에 개발자들 2명씩 2번이나 3번(총 4명~6명) 면접을 볼 텐데요. 각 면접은 1시간 정도 됩니다(총 2~3시간). 당연히 처음에 다시 이력서에 쓴 내용들에 대해 좀 더 자세히 짧게 물어보고, 곧바로 화이트보드 테스트(칠판 테스트요 -_-)를 합니다. 즉 면접관들이 "이런~ 이런~ 코딩을 해봐라." 라고 하면 화이트보드에 마커로 코딩을 합니다. 따라서 좀 어설픈 프로그래머들은 이거 통과하기 어렵습니다. ^^ 주로 물어보는 주제는 다음과 같죠.

    • C관련
      • 포인터
      • 비트 연산자
    • C++관련
      • virtual 키워드의 의미
      • 다형성(polymorphism)
      • 상속
      • 추상 클래스(abstract class)
      • static 키워드의 의미
      • const 키워드의 의미
      • 포인터와  reference의 차이
      • malloc/free와 new/delete의 차이
    • 일반
      • 2진수 다루기
      • 일반적인 논리력
    • 기타 해당직에 관련된 질문들

    한마디로 C/C++ 프로그래머라면 반드시 기초로 집고 넘어가야한다고 무수히 강조하는 내용들입니다. 기초가 안되면 좀 프로그래머 하시기 어렵습니다. ^^

    아, 참고로 모르시는 질문이 나오더라도 당황하지 마세요. 이 면접관들이 보는 것은 문제를 푸는 과정입니다. 따라서 면접관들에게 힌트를 좀 달라고 해도 되고, 확실하지 않은게 있다면 면접관들에게 물어보면서 문제를 풀면 됩니다. 그리고 문제를 푼 뒤에도 면접관들과 대화를 하면서 좀더 최적화된 방법을 찾거나 하게 됩니다.

    실제 질문 예들은 이 글의 마지막에 실고 보시는 분들 풀어보라고 시키겠습니다 -_-+;

    6. (추천인 체크)와 채용
    대인면접도 무사히 끝났다면 추천인(reference)들 목록을 달라 하기도 할 수도 있고 안할수도 있습니다. 매우 형식적인 절차라고 보셔도 되는데요. 그냥 현재나 과거직장동료, 친한 친구, 선생님 등등을 한 3명정도 보내면 됩니다. 그냥 '이 인간 믿을만한 인간이요?', '당신이 나라면 이 인간 채용하겠소?'라는 정도 질문입니다. 따라서 철천지 원수나, 예전에 칼부림 내고 헤어진 애인 등은 절대 추천인으로 쓰지 마시길 -_-;

    뭐 추천인 체크도 끝났다면(아니면 아예 체크조차 안했다면 곧바로) 채용계약서가 이메일로 날라올겁니다. 연봉 얼마에 언제부터 시작하고 등등, 여기에 적힌 모든 내용은 협상이 가능합니다. 시작날짜는 매우 유동적일거고, 연봉은 그보단 덜하겠지만 협상하면 더 받으실 수도 있습니다. 뭐 협상 안하셔도 한국에서 받는것보단 훨씬 많을 테지만 그래도 시작 연봉에 따라 나중에 연봉인상도 좌우되니 적당히 협상하세요. ^^

    7. 그 외 잡다한 것들
    이제는 오셔서 일하시기 위해 한국정리좀 하시고, 회사에서는 주는 서류 받아다 취업비자 신청하고 기타 등등 입니다. 뭐든간에 궁금한게 있으시면 회사나 미영사관/캐나다 영사관 등에 물어보면 다 하실 수 있을 겁니다. 저는 대학졸업한 뒤에야 먼저 와있던 가족따라 이민온 뒤에 취업한 뒤라 이 부분에 대해서는 잘 모릅니다. 그냥 그렇게 취업비자 받아서 온 한국, 영국, 콜럼비아 분들 몇 분 알 뿐입니다.

    비자 문제는 면접 통과하는 거에 비하면 그다지 어려운 일이 아닙니다.

    취업을 위해 갖춰야할 필수요건 / 선택요건
    위에서 면접절차를 설명드리면서 갖춰야할 이런 저런 자질들을 말씀드렸습니다. 그럼 이 자질들을 중요한 순서대로 나열해보겠습니다. 목록의 위에 있을수록 필수요건이고 아래쪽에 있을수록 선택요건입니다. 처음에도 말씀드렸듯이 중요한 요건(즉 위에 있는 것들)에 집중적으로 자원을 투자하셔야 합니다!!

    1. 실력
    실력이 없으면 운좋게 인사부 면접 통과해도 채용까지 가지 못합니다. 쓸데없이 인사부랑 면접보느라 시간만 낭비하실 겁니다. 따라서 실력이 우선입니다. 며칠전에 실력이 어느정도나 되야 하냐고 물어오신 분이 계셨습니다. 제가 위에서 열거한 대인면접 질문주제들을 빠삭하게 아실 정도면 아무 문제 없습니다. 그리고 아래에 제가 나열할 프로그래밍 질문들을 (어디서 배껴오지 않으시고) 풀 실력정도 되시면 역시 걱정 없습니다. ^^

    위에서도 잠시 말씀드렸듯이 경력이 없으신 분들은 인사부직원을 설득시킬 수 있을 방도를 준비해두시기 바랍니다. 개인 프로젝트를 통한 포트폴리오 구축이 와따입니다.

    이 외에도 대인관계 실력(people skill)이 있습니다. 일반 개발자로서는 중요한건 다른 개발자분들 존중하고 그 분들과 팀을 구축해서 일하기에 모나지 않은 사람입니다.즉 팀플레이어죠. 근데 누구나 개나소나 팀플레이어라고 우깁니다. 진정한 팀플레이어는 남을 존중해야만 가능합니다. 다른 사람들이 하는 일에 마찰을 일으키지 않기 위해서 뒤찜지고 있는 사람은 팀플레이어가 아니고, 다른 사람 하자는대로 아무 말없이 좇아가는 사람도 팀플레이어 아닙니다. '너는 나이가 어리니까', '넌 아는게 없으니까'라면서 무시하고 자기맘대로 하는 인간도 팀플레이어는 아닙니다. 팀플레이어는 건설적은 토론을 통해 게임개발과정을 수월하게 만드는 사람입니다. 언제나 너무 추상적인 개념이라 개나소나 팀플레이어라고 우기긴 하지만요. -_-

    2. 경력
    경력만큼 인사부에게 실력을 증명하기 간편한 수단이 없습니다. 다른 회사에서 근무할 정도면 그만큼 실력이 있을거라고 믿어주는 거죠. (결과적으로 문제는 인사부 직원들이 훌륭한 인재를 알아볼 실력이 없으니 대충 다른 회사의 인사부 직원들을 믿어보자는 속셈이죠 -_- 뭐 그래도 이 사람들을 통과해야 취업도 되니 저희가 굽히는 수밖에 ^^;;) 따라서 경력이 있으시면 훨씬 편할 겁니다. 제가 여러분들에게 권해드리는 방법도 한국에서 최소한 1~2년정도 경력을 쌓으시라는 거죠. 그리고 한국 게임회사에 취직이 안될정도의 실력이시라면 여기서는 더 어려울 거라고 생각합니다.

    또한 경력이 단순히 인사부를 속이기(?)에만 유용한게 아닙니다. 하지만 단지 게임을 오래 만들었다고 존경을 받아야 한다는 말은 아닙니다. (그런 거라면 저 게임계 당장 떠납니다.) 경력을 통해 쌓은 지혜(wisdom)는 정말 귀중합니다. 예를 들어 PS2 개발을 하셨던 분들이라면 PS3에서 하지 말아야 할 일 등 따위를 대략 느낌만으로도 아십니다. 따라서 쓸데없는데 시간 낭비하면서 소중한 개발비 날릴 가능성을 줄인다는거죠. 매우 값진 신내림이죠 -_-. 저만해도 Character Customization만 이미 3번 만들었는데, 실시간으로 DXT 텍스처를 생성하려면 어떤 짓을 하면 안되는지.. 아니면 어떤짓을 해야 하는지 등을 빠삭히 알고있죠. 그것도 PC, 엑박360, PS3등에서요. ^^

    3. 학력
    이거 학벌로 읽지 마시길 바랍니다. 사실 그놈의 학벌주의 때문에 한국대학교육 완전히 파탄났고, 그 때문에 졸업생들 자기들 전공에 전문가가 되기보다는 토익/토플에 전문가가 되는 상황이다보니... 아시아쪽 대학이름을 별로 믿어주지 않는 분위기입니다. -_-;;; 물론 전공에 대해서도 그런 편이고요. 그래도 없는 것보단 있는게 인사부를 통과하기가 조금은 편합니다. 학교이름보다는 전공이 중요합니다. 그리고 경력이 없으시다면 반드시 포트폴리오 준비하세요.

    4. 영어
    영어... 뒤에서 두번째에 나열했습니다. 놀라셨나요? 제가 1편, 2편 쓰고 가장 많이 들은 반응은 '전 영어를 못해서 힘들겠죠?'였습니다. 제발 좀... 깨어납시다. 한국분들 사실 영어 참 잘하십니다. 근데 영어 문법 하나만 틀려도 주변에서 '넌 영어를 왜그리 못하니?' 등등의 태클이 들어옵니다. 따라서 괜히 영어못하면 바보라는 자괴감만 들고 따라서 영어 잘못할까봐 피하게만 되고 무서워하고... 그래서 결국에 모든 일이 안되면 영어탓입니다.

    세상에 게임프로그래밍 하는데 영어쓸일이 얼마나 있습니까? 하루 8시간 일하면서 30분 영어쓰면 많이 쓰는 걸꺼 같은데요? 그 30분 영어하는거 아주 유창하게 못한다고 초천재 프로그래머 채용 안하겠습니까? 영어 몸짓발짓으로 그림그리면서 의사소통만 할 정도면 취직은 됩니다. 취직되면 살면서 자연히 늡니다. 저 고등학교때 수학성적은 올렸어도 영어성적은 올리는데 2년간 실패한 인간입니다. 대학때는 영어수업시간에서 선생이 발표준비하라는거 싫다고 했다가 대판 싸운 뒤 한번도 영어수업 안들어간 놈이구요. 고시준비하면서도 영어가 너무 싫어서 독어 했던 놈입니다. -_-;;; (그 뒤에 영어를 어떻게 했는지는 '5편: 실제 취업사례 - 포프'에서 말씀드리지요.) 영어는 닥치면 합니다.

    좀 더 현실적으로 말씀드리겠습니다. 이왕이면 다홍치마란 말이 있습니다. 만약 2명이 같은 자리에 지원을 했는데 2명의 실력/경력/학력(즉 위에서 1,2,3번)이 똑같으면 당연히 영어실력이 좋은 인간이 취업을 합니다. 이건 인종차별이 아닙니다. 본인이 한 회사의 사장이시더라도 똑같지 않으시겠어요? 따라서 언어의 벽을 넘어서 취업을 하시려면 영어는 몸짓발짓을 섞어가면서라도 의사소통이 될 정도로만 하시고 실력을 다른 지원자보다 높이기 위해 노력하셔야 합니다. 만약 2명이 지원을 했는데 한명은 실력/경력/학력이 훨 출중한데 영어가 딸리고 다른 한명은 실력/경력/학력이 딸리는데 영어가 출중하면 당연 실력/경력/학력이 출중하신 분이 취업합니다. 이건 정말 상식아닌가요?

    '나는 한국인이라 취업이 안돼.', '나는 본토인만큼 영어가 안되서 취업이 안돼.'라고 자위를 하면서 동정심이나 사고자 하시는 분들 많이 봤습니다. (특히 한인 이민자사회에 쌔고 쌨습니다.) 그리고 어쩌다 누가 한 명 백인회사(이렇게 표현하시더라구요?)에 취업하면 무슨 영웅보듯이 합니다. 아니, 베트남, 영국, 일본, 중국, 러시아, 폴란드, 콜럼비아 등  세계 모든 나라 사람들이 여기와서 취직하는데 왜 한국인은 안된다는게 말이나 됩니까? 저런 말들하시는 분들은 말그대로 자기가 못난거 인정할 자신조차 없고, 자기 발전시킬 노력도 하기 싫어하시는 게으르신 분들이니 제발 저런 분들이 하시는 말씀 무시하시기 바랍니다. 부탁드립니다.

    영어에 공포심을 느끼시는 분들이 너무 많고, 그것때문에 발목 잡히시는분들도 많으신거 같아서 별로 중요하지도 않은 영어에 대한 내용만 길어지고 있습니다. 하지만 이 내용을 더 길게 하기 위해(-_-;;;)제가 아는 다른 두 분의 이야기를 들려드리겠습니다.

    a) 캐나다에 놀러왔던 제 대학 후배: 여행을 매우 좋아하는 제 대학후배가 있습니다. 하지만 영어권보다는 이상한 개발도상국들을 많이 놀러다니는 친구입니다. 따라서 어느 한 언어를 딱히 공부하거나 연습할 기회가 없던 친구인데 제가 여기 온지 1년정도 되었을 때 놀러왔었습니다. 그 당시 저 스스로도 영어때문에 매우 주눅이 들어있었을 땐데 이친구... 사실 저를 매우 놀래켰죠. 이 친구 영어 정말 못하더군요. -_- 아주 심각할 정도로.... -_-;;;어디가서 물건 사는 것조차 힘든 친구였습니다. 근데 웃긴건 어딜 가든 길도 잘 물어서 척척 가고. 물건 찾는것도 물어봐서 척척 삽니다. 저보다 100배는 낳았습니다. 어떻게 하냐구요? 한영 전자사전을 들고다니면서 자기가 원하는 단어를 치고 그걸 발음합니다. 상대방이 못알아들으면 아예 보여줍니다. 이 친구 어느나라 가도 그렇게 살아남고 절대 부끄러워하지도 않습니다. "당연히 내 나라 언어가 아닌데 못하는게 당연한게 아냐?", "내가 돈주고 물건사겠다는데 내가 왕이지." (이걸 개발자에게 맞춰 바꾸면..."내가 지네 게임 만들어 주겠다는데 내가 왕이지."입니다.)  이런 자세 갖추시길 바랍니다. 가끔은 얼굴에 철판까셔도 됩니다. ^^

    b) EA에 취직하신 한국에서 오신분: 한국에서 고등학교 졸업하시자마자 경력 6년쯤 쌓으시고 EA 스포츠(캐나다에 있음)에 취직하신 분을 뵌적이 있습니다. 이 분도 영어 잘 못하셨습니다. 머물던 호텔에서도 영어 잘못이해해서 맨날 룸서비스시켜 드셔서 돈도 많이 내시고, 어디가서 뭐하실 때도 영어때문에 좀 시행착오를 거치시는거 많이 봤습니다. (심지어는 호텔에서 나갈 때도 영어를 이해를 못하셔서 여러번 물어보면 시간 꽤 끌었다는...^^) 그래도 몇년 째 일 잘하고 계십니다. 그리고 한동안 못뵈었지만 지금은 영어도 잘하시리라 생각합니다. (동료들 하고 어울리면서 늘어요.) 

    위의 이야기들이 힘이 되길 바래 봅니다. ^^ 영어는 그냥 쓰고 사셔야 늡니다.(한마디로 '영어공부 절대로 하지마라'라는 책에서 정찬용씨가 소개한 공부법이랄까요..) 그전엔 대충 못하셔도 상관없습니다. 영어에 쪽팔려하지 않고 대충이나마 연습하시고 싶으신분들은 저에게 영어로 트윗을 주시거나 답글을 영어로 남기셔도 됩니다. 저도 곧바로 영어로 답글합니다. -_-

    5. 인종
    뭐라 할말이 없습니다. -_-;;; 이걸 거론해야 하는 것 조차 참 어이없습니다. 하도 쓸데없이 '인종이 백인이 아니면 취업이 안된다.'라는 이야길 하면 자신의 허접함을 숨기시려는 분들이 많아서인데요 그런거 없습니다. 설사 있어도 한국의 인종차별에 비하면 아예 없다고 보셔도 됩니다. 무시합시다.


    마지막 몇마디
    이정도면 대충 이해하셨으리라 생각합니다. 실력 > 경력 > 학력 > 언어 > 인종 이라는 것을... 

    운이란 것은 없습니다. "운이 좋다"라는 말은 실력과 노력으로 뭔가를 이룬 멋진 사람들이 겸손한 척을 하기 위해 쓰는 말일 뿐입니다. 운이란 것은 없습니다. 단지 기회가 왔을 때 이미 준비가 되어있었던 사람들이 운을 만난 것처럼 보일 뿐입니다.


    그럼 프로그래머 면접문제 예제들을 드리면서 이 글을 마무리 짓겠습니다.

    프로그래머 면접문제들 예제
    당장 머리속에서 생각나는 면접문제들입니다. 친구분들하고 화이트보드 테스트를 흉내내며 서로 질문을 해봐도 재밌겠네요. ^^ 문제를 푸셔서 댓글로 답을 달아보시는 건 어떨까요? 제 맘대로 평가해드릴 수도 있습니다. ^^

    1. C의 atoi 함수를 구현해 볼 것
    2. C의 strlen 함수를 구현해 볼 것
    3. virtual void foo() = 0; 의 의미는 무엇인가 (클래스 선언 안에서)
    4. virtual 함수란 무엇인가
    5. polymorphism이란 무엇인가
    6. virtual 함수를 이용하는 간단한 클래스들을 구현해 볼 것
    7. bool isPowerOfTwo(unsigned int num) - num이 2의 승수인지를 판단하는 함수를 구현할 것
    8. void ReveseWordByWord(char* str) - str로 전달된 문장의 단어순서를 뒤집는 함수를 구현할 것. 예: "Dog is Cute"가 입력값이면 "Cute is Dog"이 반환값이어야 함
    9. void swap(unsigned char a, unsigned char b) - a와 b가 8bit 숫자일때 a와 b의 값을 바꾸는 함수를 구현할것. 단 새로운 변수를 사용하면 안됨.
    10. void foo() const; 에서 const의 의미는 무엇인가 (클래스 선언안에서)



    p.s.
    • 글 즐겁게 보셨고 다른 사람들에게도 도움이 되겠다 싶으시면 View On(Daum)이나 좀 눌러주세요. ^^
    • 3주동안 한번도 안거르고 썼어요.. 칭찬해주세요 ^_^
    • 질문은 답글로 남겨주세요.
    • 면접문제 다른거 생각나면 본글 에디트 한뒤 답글에 달겠습니다

    - 캐나다 버나비에서 Pope 올림.

    2010년 7월 24일 토요일

    이것 저것: 컴퓨터 게임 그래픽의 미래


    CryEngine 3Image via Wikipedia

    지난 몇주간 보고 들은 게임에 관련된 흥미로운 뉴스들:



    Enhanced by Zemanta

    2010년 7월 23일 금요일

    포토샵 블렌딩 수학공식

    게임업계에서 일하는 그래픽 프로그래머라면 아티스트들이 가끔 이런 요청을 해올 것입니다.

    "포토샵에서 오버레이 블렌딩 옵션이 있는데 이거 게임에서 쓸 수 있어요?"

    이럴 때 "꺼져 -_-!" 라고 한마디 하는 것보다... "네 그러지요 ^^" 라고 하면 아티스트들에게 좀더 사랑을 받을 수 있겠죠? 저도 최근에 포토샵 블렌딩 옵션중에 Overlay하고 Screen을 쉐이더에서 지원할 일이 있었답니다. 그 때 도움이 된 웹사이트 링크들을 아래 나열했습니다. (코드만 보셔도 됩니다 ^^)


    2010년 7월 22일 목요일

    게임개발자 북미취업 가이드 2편: 북미 게임개발 근무환경/취업시장


    드디어 전자책이 나왔습니다. 전자책 구매 방법은 연두미디어의 홈피를 참조해주세요.




    게임개발자 북미취업 가이드 시리즈 목차
    안녕하세요.  포프입니다. 지난 주에 이어 이번 주에는 북미 게임개발자들의 근무환경과 취업시장에 대해 짤막하게 논해보겠습니다. 가능하면 한국과의 차이점을 설명드리고 싶은데 제가 한국에서 제대로 게임개발을 한 게 벌써 15년 전이라 과연 얼마나 제대로 할 수 있을지 모르겠습니다. 제가 아는 한국시장에 대한 지식은 15년전의 것이거나 최근에 아는 지인들을 통해 들은 것이 전부니 제가 잘못알고 있는 것이 있으면 지적 부탁드립니다.

    북미 게임개발 근무환경
    사실 어느 나라의 근무환경은 그 나라 국민이 공유하는 문화의 영향을 가장 많이 받습니다. 이쪽의 근무환경이 한국의 근무환경과 다른 것도 바로 그런 문화차이 때문일 것입니다. 사실 미국/캐나다라는 나라와 문화를 막연히 동경하시는 분들도 꽤 계신거 같은데(사대주의?) 그런 잘못된 동경때문에 인생 그르치는 일 없으시길 바랍니다. (많이 봤습니다 -_-) 그 나라의 문화가 몸에 맞아야 그 나라에서 일하고 사는 것이 즐거운 법입니다. 저는 이쪽 문화가 저에게 더 잘 맞아서 여기서 일하는게 즐겁습니다. 부디 저와 비슷한 분들이 이쪽으로 많이 오셨으면 좋겠습니다.

    다음은 제가 생각하는 북미문화와 한국문화의 차이점입니다. 부디 본인에게 맞는지부터 먼저 확인해보시길 바랍니다.

    • 합리주의: "~라면 당연히 그래야 한다."라는 억지는 잘 통하지 않습니다. 합리적이고 논리적인 타당한 이유가 없으면 다른 사람들을 설득하기가 어렵습니다.
    • 실용주의: 실제 쓸모가 있는 일에 많은 중점을 둡니다. 따라서 기술자들의 대우가 상당히 좋습니다. (왠만한 사무직 보다 낫죠.)
    • 개인주의: 개인의 사생활 보장을 매우 중요하게 받아들이는 문화입니다. 따라서 강제적인 집단문화가 없고, 소수일지라도 각 개인의 의견을 존중해 줍니다. 따라서 일과 삶의질 사이의 균형도 매우 중요시합니다.
    • 가족중심: 가족중심 문화는 사실 개인주의라는 특징에서 유래합니다. 한국에서는 남편이 직장에 다니고 부인이 집에서 살림하면 남편은 가족은 등한시하고 회사일만 하며 가족은 부인이 다 챙기는 경우가 여전히 비일비재하더군요. 여기서는 별로 안그렇고, 회사자체에서도 근무시간 외의 이벤트에는 가족(또는 애인)동반을 장려하는 경우가 대부분입니다.

    그럼 위와 같은 문화적 차이점들이 구체적인 근무환경에 어떤 영향을 미치는지 살펴보겠습니다.

    급여/사회적 지위
    한국의 게임프로그래머들 얼마 받으시죠? 초봉 꽤 적은걸로 알고 있습니다. 왠만한 사무직보다 적지요? 사실 한국에선 기술자들이 왠만한 사무직보다 봉급이 다 적지 않나요?  제 기억엔 은행에 취업하는게 게임프로그래머 하는 것보다 돈 더 잘받는 걸로 알고 있습니다. 그래서인지 왠지 공돌이 무시하는 분위기도 사회에 만연하죠. ('기술자 박대'라는 표현도 몇 번 들었습니다.)

    근데 전 이게 언제나 이해가 안되었습니다. 사실 한국의 성장을 주도한 것은 사무직이 아니라 기술자들 아니었나요? (기술자 노동착취가 삼성의 비약적인 성장의 원동력이었다란 이야기도 들었죠.) 전 언제나 기술자들이 더 사회적으로 인정받고 급여도 더 높이 받아야 한다고 생각해왔습니다. 이런 말 하면 "니가 공돌이니까 그래."라고 하시는 분들이 있을 법도 한데 저 사실 한국에서 법대 나왔습니다. ^^ 법대졸업생으로 한국에서 사무직으로 취업하면 왠만한 기술자들 보다 더 인정받는 다는거 알고 있을 때에도 여전히 기술자들이 더 받아야 한다고 생각했었습니다.

    그럼 북미쪽은 어떨까요? 일단 급여부터 말씀드리면 당연 왠만한 사무직보다 많이 받습니다. 보다 객관적인 자료를 드리자면 가마수트라하고 Game Developer Magazine으로 유명한 CMP Media에서 매년 행하는 연봉조사(survey)가 있습니다. 다행히도 며칠 전에 그 결과를 무료로  공개했더라구요. 이 자료를 보면 아시겠지만 전체 프로그래머의 평균봉급은 대략 미달라 80,000불 정도 됩니다. (자세한 자료는 위 링크의 차트를 보세요.) 이건 연봉이고 여기다 보너스는 별도로 평균 15,000불 정도 받아갑니다. 게임 아티스트나 기획자들은 대략 연봉으로 70,000불정도 받아가신다고 보면 됩니다. 연봉이란게 사실 그 도시의 물가하고도 많이 관련이 있습니다. 물가가 높은 도시에 사시면 연봉도 더 받고 물가가 낮은 도시에 사시면 연봉도 덜 받습니다. (예전엔 밴쿠버 물가가 확실히 서울물가보다 높은 거 같았는데 이젠 그것도 아닌 것 같습니다.)

    제 연봉만 해도 -- 회사와 체결한 고용계약서 때문에 정확한 수치는 말씀드릴 수 없지만 -- 환율 좋으면 한화로 1억 좀 넘고 나쁘면 1억 안됩니다. 물론 제가 현재 수요에 비해 공급이 좀 딸리는 그래픽 프로그래머라 봉급이 남들보다 조금 높을 수도 있지만 저보다 더 많이 받으시는 분들 허다합니다.

    그렇다면 사회적인 지위는 어떨까요? 절대 무시받지 않습니다. -_-;;; 물론 변호사나 의사들을 더 인정해주는 분위기지만 공돌이를 일반사무직보다는 더 인정해주네요. ^^  하긴 자본주의 사회니까 '사회에서 인정받는 직업 = 높은 연봉' 이라는 공식으로 대충 보셔도 될 듯 합니다.

    근무시간
    하루 8시간씩 주 5일 근무, 즉 1주에 40시간 근무가 기본입니다. 물론 게임출시일을 맞추려 하다 보면 프로젝트 말기나 중요한 마일스톤 전에 초과근무를 하는 경우가 있습니다. 하지만 본인이 원하지 않으면 그렇게 강제로 시키지도 않습니다. 저만해도 주 40시간 넘어서 초과근무한 건 지난 4년동안 1~2달도 안됩니다.

    설사 초과근무를 하더라도 프로젝트가 끝나면 초과근무시간 보상해준다는 명목으로 휴가도 좀 줍니다. 제가 저번에 프로젝트 끝냈을 때는 2주 받았네요. (거의 초과근무도 안했는데 줬어요 -_-) 물론 예외는 있습니다. 일례로 바이오웨어의 Mass Effect 게임은 2~3년간의 끝내주는 초과근무로 악명이 높았습니다. 문제는 이 프로젝트 끝나자마자 꽤 많은 수의 개발자들이 회사를 떠났다는 건데요. 실력있는 개발자를 구하기가 쉽지 않다는 것을 회사에서도 아는지라 가능하면 이런 짓(?)을 안하려는 분위기입니다.

    근무시간 외 회사이벤트는 선택사항
    이쪽 문화가 각 개인의 의견 및 결정을 존중해주는 문화이다 보니 집단주의는 좀 찾아보기 힘듭니다. 강제적인 회식 같은 것도 없고, 반드시 참여해야 하는 회사 워크샵이냐 팀빌딩 이벤트 같은 것도 찾아보기 힘듭니다. 따라서 우르르~ 문화 좋아하시는 분들은 좀 외로우실 거고, 스스로 결정 내리기 싫어하고 윗 사람들이 억지로 끌어주는 거 은근 즐기시는 분들도 좀 안맞으실 겁니다. -_- 이런 부분이 인간미가 떨어진다고 하시는 분들도 계실텐데 개인주의 성향이 강한 저에겐 매우 잘 맞습니다.

    그렇다고 팀빌딩 이벤트 따위가 없는건 아닙니다. 팀 빌딩 이벤트는 언제나 직원들의 의견을 물어서 결정하고, 다수결로 어떤 이벤트를 하기로 결정을 해도 참여하기 싫은 사람은 참여 안해도 됩니다. 물론 이것이 근무시간 도중에 일어나는 이벤트면 그 이벤트에 참여안하는 대신 회사에 남아서 일반 근무를 해야합니다. 근무시간 외에 일어나는 이벤트면 그냥 집에 가도 됩니다. -_-;

    이 외에도 회사주최로 하는 바베큐 파티라던가 야유회등도 가끔 있는데 이런 경우에는 보통 가족 및 애인 동반으로 합니다. (그렇지 않으면 사람들이 그냥 참여 안하고 집에 가거든요. -_-;;; 그런 면에서 매우 가정적인 사회이기도 합니다.)

    휴가는 자기 원할 때 쓴다.
    근로기준법상 모든 직원들은 최소 1년에 2주의 개인휴가를 받습니다. (캐나다는 2주인게 확실한데 미국은 확실히 모르겠습니다. 미국도 2주라고 들은 게 전부입니다.) 법적으로 보장되는 것은 2주인데 실제 대부분의 회사가 2 ~ 4주의 휴가를 줍니다. 이 휴가는 자기가 원할 때 아무 때나 쓸 수 있습니다. 예를 들면 매주 금요일마다 휴가를 써서 집에서 편히 금, 토, 일을 쉬는 법도 있고, 아예 통째로 3주를 한 번에 몰아써서 길게 여행을 다녀와도 됩니다. 아마 이것도 개인의 결정을 존중하는 문화적 배경 때문에 나온게 아닐까 싶습니다.

    물론 이 개인휴가는 법정 공휴일하고 아무 상관이 없습니다. 법정 공휴일 다 놀대로 놀고 그 외에 2 ~ 4주 또 노는 겁니다. 법정 공휴일 이야기가 나왔으니 말인데 이곳의 법정공휴일도  거의 언제나 금요일이거나 월요일입니다. '4월 5일은 식목일'이라는 식의 공휴일이 아니라 '5월의 4째주 월요일은 빅토리아 데이'라는 식으로 공휴일이 정해져있기 때문입니다. 따라서 좀 어중간하게 수요일쯤에 껴서 있으니 만도 못한 공휴일이 적습니다. 전 이것도 매우 합리적이라고 생각합니다. (아님 그냥 놀길 좋아하는 거던가.. -_-)

    이 외에도 또 다른 공짜 공휴일이 있습니다. 대다수의 게임회사들이 12월 25일부터 1월 1일까지 스튜디오 문을 닫습니다. (게임개발자들은 단지 놀기 좋아하는 인간들이라 그렇다고 생각합니다.... 가 아니라 보통 크리스마스 시즌을 목표로 게임을 출시하므로 그 뒤에는 좀 놀아도 됩니다 -_-.)

    실력위주: 나이나 학벌은 별 상관이 없다.
    이곳은 실력위주입니다. 실력 있는 놈들이 빨리 승진하고 봉급도 팍팍 올려받습니다. 회사에 단지 오래있는다고 해서 상사가 되는 곳은 절대 아닙니다. 학벌도 크게 상관없습니다. (하지만 학력은 경력이 없을 때 실력을 증명하는 척도가 될 수 있으므로 상관이 있을 수 있습니다. 자세한건 "3편: 취업을 위한 필수/선택요건 - 면접절차"에서 논하겠습니다.) 나이도 크게 상관이 없습니다. 처음 사람 만나자 마자 "나이가 몇살이세요?" "학교 어디 나왔어요?"이런 질문 묻지도 않습니다. (물론 가끔 한국 분들이 물으시긴 합니다만 전 가볍게 무시합니다. '내가 형이네 아우네....', '내가 선배네 후배네....', '어쩌네 저쩌네....', '얼씨구나 지화자 좋네.. -_- ' 딱 질색입니다 -_-;;;) 

    물론 줄 잘서서 취업되는 경우도 드뭅니다. 그런 경우를 한 두번 보긴 봤는데 결국 얼마 못가서 지가가 못버텨서 나가거나 짤리더군요 -_-; 대충 묻어가는 건 없다고 보셔도 됩니다.

    따라서 승진도 하고 연봉 인상도 받으려면 계속 실력을 쌓으셔야 합니다. (일하다 보면 자연스럽게 쌓이긴 하죠.) 하지만 현재 하는 일에 100% 만족하시고 더 이상 성장하고픈 욕망이 없으신 분들은 그냥 현재 실력 유지하면서 같은 직급에서 같은 봉급 받으시면서 평생을 유유자적 하셔도 됩니다. 여기서는 "실력 = 연봉"입니다.

    업무영역의 전문화가 잘 되어있다.
    한국에서는 서버 프로그래머/클라이언트 프로그래머로 구분을 많이 짓는 것 같습니다. (MMO및 웹 게임이 주류라 그럴지도 모르겠군요). 여기서는 그보다는 좀 더 자세히 구분을 짓습니다. 위키피디아만 보셔도 매우 자세히 나누는데 일반적으로는 다음과 같이 구분짓는 것 같습니다.

    • 네트워크 프로그래머
    • 그래픽스 프로그래머
    • 게임플레이 프로그래머
    • 프론트엔드(UI) 프로그래머
    • 오디오 프로그래머
    • 도구(tools) 프로그래머
    • 만능(generalist) 프로그래머: 특정 분야에 전문화 되지 않고 이것저것 두루두루 적당히 할 수 있는 프로그래머입니다.

    참고로 아티스트들은 다음과 같이 구분짓습니다.

    • 컨셉 아티스트
    • 3D 캐릭터 모델러
    • 3D 환경(environmental) 모델러
    • 애니메이터
    • UI 아티스트
    게임 기획자들의 전문화는 특별히 정해진 바가 없고 각 게임따라 바뀌는 것 같습니다.
    • 전투 시스템 기획자
    • 싱글 플레이 캠패인 기획자
    • 멀티 플레이어 기획자
    • 등등..

    굳이 팀장이 안되도 상관없다.
    한국에서는 실력/경력이 쌓이면 팀장이 되서 팀을 이끄는 것을 당연하게 여기는 것 같습니다. 그래야만 승진도 되고 봉급도 인상받는 거 같구요. 여기서는 굳이 팀장을 할 필요는 없습니다. 이것도 역시 보통 개인의 성향따라 달라지는데요 리더쉽있고 사람을 다루는 능력이 있는 사람들은 팀장을 할 수 있지만, 좀 은둔자 성격이 강하고 사람하고 말하는 거 그닥 즐기지 않지만 엄청난 코딩스킬을 가진 사람이라면 그냥 Senior 프로그래머가 되서 코딩만 계속 열심히 하며 사는 길도 있습니다. 어느 길을 가던 승진이라던가 봉급의 차이는 크지 않습니다. 당연히 팀장이 아닌 사람보다는 팀장이 직급도 높아지고 돈도 많이 받을테지만 팀장이 Senior 프로그래머보다 직급이 높다곤 할 수 없고, 돈을 반드시 더 많이 받지도 않습니다.

    사실 제가 여태까지 직급타령을 해서 '아~ 북미에도 엄격한 위계질서가 존재하는구나~" 라고 생각하실 분들이 계실거 같은데 그렇지도 않습니다. 여긴 상하 위계질서가 상당히 없는 편입니다. 보통 프로그래머들 직급 나눌 때, 일반 개발자 직급은 보통 Junior / Intermediate / Senior 셋으로 나누는게 보통이고 개발자가 아닌 관리직으로 가면 그 위에 뭐 Technical Director 정도가 있습니다. 그리고 이 몇 안되는 직급에서조차도 역시 위계질서는 찾기 힘듭니다. 쥬니어던 시니어던 그냥 친구처럼 잘 어울려 지냅니다. 아마 이건 사실 존댓말/반말 구분이 없는 영어라는 언어때문인지도 모르겠습니다. 나이에 따라 직급에 따라 쓰는 언어가 다르지 않다보니 그냥 다들 평등하게 보는 것 같습니다.

    대형회사는 콘솔게임이 대세다.
    한국의 게임 대기업들은 주로 MMO를 만들거나 웹게임을 만드는 것 같습니다. 불법복제 때문이기도 하겠고 게이머들의 대부분이 MMO나 웹게임을 하기 때문인 것 같습니다.. 여기는 불법복제문제가 한국보다는 좀 괜찮습니다. 게이머들의 취향도 좀 다르고요.  월드 오브 오크래프트 외에는 MMO를 플레이하는 사람들이 그리 많지 않고, 대부분의 게이머들의 콘솔이나 PC등의 패키지 게임들을 즐깁니다. 그래서인지 콘솔용 AAA 타이틀을 개발할 자금이 있는 대기업들은 여전히 패키지 게임을 많이 만듭니다.

    이 외에도 엑스박스 라이브 게임이나, 아이폰 게임, 페이스북 용 플래쉬 게임 등을 만드는 회사들도 있는데 이들은 주로 중소기업입니다. 참고로 아이폰 게임과 페이스븍용 플래쉬 게임은 최근들어 급성장하고 있는 분야입니다.

    사실 한국에서 곧바로 북미로 취업을 하시려면 규모가 큰 게임을 만드는 회사를 노리셔야 할겁니다. 그 이유는 중소기업 보다는 대기업들이 언제나 실력있는 인재에 목말라서 취업비자 받는 것을 보조해주면서 까지도 해외인재를 영입하는 경우가 많기 때문입니다. 물론 이미 취업비자가 있거나 이민을 하셔서 영주권을 먼저 따신다면 아무 회사나 가셔도 되겠죠. ^^ (따라서 영주권이나 시민권 있는데도 취업 못하시는 분들은 100% 실력이 없으셔서 입니다. 죄송 -_-)

    북미 게임개발 취업시장
    자, 이제 이쪽의 취업시장에 대해 알아보겠습니다. 과연 게임개발자가 미래가 있는 직종인지 그리고 어느 도시에 게임회사들이 많은지가 제일 중요하겠죠?

    게임회사의 운명은 안정적이지 않지만 게임개발자의 미래는 밝다.
    게임업계는 사실 프로젝트의 성공/실패가 회사의 존패를 좌우하는 곳입니다. 수십억에서 수백억 들어가는 AAA급 콘솔 타이틀들 망하면 당연히 타격이 크겠죠? 따라서 그런 게임들 망하면 회사문닫고 직원들 전부 내보내는 경우 허다합니다. Need for Speed로 유명했던 EA 블랙박스도 최근에 그렇게 문닫고, 직원의 대다수 짤랐습니다.

    하지만 전 이런 문제에 크게 신경쓰지 않습니다. 전세계적인 게임시장을 보면 여전히 성장 중이고(심지어는 이젠 30/40/50대 여성분들까지 플래시 게임들을 상당히 즐기시더군요) 앞으로도 계속 성장할 것이므로 게임개발자들 -- 특히 실력이 있는 -- 에 대한 수요는 여전히 높습니다. 일례로 몇 년 전에 Activison Blizzard에 인수된 Radical Entertainment라는 밴쿠버 회사가 구조조정 명목으로 직원의 절반 이상을 짤랐을 때, 다른 밴쿠버 기업들이 취업박람회를 열어서 실력있는 직원들을 재빨리 영입했습니다.

    저희 회사도 그렇고 다른 회사만 봐도 언제나 실력있는 개발자들을 구하는 구직공고가 계속 올라옵니다. 제가 느끼는 북미쪽의 게임개발자 취업시장은 아직도 매우 밝습니다. 물론 주변에서 "경기가 안좋아서 취직이 안된다."라고 불평을 하시는 분들 몇 분 봤습니다. 하지만 솔직히 죄송한 말씀이지만 그 분들 취업안되는 이유는 실력이 없어서더군요. -_-  (실력이 없어서 취직이 안된다는 걸 빨리 인정하셔야 실력을 높일 궁리라도 할 텐데 말이지요.)

    물론 그럴 일은 없겠지만 게임업계 자체가 완전히 붕괴되서 일할 곳이 없어지면 어떻할까요? 그럼 다른 업계로 가면 됩니다. 게임개발자라는 직업이 사실 매우 기술적/정신적으로 많은 것을 요구하는 직업이라 다른 업계에 가서도 잘 적응하고 잘 삽니다. 프로그래머라면 다른 프로그래밍 회사에 쉽게 취직이 될테고, 저처럼 그래픽 프로그래머거나 아티스트들은 영화쪽 스페셜 이펙트 및 애니메이션으로 경로를 돌리셔도 됩니다. (헐리우드가 미국에 있는 건 다 아시죠? 캐나다도 헐리우드에서 외주를 많이 받습니다.)

    게임회사는 기후 좋은 곳에 많이 몰려있다.
    게임개발자들 중에 워낙 좀 하고픈대로 하고 사는 자유인들이 많다보니 기후좋고 살기 좋은 동네에 게임 스튜디오들이 많이 모여있습니다. 그래서 캐나다 및 미국의 서부해안을 따라 게임회사들이 좀 많습니다. 제가 있는 밴쿠버만 해도 EA 스포츠, 락스타 밴쿠버, Relic, Ubisoft 밴쿠버 등의 게임회사들이 모여있고, 게임회사 수로만 따지면 전세계 1위인 도시입니다. 역시 서쪽 해안에 위치한 미국의 캘리포니아 주에도 블리자드, 에픽, 루카스 아츠 등의 상당히 많은 회사가 모여 있습니다.

    하지만 기후가 별로인 몬트리올, 텍사스(사막지대! 아악~) 같은 곳에도 게임회사들이 몰려있는데 이것은 그 주정부의 세금혜택이 좋아서입니다. 각 도시에 있는 회사들을 대충(그다지 자세하진 않더군요) 살펴보시려면 http://www.gamedevmap.com/을 이용하세요. 가장 자세한 밴쿠버 게임회사 목록은 제가 AI 대학에서 강의하면서 만들었던 웹페이지에 있다고 합디다.. -_-

    이 정도면 대충 이쪽의 근무환경이나 취업시장에 대해 설명드린 듯 합니다. 저번 편과 이번 편은 사실 그냥 서론에 불과합니다. 다음 편부터는 좀 더 구체적인 내용을 살펴볼 것입니다. 다시 한 번 우려의 말씀을 드리자면 본인이 가장 행복한 곳에서 가장 즐거운 일 하시고 사시길 바랍니다. 본인에게 안 맞는데 이쪽으로 오셨다가 결국 적응 못하시고 돌아가시는 분들 많이 봤습니다. 그리고 애들 조기교육시키려고 이 쪽 오셨다가 오히려 애들 교육망치는 분들 수도 없이 봤습니다. (거의 대부분인듯.... -_-). 제발 그런 일 없었으면 합니다.


    "They must find it difficult ... those who have taken authority as the truth, rather than truth as the authority." -- Gerald Massey


    p.s.

    • 글 즐겁게 보셨고 다른 사람들에게도 도움이 되겠다 싶으시면 View On(Daum)이나 좀 눌러주세요. ^^
    • 언제라도 질문은 답글로 남겨주세요. "8편: 질문/답변"에 답변을 정리해 올리려고 합니다.

    - 캐나다 버나비에서 Pope 올림.



    2010년 7월 14일 수요일

    게임개발자 북미취업 가이드 1편: 소개 및 저술방침


    드디어 전자책이 나왔습니다. 전자책 구매 방법은 연두미디어의 홈피를 참조해주세요.




    게임개발자 북미취업 가이드 시리즈 목차



    안녕하세요. 현재 캐나다 Relic Entertainment에서 그래픽스 프로그래머로 재직중인 포프입니다. 얼마전에 제 트위터 계정을 통해 북미취업에 관심이 있으신 게임개발자들이 얼마나 계신지 여쭤봤었는데 꽤 많은 분들이 답글을 남기셨더라구요. 여기에 힘을 얻어서 그동안 써볼까 말까 고민만 하던 '게임개발자 북미취업 가이드' 시리즈를 통해 제가 그동안 축적한 지식을 공유하겠습니다.

    짤막한 포프소개
    일단 '도대체 포프가 어떤 놈이길래 북미취업 운운이야?'라고 하시는 분이 계실거 같아 아주 짤막하게 제 소개를 하겠습니다. (저에 대한 보다 자세한 소개는 '5편: 실제 취업사례 - 포프'에서 더 자세히 다루겠습니다.)
    • 2008년 ~ 현재: 캐나다 Relic Entertainment에서 렌더링/그래픽스 프로그래머로 재직중. Xbox 360, PS3용으로 Warhammer 40,000 : Space Marine 제작 중. (링크 클릭하시면 E3비디오 보실 수 있습니다. 위 메인 메뉴에서 제 소개를 누르셔도 보실 수 있습니다.)
    • 2006년 ~ 2008년: Blue Castle Games에서 역시 렌더링 프로그래머로 재직하며 Xbox 360, PS3, PC, PS2, PSP, Wii 용으로 MLB 게임을 10개 정도 출시. (The Bigs, Major League Baseball MLB 2K8 등)
    • 2007년 ~ 2010년: 캐나다 소재 The Art Institute of Vancouver 대학에서 HLSL 쉐이더 언어를 가르침. 학생들이 최고의 선생으로 인정.
    • 2003년 ~ 2005년: 캐나다 소재 British Columbia Institute of Technology 대학에서 컴퓨터 학과 - Digital Processing을 전공하고 수석 졸업.
    • 1996년 ~ 2001년: 연세대 법학과를 다니고, 고시준비하다가 매우 형편없는 학점(2점대)으로 졸업. -_-;;;
    • 1993년 ~ 1996년: 한국에서 게임개발을 했으나 별다른 빛을 보지 못함 -_-;;;
    위에서 보실 수 있듯이 전:
    1. 제 실력하나로 북미에서 취직한 사람입니다.  아는 분 통하지도 않았고, 학교 선배를 통하지도 않았고, 한국회사의 북미지점에 취업하지도 않았습니다.
    2. 이미 몇  년 동안이나 북미에서 게임프로그래머로 일해 왔고 현재도 일류 개발사에서 그래픽스 프로그래밍을 하고 있습니다. 따라서 북미쪽의 개발환경에 친숙합니다. 참고로 북미는 캐나다와 미국을 포함하는데 미국과 캐나다의 게임시장은 거의 하나라고 보셔도 됩니다. (이에 대한 자세한 내용은 '2편: 북미 게임개발 근무환경/취업시장'에서 다루겠습니다.)  실제 저도 한달에 한두번씩 미국에 있는 게임개발사들의 러브콜을 받곤 합니다.
    3. 대학에서 강의를 3년동안 했습니다. 따라서 제 스스로의 경험 뿐만이 아니라 제가 가르친 학생들을 통해서도 게임회사에 취업하는 방법을 잘 알고 있습니다.
    이 정도면 대충 제가 이 시리즈를 쓰기에 부족하지 않다는 것을 보여드린 듯 하니 이제 제가 '게임개발자 북미취업 가이드' 시리즈를 써나갈 방향에 대해 귀뜸해드리겠습니다. 꼭 시간을 내어서 찬찬히 읽어보시면서 자신에게 도움이 될 글인지를 생각해보시길 바랍니다. (가능하면 많은 분들에게 도움이 되었으면 좋겠습니다.)

    게임개발자 북미취업 가이드의 저술방침

    1. 직접체험 위주: 제가 낯설기만 한 나라에 와서 가장 힘들었던 것은 정보의 부족이 아니었습니다. 제대로 알지도 못하면서 어디서 잘못 주워들은 허위정보를 사실인양 전해주면서 의시대는 한국분들이 저에게 가장 큰 고난이었습니다. 시행착오, 돈낭비... 무엇보다 시간낭비 장난 아니었죠. 이런 분들에게 몇 번 데인 뒤에는 스스로 보고 들은 정보가 아니면 믿지 않게 되었습니다. 다른 분들이 저처럼 시행착오를 겪지 않기를 바라는 마음에서 이 시리즈에서 다룰 내용도 제가 직접 경험한 일들을 중심으로 하겠습니다. 나중에 '7편: 실제 취업사례'에서 다른 분들의 경험담도 조금 실을 생각인데 이럴 때에는 제 직접 경험이 아님을 분명히 밝히고 사실만을 정확히 전달하도록 노력하겠습니다.
    2. 스스로도 척척 잘해요~ -_-: 저는 모든 일을 스스로 처리하는 것을 좋아합니다. 그리고 여기서 직장잡고 일하는 것도 한번도 다른 회사나 개인에게 돈주고 맡긴 적 없습니다. 따라서 제가 쓰는 모든 내용도 스스로 척척교의 교리를 실천하는 것을 목적으로 합니다. 여기서 주의사항 하나... 자기 통제력 없으신 분들, 항상 세상탓만 하다가 결국 기회가 와도 아무짓도 안하시는(못하시는게 아닙니다) 분들은 제 글 별로 도움 안될 겁니다. 그냥 보지 마세요.
    3. 실력 위주: 순수 실력으로 취업하는 방법을 다룰 겁니다. 줄 잘서서 어떻게 해보시려는 분들에게 해당사항 없습니다. 물론 아는 사람 통해 어떻게 취업하는 사람들도 소수 봤지만 능력위주인 이 쪽 문화에서 오래 버티기 어렵더군요.
    4. 최소비용 최대효과: 돈 이야기가 아닙니다. 시간 이야기입니다. 각 개인에게 주어진 시간은 매우 적고, 게임회사가 원하는 훌륭한 인재가 되기에는 상당히 많은 노력과 시간이 필요합니다. 따라서 정말 중요한 것에 시간과 노력을 투자하고, 별로 중요하지 않은 것은 아예 무시하거나 대충 중간만 가도 됩니다. 이거 안되시는 분들... 언제나 수만가지 일을 벌이고 하나 제대로 못끝내시는 분들.. 역시 제 글 도움 안됩니다. 웹브라우저 닫으세요 -_-
    5. 프로그래머 위주: 전 프로그래머입니다. 따라서 제가 제일 제대로 알고 제대로 말씀드릴 수 있는 것도 프로그래머로서 취업하는 겁니다. 물론 제가 다루는 내용 중에 꽤 많은 부분이 아티스트나, 기획자에게도 해당이 될 것입니다. 하지만 제 글은 프로그래머 분들에게 가장 큰 도움이 될 거라고 생각합니다. 물론 나중에 '4편: 실전 가이드'에서 아티스트와 기획자들에게만 해당하는 내용을 짤막하게 다룰 계획이긴 합니다.

    이번 주 글은 이렇게 서론으로만 마칠 계획입니다. 여기까지 읽고 '나를 위한 글이 아니다.'라고 생각하시는 분들이 계시면 시간낭비 시켜드리지 않고 싶기 때문입니다. 이 글은 어디까지나 제 스스로의 경험을 바탕으로 하는지라 모든 분들의 가려운 욕구를 충족시켜드릴 수는 없을 것입니다. 제 글이 본인에게 맞지 않는다고 생각하시는 분들은 죄송하지만 다른 글/길을 찾아보시길 바랍니다.

    이 글이 유용하다고 생각하시는 분들은 1 ~ 2주 안에 새 글로 뵙겠습니다. ^^

    p.s.

    • 글 즐겁게 보셨고 다른 사람들에게도 도움이 되겠다 싶으시면 View On(Daum)이나 좀 눌러주세요. ^^
    • 질문이나 피드백은 아래에 답글로 달아주세요.

    - 캐나다 버나비에서 Pope 올림.


    2010년 7월 7일 수요일

    이것 저것: 비디오 게임 최적화

    • NVIDIA Texture tool 2.0.8 이 릴리즈되었습니다: 특별히 변한 것은 없습니다. 제가 정말 원햇던 feature는 텍스처 툴 1에서 지원했던 sharpen 필터인데요.. 2.2 버전에서야 지원할 예정이랍니다.. 대체 몇년이 걸릴지... 참고로 NVIDIA 텍스처 툴은 오프라인 DXT 압축에서 매우 쓸만한 놈입니다.
    • GPU Pro 가 출시되었습니다. 그 유명했던 ShaderX의 뒤를 잇는 책입니다. 이름이 좀... 거만해졌죠? ... -_-
    • 리얼타임 렌더링의 저자 Eric이 Video Game Optimization이란 책을 추천했군요. 비디오 게임 최적화를 다룬 책이 별로 없었던듯 한데 한번 읽어봐야겠습니다.
    • Python 2.7도 릴리즈 되었습니다.  C#의 점점 위세를 넓혀가고 있지만 여전히 파이썬 많이 쓰죠?