멘토지원
파트너스
현직자 클래스
멘토 찾기
Best 질문답변
게임 개발자가 되고 싶어요. 뭐부터 시작해야 할까요?
멘토
IT개발/데이터
약 5년 전
💬 멘티의 질문
멘토님, 안녕하세요? 서울 소재 대학에서 멀티미디어학과에 재학 중인 학생입니다.


ⒸEKKAPHAN CHIMPALEE

 
저는 졸업 후의 진로를 게임 개발자로 생각하고 있습니다. 하지만 분야만 게임으로 정했을 뿐, 게임 개발자의 세분화된 업무랄까 이런 부분에 대해서는 자세히 잘 모릅니다.
 
그래서 멘토님께 게임 개발자가 되려면 무엇을 준비하면 좋을지 조언 부탁드립니다. 또 앞으로 어떤 공부를 하면 도움이 될지 알고 싶습니다.
 
요즘 미세먼지가 심한데 건강 조심하시고요. 답변 기다릴게요. 감사합니다.

💬 탈퇴회원 멘토의 답변
안녕하세요, 멘티님. 반갑습니다. 게임 개발자가 되고자 하시는군요. 일단 게임 개발자에는 큰 카테고리로 서버 개발자와 클라이언트 개발자가 있습니다. 실제 세분화하면 이것보다 분야가 더 많지만 일단은 크게 두 부류만 말씀드릴게요.

 

서버 개발자와 필요한 공부

먼저 서버 개발자에 대해 말씀드리겠습니다. 서버 개발자에게 실제 서버를 구현할 수 있는 언어는 기본이고요. 네트워크 통신에서 주고받는 프로토콜(데이터)들이 어떤 경로를 통해서 클라이언트에서 서버로 전달되는지에 대한 과정을 충분히 이해하시는 게 도움이 많이 됩니다. 이건 아마 학교에서 네트워크 관련 수업을 듣다 보면 나오는 내용일 거예요.


ⒸVintage Tone

 
거기에 더해서 실제 프로그래밍 언어는 C++/Java 정도에 웹에서 관리자 페이지를 만들 수 있는 웹 스크립트 언어(Javascript or PHP)를 공부하시는 게 좋습니다. 또한 작업 환경은 리눅스에서 하는 경우가 많으니 이점 참고하시면 좋겠네요.
 

클라이언트 개발자와 익혀야 할 도구

자 이번에는 클라이언트 개발자 쪽은 어떤지 말씀드릴게요. 보통 우리가 게임을 다운 받아서 즐길 때 접하는 모든 캐릭터들과 실제 화면에서의 상호작용(Interactable)하는 모든 부분이 클라이언트라 할 수 있는데요.
 
클라이언트 쪽도 마찬가지로 Low Level에 있는 언어인 C/C++ 또는 Java를 공부하는 게 좋지만, 요즘 유행하는 게임 엔진인 Unity3D 엔진 혹은 Unreal 엔진 공부를 시작하셔도 괜찮습니다. 이 Unreal 엔진과 Unity3D 엔진은 게임을 만들기 위해서 미리 필요한 부분들을 어느 정도 툴로 만들어 놓은 도구라 생각하시면 됩니다.
 
Unity3D 엔진은 C#으로 코드를 작성하며, Unreal은 C++ 또는 Blueprint로 코드를 작성합니다. 혹시 클라이언트 쪽에 재미를 붙이시고자 한다면 Unity3D를 하시는 걸 추천드리고 싶은데요. Unity3D가 진입 장벽이 낮고(처음 접하기에 쉬움) Unity3D 홈페이지에 있는 튜토리얼들도 잘 만들어져 있기 때문에 쉽게 재미를 붙일 수 있는 요소가 많을 겁니다.
 
그럼 위에서 말씀드린 내용을 보시기 편하게 숫자를 붙여 정리해 보겠습니다.
 

ⒸNegative Space


1. 게임 개발자가 되려면 일단 어느 쪽 방향으로 시작할지를 정하셔야 해요. (서버 개발자 또는 클라이언트 개발자)
 
2. 서버 개발자를 선택하신다면 아래 언어를 준비해 주시는 게 좋아요.
(1) C++ or Java or Javascript (요즘 사용하는 추세)
(2) Database 작성할 수 있는 Database (Mysql or PostgresSQL or MongoDB 중 택 일)
(3) 웹페이지를 만들 수 있는 스크립트형 언어인 Javascript 언어 (php 등 많지만 저는 javascript 추천)
(2) - (3) - (1) 순으로 공부하는 게 좋아요.
 
3. 클라이언트 개발자를 선택하신 경우
(1) Unity3D로 시작하기를 권장하며, 언어는 C#으로 공부를 시작하시면 됩니다. Unity3D 엔진은 아래 링크에서 영상을 보며 공부하세요.
Unity3D 엔진 배우기 페이지 : https://unity3d.com/learn
(2) 수학 물리를 공부하셔야 하는데요. 선형대수학에서 Vector와 Matrix 삼각함수 등은 머릿속에 넣고 다니셔야 합니다. 이건 ‘Physics for Game Programmer (Grant Palmer)’라는 책을 한 권 정도 보시면 적당할 거 같네요.
(1)과 (2) 둘 다 공부 하셔야 됩니다.
 

알고리즘과 디자인 패턴도 중요해요

마지막으로 클라이언트 개발자와 서버 개발자에 공통으로 중요한 부분이 있는데요. 코드를 얼마나 효율적으로 작성할지, 코드를 어떻게 ‘예쁘게’ 작성할지에 대한 거예요. 이와 관련해서는 알고리즘과 디자인 패턴이란 걸 아셔야 합니다.
 

ⒸNegative Space


알고리즘은 얼마나 코드를 효율적으로 작성할 것인가예요. 예를 들어 어떤 게임을 만들었는데 최신폰조차 렉이 걸려서 플레이를 할 수 없는 상황이 되면 안 되겠죠? 그래서 실제 우리한테 주어진 자원(핸드폰 사양 혹은 컴퓨터 사양)에 맞게 효율적으로 코드를 작성하기 위해서 알고리즘을 공부해야 하는 거죠.
 
그리고 코드를 짜게 되면 실제로 동료들과 같이 일을 하게 되기 때문에 내가 짠 코드들을 다른 사람들도 해독할 수 있어야 합니다. 그런데 이걸 나만 알아볼 수 있다면 문제가 되겠죠? 그래서 코드를 ‘예쁘게’ 작성해야 하고, 이렇게 ‘예쁘게’ 작성하는 방법들을 모아놓은 것이 바로 디자인패턴이에요.
 
추가로 하나 더 말씀드리면요. 어떤 프로그램을 만든다고 했을 때, 그 프로그램에 어떤 기능들을 만들어야 하는지, 실제 프로그램을 만들어 달라고 한 사람의 요구 사항을 잘 분석해서 정리하시는 능력도 필요해요. 이걸 문제 분석이라 하는데, 문제 분석을 잘해야 필요한 코드만 작성하고 불필요한 작업을 하지 않을 수 있습니다.
 
그 외에 참고로 서버 개발자와 클라이언트 개발자 외에 개발자가 게임 쪽에서 일할 수 있는 분야는 웹 개발자, 데이터 분석가, 툴 개발자 등등이 있습니다.
 
그럼 공부 열심히 하셔서 훗날 게임 업계에서 보면 좋겠네요. 더 궁금하신 내용 있으시면 문의 주세요. 파이팅입니다.

같은 직무를 다룬 글
IT개발/데이터
2달 전
인기 있는 글
연구/설계
약 5년 전