메뉴 건너뛰기

통합검색 입력 폼
잡코리아 주요 서비스
알바의 상식 albamon


취업토크 상세

다렉으로 게임 포트폴리오를 만들었을때의 장점.

작성자
GL_30926***
작성일
2021-10-31
조회수
4381
좋아요 수
16
Dx를 사용해서 게임포폴을 만드는 것과 상용엔진을 이용해서 게임포폴을 만드는 것의 차이점을 정확히 이해하지 못한 분이 많아서 씁니다.

가장 큰 오해 : "그래픽스 파이프라인에 대한 이해를 위해서 혹은 내가 이해하고 있다는 것을 입증하기 위해서 다이렉트로 포폴을 만든다."

다렉으로 3D 게임을 만들려면 그래픽스 파이프라인에 대한 이해는 필수적입니다. 그리고 그것을 이해하고 있다는 입증도 됩니다. 하지만 굳이 다렉으로 게임을 만드는 것까지 필요하지는 않습니다. 상용엔진의 셰이더 코드를 수정하는 것으로도 얼마든지 보여줄 수 있구요. 완성된 게임이 아닌 렌더링 만을 위한 실험실 형태의 프로그램을 짜는 것만 해도 됩니다. 게임을 만들지 않아도 내가 이해하고 있다는 걸 입증하기에는 충분한 수준입니다.
게다가 이정도 레벨은 시중에 나와있는 책 한권만 처음부터 따라가도 얼마든지 이해하고 제작 가능합니다.

다렉으로 게임을 만드는 이유는 맨땅부터 시작하기 때문입니다. 상용엔진이 상용게임을 개발하는 시간을 극단적으로 줄이고, 퀄리티를 모두 일정 이상 올려버렸습니다. 상용 엔진으로 겉보기에 괜찮은 게임을 만들어도 그게 만든 본인의 실력이라고 봐주지 않는다는 겁니다.

게임 클라로서 실력을 입증하려면 내가 어떤 개발 능력을 가졌는지 보여주어야 합니다.
당장 다렉으로 개발을 하기 위해서는 마우스 피킹부터 손수 만들어야 합니다. 게이머가 UI를 찍었는지 땅을 찍었는지 판단해야 되니까요. 마우스 피킹은 쉽지만, 수학적인 능력과 렌더링 파이프라인에 대한 이해가 필수적입니다.
프레임 워크를 만들어서 각 오브젝트간의 업데이트 순서와 렌더링 순서도 정해줄수 있어야 됩니다. 기본적인 게임의 업데이트 프레임워크에 대해서 이해하고 있다는 것을 보여줄수 있습니다.
생성과 삭제의 생명 주기도 결정 해줘야 되구요. 그런 과정에서 메모리 관리에 대한 이해가 늘어나구요. 최적화를 위해서 메모리 풀을 구현할수도 있겠죠?
피격 판정도 직접 만들어야 합니다. 구충돌, AABB, OBB, 캡슐충돌, 레이 캐스트. 피격 판정을 만들려면 최소한의 기하에 대한 이해가 필요합니다.
직접 메시와 텍스처, 애니메이션까지 모두 불러와서 직접 적용해줘야 됩니다. 스켈레탈 메시가 어떻게 움직이는지, 스키닝은 어떻게 진행되는지 이해하게 됩니다.
애니메이션에 맞춰서 사운드도 재생해야 되구요. 애니메이션, 텍스처, 메시, 사운드등을 다루면서 대용량 데이터를 관리의 기본도 이해할 수 있습니다. 최소한 그게 얼마나 무거운건지는 이해하게 됩니다.
여러가지 길찾기 알고리즘도 구현해야 되고, 몬스터를 만들면 FSM도 구현해봐야 됩니다.

짧게 썼지만, 전공자가 대학에서 배워도 각 항목당 1주일 이상의 수강이 필요한 것들입니다. 대학에서 배우지 않았다면 그 정도 시간의 독학이 따로 필요한 것들이구요.

말그대로 게임 개발자로서의 개발능력을 가지고 있는지 아닌지를 보여줄수 있는겁니다. 이 사람이 신입으로 들어와서 업무를 시켰을때, 버그 수정을 시켰을때 그걸 해결할수 있을지 어떨지 말입니다. 엔진에 있는 충돌기능을 그대로 사용만해서 어떻게 동작하는지 모르는 사람에게 충돌버그 수정을 시킬수 있을까요? 가능은 하겠지만 시간이 오래걸리겠다고 생각하겠죠? 그러면 다른 경쟁자에게 밀릴수 밖에 없는 거에요.

신입을 뽑을때 회사에서는 개발능력, 문제해결능력에 보게 됩니다. 급박한 개발 과정에서 업무를 주었을때 기한을 맞출수 있을까? 하는거죠. 그런데 그 부분에 대한 이해가 전혀 없다면 R&D 시간이 추가로 필요하겠죠? 적어도 최소한의 R&D만으로 해결하길 바랄겁니다. UI버튼 클릭이 안되는 버그를 해결하기 위해서 1주일씩 마우스 피킹 공부하는 걸 보고있을 회사는 없으니까요.

상용엔진은 위에 말한 기능들을 전부 신입의 능력 이상의 퀄리티로(왠만한 회사의 시니어보다도 더 높은 수준으로) 구현해뒀기 때문에 그걸 수정하기도 어렵고, 개선하려고 해봤자 개악이 되는 경우가 더 많을 겁니다. 그래서 그 부분의 구현을 해보지 않거나, 수정을 포기하고 게임 컨텐츠에 대한 구현만 하게 되면 회사 입장에서는 깊이가 없다거나 개발에 대한 기초가 부족하다고 느낄수 밖에 없습니다.

결론적으로 다렉 포폴을 만드는 의미는 그래픽스 지식의 입증이 아니라, 개발능력에 대한 입증입니다. 상용엔진으로 포폴을 만들때는 내가 어필할수 있는 능력이 어떤것인지 명확히 이해할 필요가 있습니다. 내가 구현한 이 기능이 정말 회사에서 신입에게 필요로 하는 지식인가 말이죠. 그런면에서 다이렉트로 포폴을 만드는게 안전한 길이라고 볼 수 있습니다. 하나하나가 개발에 무조건 필요한 기능이기에 포폴문서를 만들기에도 좋습니다.


추가적으로, 스타트업이나 소규모의 회사에서는 엔진 활용능력 자체를 개발 능력과 비슷하게 높게 치기때문에 엔진포폴이 필수적인게 사실입니다. 하지만 대기업입사에 엔진 활용능력은 필수적이지 않습니다. 아무리 길게 잡아도 수습기간이면 신입에게 필요한 활용능력은 모두 습득가능한 사람을 뽑기 때문입니다.
당장 취업이 급해서 작은 회사라도 들어가야 한다면 엔진 활용능력을 키우는게 필수적이지만, 큰 회사를 목표로 하고 있다면 기본적인 개발능력을 키우는게 좋습니다.


배너



퀵메뉴