2년차에 들어서면서 경력에 비해 조금 더 다양한 경험을 할 기회를 가졌고 이를 기반으로 학생 때 놓쳤던 부분을 서술해봅니다.

 

1) 게임 개발은 플레이 개발만 있는 것이 아닙니다.

게임 개발에 입문 하는 사람들은 대부분 게임 플레이 하던 것을 만들고 싶어 입문을 합니다.

그리고 실제로 플레이 관련된 부분의 경험을 쌓아올립니다.

하지만 실제로 입사를 하게 되면 그런 개발을 바로 하게 되기란 쉽지가 않습니다.

게다가 게임에서 실제 플레이 못지 않게 중요한 부분이 게임 외 컨텐츠(랭킹, 결제 등)들이고,

이런 부분의 경험은 평소에 해오던 게임 개발보다는 Mobile/Web Application에 더 가깝습니다.

그리고 이런 게임 외 컨텐츠는 데디케이트서버와의 통신이 아닌 별도의 서버와 HTTP로 통신을 하는 추세입니다.

즉, 게임 개발이라고 보통 알고 있는 부분은 전체 개발 분야의 한가지이고,

전체적인 부분에서는 다른 소프트웨어 개발과 크게 다를 바가 없다는 것입니다.

 

2) 성능 최적화가 습관화 되어 있으면 좋습니다.

클린 코드, 알고리즘, 자료구조.

학생 때 공부를 좀 하다 보면 한번씩 접한 거고 한번 씩 빠져볼법한 주제입니다.

하지만 구조적인 부분을 고민하다가 놓치는 부분이 있습니다.

언어나 엔진의 구조에서 발생하는 성능 차이. 혹은 네트워크 환경 상 발생하는 문제입니다.

사실 경험상 후자가 전자보다 더 뼈아프게 다가옵니다.

전자는 여러 프로젝트에서 경험을 했지만, 후자는 학교에서 신경쓰면서 개발하기가 쉽지가 않거든요.

그럼에도 이런 부분에 숙련이 된다면 좀 더 나은 평가를 받고, 개발의 질이 한 단계 상승한다고 생각합니다.

최종적으로, 언어 자체의 깊은 이해도와 함께 프로파일링 경험을 가지시는 것을 추천드리는 바 입니다.

 

3) 네트워크와 DB를 무시하지 마세요.

게임 개발, 특히 게임 플레이 개발을 하는 사람들은 보통 엔진 경험 다음으로 그래픽스로 빠지는 경향이 있습니다.

물론 그래픽스도 중요합니다. 하지만 현실적으로 그래픽스 지식보다 당장 직면하게 되는 것은 네트워크와 DB입니다.

여기서는 설명이 필요하겠는데요.

웹 프로그래밍이나 앱 프로그래밍은 보통 DB와 앱이 직접 통신을 합니다.

그래서 별도의 DB라는 개념이 거의 없습니다.

하지만 게임 개발은 바이너리 파일로 DB처럼 쓰이는 테이블들이 꽤 있습니다.

심지어 개발자가 직접 개발을 하지 않고 테이블만 갱신을 하면 패치 없이 컨텐츠가 바뀌기 때문에 권장되죠.

그렇기에 클라이언트 개발을 하면서 항상 DB에서 고민하던 사항들을 같이 고민을 해야 합니다.

네트워크도 마찬가지입니다.

데디케이트 서버의 코드는 일반 게임 코드와 분리가 되어 있지 않습니다.

함수 단위에서 RPC를 구분지어서 작성을 하면 각각의 클라이언트에서 서버와 RPC 통신을 하는 것입니다.

때문에 네트워크 지식이 필히 요구됩니다.

 

적고 보니 당연한 얘기들만 있네요.

하지만 전 놓쳤던 부분들이었습니다.

지금 따라 가려고 하고 있고, 늘 그렇듯 하려고 하면 할 수 있게 되는 부분입니다.

그래도 미리 해놓는다면 더 높은 위치에서 시작할 수 있지 않을까 하여 공유드립니다.

'일기장' 카테고리의 다른 글

2021년 목표  (0) 2021.01.01
입사 후 근황 및 계획  (0) 2020.10.06
미끌  (0) 2020.08.14
분야 별로 요구하는 포트폴리오 포맷이 다른가봅니다.  (0) 2020.08.11
갑자기 면접 제의가 쏟아지네요  (0) 2020.08.06

+ Recent posts