통합 검색어 입력폼

게임 개발자를 꿈꾸는 대학 새내기- 현직자 멘토의 조언은?

조회수 2020. 10. 15. 23:04 수정
번역beta Translated by kaka i
번역중 Now in translation
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 다양한 분야의 재밌고 유익한 콘텐츠를 카카오 플랫폼 곳곳에서 발견하고, 공감하고, 공유해보세요.

안녕하세요 멘토님, 새내기 멘티입니다. 멘토님 저는 최근에 게임 프로그래밍에 흥미가 생겼습니다. 겨울방학부터 차근차근 프로그래밍 언어 공부와 게임 프로그래머를 준비하고 싶은데, 무엇을 하면 좋을지 막막하고 게임 프로그래머에 대한 지식이 부족한 것 같아 몇 가지 질문을 드리고 싶어요.

©️Juan Gomez

1. 멘토님은 왜 게임 프로그래머라는 직업을 선택하셨나요?


2. 멘토님께서 오랜 기간 동안 게임 프로그래머에 종사하고 계시는데, 게임 개발에서 어떠한 일을 하셨는지 그리고 현재는 어떠한 일을 하시는지도 자세히 알고 싶습니다.


3. 게임 프로그래밍을 위해 배워야 할 프로그래밍 언어가 매우 많다고 알고 있습니다. 멘토님께서 게임 개발에서 가장 중요하고 잘 쓰인다고 생각하는 프로그래밍 언어는 무엇이 있는지 알고 싶습니다.


4. 게임 프로그래머가 되기 위해 필요한 능력, 덕목에는 무엇이 있는지 알고 싶습니다.


5. 게임 프로그래머라는 직업을 가지기 전에 멘토님의 준비 과정과 준비 해야 할 것을 알고 싶습니다.


6. 게임 프로그래머라는 직업에 종사하시면서 힘든 점을 여쭤보고 싶습니다.

질문 들어주셔서 감사합니다. 답변해주시면 감사하겠습니다. 


안녕하세요. 새내기인데, 빠른 시기에 진로를 걱정하고 선택하는 멋진 결정에 응원을 보냅니다.


1. 게임 프로그래머 직업을 선택한 계기


어린 시절부터 컴퓨터 게임을 좋아하고, 프로게이머도 꿈꾸던 대학 시절을 보내고, 게임을 '하는 것'이 아닌 '만드는 것'은 어떨지 호기심이 생겨 다이렉트X를 학원에서 배우게 되었어요.


C++ 코딩하고 화면에 내가 구현한 내용이 노출되는 경험은 지적 희열을 주기에 충분했습니다. 그렇게 게임 업계에 발을 담그게 되었습니다. 게임 프로그래머는 두 직군으로 나눌 수 있어요. 서버와 클라이언트인데요. 저는 클라이언트 개발자입니다.


2. 게임 개발의 주된 업무


지금은 상용화된 게임 엔진인 언리얼과 유니티를 사용하는데요. 제가 처음 일을 시작할 시기만 해도 게임 회사마다 자체 엔진을 개발하는 경우가 많았습니다. 그래서 엔진 유지보수와 게임 내 콘텐츠를 병행해서 개발했습니다.


그런데 최근에는 언리얼과 유니티라는 강력한 엔진으로 엔진의 유지보수보다는 게임 내 콘텐츠를 구현하는 일을 주로 진행하고 있습니다. 게임 내 콘텐츠는 아이템, 스킬, 캐릭터 렌더링과 같은 다양한 작업 내용이 있습니다. 자체 엔진으로 개발해본 경험도 있고, 언리얼 엔진 3, 4, 유니티를 사용하여 모바일 프로젝트도 진행 중에 있습니다. 뿐만 아니라 게임 패치 시스템, 프로젝트에서 사용하는 엔진 기반 툴 작업도 빼놓을 수 없겠죠.


©️Nassim All

3. 게임 프로그래밍 언어


PC 기반 게임을 개발할 시기에는 C++가 대중화되었지만, 모바일의 게임이 주류가 되면서부터 조금씩 프로그래밍 언어가 C++과 C#으로 나뉘게 되었습니다. 언리얼 엔진을 기반으로 구현하는 프로젝트에서는 C++를 주로 사용하고, 유니티 엔진은 C#을 주로 사용합니다. 우선 C++, C#과 같은 종류의 언어인 객체 지향 프로그래밍의 공부를 추천합니다.


4. 직군에 필요한 능력


클라이언트 게임 개발자 직군은 게임의 최종 버전을 담당하는 직무라고 보면 이해하기 편할 듯합니다. 디렉터의 게임 방향성과 기획 직군의 컨셉과 디테일한 문서를 기반으로 서버에 저장할 정보를 통신으로 받아 처리하는 작업이 클라이언트 프로그래머의 주된 일입니다. 해당 내용을 이해하는 능력이 선행되어야 어떤 자료구조를 사용하여 알고리즘과 로직을 구현할지 설계가 가능합니다.


보통 개발자는 프로그래밍 구현과 엔진의 사용법을 강조하지만 학부 시절에 배운 OS, 네트워크, 자료구조, 알고리즘, 데이터베이스, 선형대수학과 같은 컴퓨터 공학의 기본기가 튼튼해야 합니다. 물론 프로그래밍의 문법도 자유자재로 쓸 수 있어야겠죠. 그렇지만 실무에 투입이 되는 순간부터 자료구조와 알고리즘, 선형대수학과 같은 기초 지식이 튼튼하다면 매우 큰 도움이 됩니다. 학부 전공과목을 소홀히 하지 마세요.


©️SCREEN POST

5. 준비 과정


대부분의 고용인은 피고용인의 높은 자질과 회사의 비전과 일치하는 사람을 원합니다. 하지만 이력서와 면접으로 적당한 포지션의 사람인지 확인하기는 거의 불가능하겠죠.


아직 학부생이라서 여러 경험을 쌓을 일들이 생길 거라고 봅니다. 게임 프로그래밍에 호기심이 생긴 만큼 혼자서 게임을 개발할 수도 있겠고, 팀으로 개발할 수도 있을 겁니다. 저는 두 가지 모두 경험해보는 걸 추천합니다. 그리고 각각의 장단점과 프로그래밍을 하나씩 해나가며 발생하는 각종 버그와 오류를 어떻게 해결했는지 빠짐없이 기록해 놓으세요.


프로그래머는 얼마나 많은 오류를 경험하고 해결했는지가 경력의 매우 큰 부분을 차지합니다. 그리고 게임을 아무래도 혼자 만들 수도 있겠지만, 거의 대부분은 협업을 토대로 제품을 생산할 겁니다. 다른 팀원과 어떻게 협업을 했고, 어떤 과정에서 트러블이 발생했는지, 의견차를 어떻게 해결했는지도 중요한 덕목이 아닐까 합니다.


6. 게임 개발자 직군의 힘든 점


오랜 기간 일을 하면서 가장 힘든 점을 꼽자면, 게임의 런칭과 성공이라고 볼 수 있겠네요. 거의 대부분의 게임은 매출과 인연을 맺지 못하고 역사 속으로 사라집니다. 게임 중 극소수가 사람들에게 알려지고 사랑받는 게임으로 자리 잡습니다. 최선을 다해 만든 게임이 서비스는커녕 도중 사라지는 경험이 가장 힘든 일이 아닐까 해요. 그런데 생각해보면 거의 인간이 하는 일이 비슷하지 않을까 합니다. 게임 개발도 다른 제품을 생산하는 일과 크게 다르지 않다고 볼 수 있겠죠.


게임 개발을 꿈꾸는 멘티님. 학부 시절에는 다양한 경험과 실수가 성장의 씨앗입니다. 전공 공부 절대 소홀히 하지 마시고, 언리얼 엔진, 유니티 엔진과 관련된 책을 보며 조금씩 익숙해진다면 졸업 이후에 분명 좋은 결과가 있으리라 생각합니다. 질문에 답이 됐을까요? 도전하다가 또 막히는 게 있으면 잇다에 글 남겨주세요.


정성스러운 답변 감사합니다! 많은 도움이 될 것 같습니다. 앞으로 열심히 해서 좋은 결과를 얻도록 노력하겠습니다. 정말 감사합니다.
이 콘텐츠에 대해 어떻게 생각하시나요?