게임프로그래머란?
얼마 전 세계인들을 사로잡은 게임이 있었습니다. 플레이어는 스마트폰으로 게임에 접속한 후에 자신의 아바타를 생성하고 성별, 머리 스타일, 피부색, 눈동자 색, 옷 등을 선택해서 아바타를 완성합니다. 아바타가 만들어진 후에는 플레이어가 위치한 주변 지역의 지도와 함께 아바타가 플레이어가 있는 장소에 나타납니다. 플레이어는 자신의 아바타와 함께 현실 세계를 이동하면서 스마트폰 속의 몬스터 캐릭터를 찾고 몬스터볼을 포획하기 위해 다양한 장소로 이동합니다. 이 게임은 증강 현실 기술을 게임에 적용하여 많은 사람들에게 즐거움을 가져다주었습니다.
이와 같은 게임은 대부분 기획→제작→테스트→배포의 과정을 거쳐 만들어집니다. 처음 새로운 아이디어가 만들어지면, 기획서가 작성되고, 게임 시나리오와 배경 스토리 구성, 게임 방법과 그래픽 작업이 진행됩니다. 다음으로는 가장 중요한 프로그램을 개발하고, 각종 배경 음악과 효과음을 삽입하는 작업이 이어집니다. 완성된 게임은 사전 참여자들을 대상으로 베타테스트를 거친 후 최종 수정 작업을 하고 시중에 판매됩니다. 하나의 게임이 만들어지기까지 이러한 과정을 거치게 되고, 그 과정에서 게임기획자, 게임프로그래머, 시나리오작가, 그래픽디자이너, 사운드엔지니어 등 여러 전문가들이 협업을 하여 작업을 진행합니다.
게임 개발 과정에서 가장 핵심적인 일이라 할 수 있는, 게임에 생명을 불어넣는 일을 하는 사람이 바로 게임프로그래머입니다. 게임프로그래머는 게임의 전체 구조를 설계하고, 사운드 효과와 그래픽 데이터를 통합하여 게임을 완성하는 일을 합니다. 게임프로그래머는 ‘게임서버프로그래머’와 ‘게임클라이언트프로그래머’로 구분합니다. ‘게임서버프로그래머’는 온라인 네트워크와 데이터베이스 관련 프로그래밍을 작업합니다. 이는 여러 게임 플레이어가 인터넷을 통해 같이 게임을 할 수 있도록 가상 공간을 만드는 작업입니다. ‘게임클라이언트프로그래머’는 컴퓨터에서 직접 실행되는 프로그램을 만듭니다. 게임상에서 각 유닛의 이동이나 전투 등 눈에 보이는 모든 부분을 개발하는 프로그래머입니다.
게임프로그래머가 하는 일은?
게임프로그래머는 프로그래밍을 통해 맵 디자인, 캐릭터 디자인, 사운드, 각종 시스템 등을 혼합해서 게임이라는 하나의 결과물을 만들어 내는 직업입니다. 하나의 게임이 완성되는 과정에서 가장 중요한 역할을 담당하는 사람입니다. 게임프로그래머는 컴퓨터 앞에 앉아서 오랜 시간 동안 작업해야 하므로 각자의 체형에 맞는 작업 환경을 만들기 위해 의자와 책상을 조정하고, 모니터, 키보드, 마우스는 인체 공학적으로 설계된 제품을 사용하는 것이 좋습니다. 쾌적한 실내 환경을 위한 적정 온도, 방음, 방습, 방진도 요구됩니다. 오랜 시간 컴퓨터 작업으로 인해 발생하는 VDT 증후군, 목 디스크, 허리 디스크, 시력 저하, 안구 건조증 등이 발병할 가능성이 높기 때문에 건강 관리에 유의해야 합니다.
적성과 흥미는?
게임프로그래머는 시나리오, 프로그래밍, 디자인, 음악 등 게임을 구성하는 모든 요소를 운영해야 하기 때문에 여러 분야에 걸쳐 풍부한 지식을 갖추어야 합니다. 게임 분야는 새로운 기술이 빠르게 등장하는 분야이므로 항상 공부하는 자세가 필요합니다. 기본적으로 수학, 물리학에 대한 흥미와 기본적인 지식을 갖추고 있어야 합니다. 높은 수준의 컴퓨터 그래픽 능력은 물론 음향, 색감, 정교한 움직임을 나타내려면 수학적 지식도 갖추어야 하고, 캐릭터들의 움직임을 현실감 있게 표현하려면 물리학 지식이 필요합니다.
C언어를 기본적으로 공부한 후에 C++, MFC, API, JAVA 등의 프로그래밍 언어를 배우면 좋습니다. 대부분 프로그래밍 기술이 영어로 쓰여 있어 기본적인 영어 실력은 갖추어야 합니다. 게임 프로그램을 만드는 과정은 여러 전문가의 협업으로 진행되기 때문에 프로젝트를 통합·관리할 수 있는 리더십, 원만한 대인 관계, 원활한 의사소통 능력을 갖추는 것도 필수적입니다. 항상 새로운 것을 탐구하기 좋아하고, 인간의 심리와 사회 변화에 관심을 가지며, 자신이 맡은 일을 끝까지 마무리할 수 있는 성실성과 책임감이 있고, 성격이 꼼꼼하며, 논리적 사고력과 상상력을 지닌 사람, 자신의 아이디어를 구체화하여 문서 및 시각화할 수 있는 창의적인 사람이 유리합니다. 게임 콘텐츠에 관심을 갖고, 다양한 프로그램을 활용하여 게임을 영상으로 표현하는 데 흥미가 있으며, 다양한 컴퓨터 프로그램을 다루는 능력을 지닌 사람에게 적합합니다. 탐구형과 현실형의 흥미 유형에 해당하는 사람이 적합합니다.
게임프로그래머에 관심이 있다면 수학, 물리학 교과에 대한 지식을 습득하는 데 노력해야 합니다. 파이썬이나 C언어를 배우는 것도 좋고, 평소 컴퓨터 프로그램 활용 능력을 쌓는 것도 권장합니다. IT 및 다양한 분야의 독서와 컴퓨터 관련 잡지나 신문을 구독하는 것을 권장합니다.
진출 방법은?
게임프로그래머가 되기 위해서는 전문 대학 및 대학 졸업 이상의 전산 관련 전공이 우선시되기는 하지만, 전공 제한은 없습니다. 게임 프로그래밍 실력만 갖추었다면 전공과 상관없이 고등학교나 전문 대학을 졸업한 경우에도 가능합니다. 또는 게임 관련 인력 양성을 전문적으로 하는 게임 아카데미나 대학에서 운영하는 사회 교육원 등에서 교육을 받아도 됩니다.
그러나 게임 관련 학과에서는 게임 기획, 게임 연출, 게임 프로듀싱 및 아이디어 발굴을 위한 교육, 게임 시나리오 작성, 게임 그래픽 디자인, 게임 프로그래밍, 게임 음악 등을 체계적으로 배우기 때문에 게임프로그래머로 진출하는 데 비교적 유리합니다. 게임프로그래머는 Visual Tool, 컴퓨터 그래픽 애니메이션 개발 능력과 Windows, 포토샵, 프리미어, 프로그래밍 언어(C/C++등), 자료 구조 등에 대한 지식을 갖추는 것이 필요합니다.
게임프로그래머는 게임 제작 업체, 소프트웨어 개발 업체, 영화사, 광고 제작 업체, 출판사, 애니메이션 제작 업체, 컴퓨터 활용 분야, 게임 프로그램 업체, 솔루션 개발 업체 등에 주로 취업하고, 경력 및 실력 여하에 따라 P2P 및 클라이언트 분야의 업무를 담당하기도 합니다. 게임프로그래머로 처음 진출하게 되면 3년 정도 P2P&클라이언트 분야의 서브 프로그래머로 근무합니다. 이후 5년 정도 근무하면 리드 프로그래머가 되어 웹PD 및 웹디자이너로 이동이 가능하고, 게임기획자로 직업을 옮기는 것도 가능합니다. 리드 프로그래머로 8년 정도 근무하면 게임 프로젝트 매니저로 승진할 수 있으며, 웹프로그래머, 소프트웨어개발자, 모바일게임프로그래머로 전직이 가능합니다. 게임 프로그램 개발 총괄 팀장이 되려면 10년 정도의 경력이 필요합니다.
미래 전망은?
우리나라는 세계 최초로 온라인 게임 상용화에 성공하였습니다. 발달된 IT 인프라와 반도체, TFT, LCD, 모바일 분야 세계 1위의 기술력을 기반으로 세계 온라인 게임 분야의 발전을 선도하며, 아시아는 물론 유럽과 북미에서까지 우리나라의 온라인 게임이 서비스되어 게임 플레이어들을 열광시키고 있습니다. PC와 모바일 등 다양한 디지털 기기의 보급량이 급격히 증가하면서, 유아기부터 디지털 기기를 접해 온 청소년 세대들은 거부감 없이 디지털 기기를 능숙하게 다룰 줄 압니다. 또한 1인 가구의 증가와 개인주의의 확대 등으로 혼자서 여가 시간을 보내며 게임 콘텐츠를 이용하는 경우가 많은 것으로 나타나 게임프로그래머를 비롯한 게임 관련 직업의 전망을 밝게 하고 있습니다.
온라인 게임에는 여러 가지 종류가 있는데, 그중 스마트폰을 이용한 모바일 게임이 가장 유망한 분야이기 때문에 모바일 게임 개발 부문의 인력에 대한 수요가 증가하고 있습니다. 우리나라의 게임 산업은 세계에서 선두권이고, 게임의 종류와 콘텐츠도 다양해지고 있으며, 국가 차원에서 전략적으로 육성하고 지원하는 분야이기도 합니다. 이렇듯 문화 산업의 중요성이 갈수록 증대하고 있는 상황은 게임프로그래머에 대한 고용에 긍정적인 영향을 미치고 있습니다. 또한 최근 게임 업계에서는 전문 게임프로그래머의 인력 부족 현상이 갈수록 심화되고 있어 인디 게임 업체, 중견 게임 개발 회사뿐만 아니라 대기업 게임 개발팀에서도 게임프로그래머 인력을 구하는 데 어려움을 겪고 있다고 하니 실력을 갖춘다면 취업에는 큰 걱정이 없을 것으로 예상됩니다. 게임프로그래머의 경우에도 기업 규모에 따라 근무 환경의 차이가 크기 때문에 근무 여건이 상대적으로 열악한 중소기업보다는 대기업으로의 취업 경쟁은 치열할 것으로 예상됩니다.
어떤 준비를 해야 할까?
관련 직업은?
Tip
게임프로그래머의 분야별 역할에 대해 알아볼까요?
▶ 물리프로그래머: 현실 세계와 같은 물리 현상을 게임 플레이에 접목하여 사실감 있는 게임을 만드는 역할을 해요.
▶ 사운드프로그래머: 게임 내 모든 사운드 처리를 담당하며, 기획한 콘셉트에 따라 효과음이나 배경음이 적절하게 출력될 수 있도록 조절하는 역할을 해요.
▶ 렌더링프로그래머: 게임 화면에 나오는 모든 업무를 담당하며, 게임 엔진으로 구현한 기능들이 게임에서 잘 동작할 수 있도록 최적화하는 역할을 해요.
▶ 툴프로그래머: 게임 내에서 사용될 목적으로 만들어진 텍스처나 모델은 게임에서 바로 사용할 수 없기 때문에, 이러한 텍스처나 모델 등을 게임 제작 시에 사용할 수 있는 툴을 제작하는 역할을 해요.
▶ AI(인공 지능)프로그래머: 게임 내 등장하는 생명체들이 지능적으로 움직일 수 있도록 만들어 주는 역할을 해요.
▶ 애니메이션프로그래머: 게임원화가가 만든 캐릭터의 동작들을 게임 내에서 사용하기 위해 로직을 만드는 역할을 해요.
▶ 서버프로그래머: 게임을 위한 서버(가상 세계)를 구축하고, 플레이어가 보내주는 데이터를 처리하는 역할을 해요.
게임의 종류에 대해 알아볼까요?
▶ 롤플레잉 게임(RPG): 가상 시나리오 내에서 주어진 역할을 수행하는 게임이에요.
▶ 어드벤처 게임: 탐험, 수수께끼 놀이 등의 스토리에 주인공으로 참여하는 게임이에요.
▶ 시뮬레이션 게임: 특수한 상황의 가상 공간에서 현실과 유사한 시뮬레이션 경험을 하도록 유도하는 게임이에요.
▶ 액션 게임: 신체나 무기를 이용해 대전하는 격투 게임이에요.
▶ 스포츠 게임: 축구, 농구, 야구 등 다양한 스포츠 종목을 게임화한 것이에요.
▶ 보드 게임: 현실의 판 위에서 벌어지는 오락거리를 게임화한 것이에요.