대학교 2학년 게임개발자를 위해 어떤 공부를 하면 좋을까요?

Icon eye 50
Icon comment 1 0

개발자를 꿈꾸는 대학교 2학년 멘티입니다

졸업 후의 진로를 게임 개발자로 생각하고 있습니다.

사실 분야도 게임으로 정한것이지, 게임 개발자의 세분화한 업무(?)라고 해야하나요.. 

이에 대해서도 자세하게는 잘 모르겠습니다.


Q. 게임 개발자가 되기 위해서 어떤 공부를 하면 좋을까요? 

A. 일단 게임 개발자에는 큰 카테고리로 서버개발자와 클라이언트 개발자가 있습니다. 

(실제 이것보다 분야를 세분화 하면 더 많지만 일단은 크게 두부류만 말씀 드릴께요.)


서버개발자의 경우에는 실제 서버를 구현 할 수 있는 언어는 기본이며, 네트워크통신에서 주고 받는 프로토콜(데이터)

들이 어떤 경로를 통해서 클라이언트에서 서버로 전달되는지에 대한 과정을 충분히 이해 하시는게 도움이 많이 됩니다.

아마 학교에서 Network 관련 수업을 듣다보면 나오는 내용일거 같은데요. 거기에 더해서 실제 프로그래밍 언어는

C++/Java 정도에 웹에서 관리자 페이지를 만들수 있는 웹 스크립트언어 (Javascript or PHP) 정도 공부 하시는게 

좋습니다.  또한 작업 환경은 리눅스에서 하는 경우가 많으니 이점 참고해서 공부 하시는게 좋아요.


클라이언트 개발자쪽은, 어떤지 말씀 드릴께요. 보통 우리가 게임을 다운 받으면 즐기는 모든 캐릭터들과 실제 화면에서

Intractable 한 모든 부분이 클라이언트라 할 수 있는데요. 클라이언트쪽도 마찬가지로 Low Level에 있는 언어

C/C++ or Java 공부하는게 좋지만, 요즘 유행하는 게임엔진인 Unity3D Engine 혹은 Unreal Engine 공부를 

시작하셔도 괜찮습니다. Unity3D 엔진은 C#으로 코드를 작성하며, 언리얼은 C++ or Blueprint로 코드를 작성합니다.

제가 추천하기에는 클라이언트쪽에 재미를 붙이시고자 하시면 유니티를 하시는걸 추천합니다. 

Unity3D가 진입 장벽이 낮고(처음 접하기엔 쉬움) 유니티 홈페이지에 있는 튜토리얼들도 잘 만들어져 있기 때문에 

그 부분에서 재미를 붙일수 있는 부분 이 많을거라 생각 되네요.

(Unreal Engine or Unity3D Engine 엔진은 게임을 만들기위해서 미리 필요한 부분들을 어느정도 툴로 만들어

놓은 도구라 생각하시면 될거 같네요.)


그럼 위에 질문해주신 내용 정리해서 말씀드릴께요~

1. 게임 개발자가 되려면 일단 어느쪽 방향으로 처음 시작할지를 정하셔야해요.

게임을 개발하고자 하는데 서버를 접해볼지 클라이언트를 접해볼지.

1-1 서버개발자를 해보고 싶으시다면 아래에 내용에 추가된 언어를 준비해 주시는게 좋아요.

(1) C++ or Java or Javascript (요즘사용하는추세)

(2) Database 작성 할수있는 Database (Mysql or PostgresSQL or MongoDB 택1)

(3) 웹페이지를 만들수 있는 스크립트형 언어인 Javascript 언어를 공부하시는게 좋습니다. '

(php 등등 많지만 저는 javascript 추천)

(2) - (3) - (1) 우선순위로 공부해 보시는게 좋아요. 

1-2 클라이언트 개발자로 개발을 시작하고 싶으시다면,

(1) Unity3D로 시작하기를 권장하며, 언어는 C#으로 공부를 시작하시면 됩니다. 

C# 언어는 언어이고, Unity3D 엔진을 공부하려면, 

https://unity3d.com/learn 여기에서 영상들 보시며 공부하면 됩니다.

(2) 수학 물리를 공부하셔야 되는데요. 선형대수학에서 Vector와 Matrix 삼각함수 등은 머리속에 넣고 다니셔야 

하며 Physics for Game Programmer (Grant Palmer) 책 한권 정도 보시면 적당 할거 같네요.

(1,2) 둘다 공부 하셔야되요~

마지막으로 클라이언트 서버 공통으로 중요한 부분이 있는데요. 코드를 얼마나 효율적으로 작성할지?코드를 어떻게 

이쁘게(?) 작성 할 것 인가인데.. 알고리즘과 디자인패턴 이라는 내용이 있습니다. 

알고리즘은 얼마나 코드를 효율적으로 작성 할 것 인가인데.. 

예를 들어서 게임을 만들었는데 최신폰에서 게임이 렉이걸려서 플레이를 할 수 없는 상황이 되면 않되겠죠? 그래서 실제

우리한테 주어진 자원(핸드폰사양 혹은 컴퓨터사양)등에 효율적으로 코드를 작성하기 위해서 알고리즘을 공부해야 해요.

그리고 코드를 얼마나 이쁘게(?) 작성할 지에 대한 내용이 있는데, 이런 이쁘게 작성하는 방법들을 모아놓은 것이 디자인

패턴이라는 내용이에요. 코드를 짜게되면 실제로 co-worker들과 같이 일을 하게 되기때문에 내가 짠 코드들이 그 사람

들도 해독할수 있어야되는데 나만 볼수 있다면 문제겠죠? ㅎㅎ 


마지막으로 어떤 프로그램을 만든다고 했을 때, 그 프로그램에 어떤 기능들을 만들어야 되는지, 실제 프로그램을 만들어

달라고 한 사람의 요구사항을 잘 분석해서 정리 하시는 능력도 필요해요. 해당 내용을 문제분석이라 하는데, 문제분석을

잘해야, 작성해야 될 코드만 작성할 수 있겠죠?

그 외에 서버개발자와 클라이언트 개발자외에 개발자가 게임쪽에서 일 할 수 있는 분야는.

웹개발자, 데이터분석가, 툴개발자 등등이 있습니다.



혹시 다른 멘토님들은 어떻게 생각하시나요? 

관련 멘토에게 질문해보세요

'잇다클래스 서울편' 신청자 모집 (9월)

* 현직자 직무 멘토링&토크쇼
: 경영기획,영업,홍보,마케팅,품질,인사,외국계
* 자소서·면접 준비 : 자소서/이력서 클리닉, 모의면접
* 진행 지역 : 광진구, 성북구, 성동구

댓글작성

댓글 0 개