클라이언트 게임 개발자로 취업하기 위해서 전략을 잘 설정하지 않으면 1년을 준비해도 취업을 못할 수도 있습니다. 하지만 전략만 잘 설정하면 3~4개월 이내에 취업을 하는 것도 현실입니다. 저는 졸업하기전에 게임 업계를 취업했습니다. 단기간 내에 전략을 잘 설정하여 취업에 성공했기 때문에 그 과정을 여러분에게 공유해 드리려고 합니다. 또한 전공자가 아니시거나, 이제 막 게임개발을 공부하시는 분들도 어떻게 공부하면 좋을지 제 경험을 토대로 방향성을 제시해 드리려고 합니다.
목차
[클라이언트 게임 개발자란?]
게임 개발자는 크게 서버와 클라이언트로 나뉩니다. 클라이언트 개발자는 간단히 말해서 눈에 보이는 콘텐츠를 개발한다고 생각하시면 됩니다. 게임에서 어떤 이벤트를 개발 하거나, pvp 콘텐츠를 개발하는 것들이 될 수 있겠죠, 반대로 서버 개발자는 안보이는 부분을 담당합니다. 유저가 재화를 소모했을 때 그것을 서버로 저장하기 위한 기능을 구축하는 등의 일을 합니다.
[클라이언트 게임 개발자의 현실]
많은 분들이 게임 회사에서 큰 규모의 게임을 만드는 것을 꿈 꾸십니다. 로스트아크나 배틀그라운드 같은 게임 말이죠. 하지만 최근 업계 동향은 모바일 게임에 많이 치우쳐 있는 것이 현실입니다. 그렇기에 대부분 작은 규모의 모바일 게임을 만듭니다. 또한 큰 규모의 프로젝트를 운영하는 회사를 들어가도 신입은 아주 작은 부분을 담당하기 때문에 괴리감을 느끼시는 분들이 많습니다.
여기까지 읽으셨다면 게임업계를 들어가기 위해서 준비 하는 게 맞을까? 같은 의문을 가지시는 분들도 계실 텐데요. 그럼에도 불구하고 다른 직업 보다 자유로운 출퇴근 이나, 자신이 좋아한 게임을 만들어서 출시를 하면 그만큼 뿌듯한 것도 없습니다. 그리고 학력이나 자격증 같은 것 보다 실력을 위주로 평가하기에 실력만 좋다면 취업하기도 쉽고 급여도 그만큼 보장을 해줍니다.
게임 개발을 잘 할 자신이 있고 현실을 받아 드리실 마음가짐이 있으시다면 게임회사에 취직하는 것을 후회하지 않을 거라 생각합니다.
[유니티 클라이언트 게임 개발자 취업하기 위해 요구하는 능력과 공부 방법]
먼저 유니티를 다루실 줄 알아야 합니다. 유니티로 작은 프로젝트라도 협업한 경험이 있어야 유리합니다. 협업 경험이 없다면 개발한 게임이라도 있어야 합니다.
기본적으로 요구되는 기술 스택이 존재하는데요 총 6가지입니다.
- c#
- 자료구조
- 알고리즘
- 게임 수학
- 디자인 패턴
- 컴퓨터 그래픽스
이 중에서도 C#과 자료구조, 알고리즘, 게임 수학은 기본중의 기본이기 때문에 아주 깊이 이해 하셔야 합니다.
c#의 경우 유니티 게임 개발이 가능한 수준이면 되는 것이 아닙니다. GC가 어떻게 돌아가는지 힙과 스택이 언제 사용 되는지 등을 알고 계셔야 합니다. 핵심은 게임을 제작할 때 c#의 내부구조를 알아서 최적화가 가능한 수준이여야 합니다.
자료구조의 경우 이론만 숙지하시면 안됩니다. 장단점과 게임에서 언제 사용해야 하는지를 알고 있어야 합니다. 예를 들자면 스킬 트리 시스템을 만든다고 했을 때 계층 구조가 필요하며, 계층구조 하면 떠오르는 자료구조는 트리입니다. 즉, 트리를 이용하여 스킬 트리 시스템을 만들어야 합니다. 실제 게임에 적용해 보시면 좋지만 불가능 하다면 언제 사용하는지를 알고 계셔야 합니다.
알고리즘도 마찬가지로 장단점과 언제 사용하는지 알고 있는 것이 중요합니다.
게임 수학은 게임을 만들 때 모르시면 개발자 간의 대화가 안됩니다. 그리고 간단한 구현도 오래 걸리기에 무조건 숙지를 하고 있어야 하며 많은 게임을 만들어보면서 실제로 적용도 해 봐야 합니다.
디자인 패턴의 경우 많은 이론을 아는 것 보다 하나 씩 써보면서 직접 어떤 점이 좋은 지 안 좋은지를 판단 하는 것이 중요합니다. 많은 이론을 알아봐야 언제 사용해야 하는지 감이 안 오면 디자인패턴의 이론을 무용지물 이기 때문입니다.
컴퓨터 그래픽스는 게임 엔진의 기본이 되는 이론입니다. 이것만 알아도 엔진에 종속된 프로그래머가 아닌 기본기가 탄탄한 프로그래머로 거듭나기 때문에 중요합니다. 유니티가 10년~20년 동안 최고의 엔진일 수는 없습니다.
마지막으로 위 이론들을 숙지하는 것도 중요하지만 게임 개발 경험이 많아야 합니다. 그중 에서도 협업 경험은 가능하면 1번 이상 있어야 면접에서 얘기할 거리도 생기며 어필하기 좋습니다.
[취업 하기위해 필요한 것들]
크게 3가지 입니다. 포트폴리오, 기술면접, 코딩 테스트입니다.
여기서 코딩테스트는 보는 회사도 있고 아닌 회사도 있기에 2가지보다 우선순위에서 밀려납니다.
포트폴리오는 어떤 게임을 만들었는지도 중요하지만 게임 만드는 과정을 정리하시는 게 서류에 합격할 확률이 높습니다. 대부분 결과물만을 포트폴리오에 쓰기 때문에 과정도 같이 드러나 있다면 신뢰성을 높여주기 때문입니다. 저는 이 방법으로 대부분 합격 했었습니다.
기술 면접은 물어보는 것이 광범위 합니다. 하지만 제가 위에서 말씀드렸던 6가지만 잘 숙지하셔도 대답하는데 무리가 없습니다. 기술면접을 보기전에 한번 정리해 보시는 것이 중요하며, 자주 물어보는 질문 같은 경우 인터넷에 자료가 많으니 참고 하시면 됩니다.
코딩 테스트의 경우 많은 문제를 풀어보고 꾸준히 하는 것이 중요합니다. 문제 풀이의 감을 잡고 있어야 지만 유리하기 때문입니다. 또한 회사마다 문제의 유형이 다양해서 최대한 많은 회사에 지원하여 많은 유형을 경험하는 것이 많은 도움이 됩니다.
[전략]
많은 분들이 취업을 준비 하실 때 완벽함을 추구하여 매우 긴 기간 준비하는데 추천하는 방법은 아닙니다. 제가 했던 방식은 준비와 지원을 병행했습니다. 병행 하는 것의 장점은 회사에 지원하면서 어떤 부분이 부족한지 면접이나 서류지원으로 확실하게 알 수 있기 때문에 부족한 부분을 채우기 수월해 집니다. 또한 긴 기간 준비하면 늘어지기 마련인데, 회사에 지원하다 보면 동기부여가 돼서 더 열심히 할 수 있습니다.
저는 이 전략으로 준비를 시작하고 취업하기 까지 3개월 정도 걸린 것 같습니다.
[마무리]
글의 제목은 유니티 클라이언트 게임 개발자로 취업하기 위한 방법이지만 제 생각은 엔진에 의존하는 개발자가 되면 안된다고 생각합니다. 회사를 다니면서 느꼈던 것은 유니티 말고도 여러가지를 경험해 보면서 빨리 습득하고 적용하는 능력이 가장 중요하다고 느꼈습니다. 혼자 공부해서 어떤 것을 해결하거나 바로 적용 할 수 있는 능력이 있어야 개발자로 살아 갈 수 있습니다.