Q. 게임회사 서버 프로그래머는 어떤일을 하게 되나요?

1

게임회사 서버 프로그래머가 매력적인데, 다른 업종의 서버 프로그래머와는 별도로 더 수행하는 업무가 있는지 궁금합니다

`19.12.04(updated. `19.12.04)

질문 수정 제안

제안 쓰기
2 개의 답변
0
A.

게임 서버는 어떤 역할을 할까?

 

많은 사람들이 한꺼번에 즐기는 게임.

다수의 플레이어들이 한꺼번에 게임을 즐길 수 있도록 

하나로 연결해주는 서버를 구현하고 운영하는 사람입니다.

 

게임 서버 프로그래머의 업무는?

 

오류 없이 안정적으로 수만명의 게임 로직과 데이터를 처리하고 저장합니다.

서버를 모니터링, 관리하며 서버가 다운 될 때를 대비한 안정장치를 개발합니다.

 

일반적으로 게임서버 개발자는 야간 작업이 많습니다.

게임서버에 오류 발생 시 전체 유저가 게임을 할 수 없습니다.

24시간 언제든지 서버에 문제가 생기면 이를 확인하고 해결합니다.

또한, 서버를 중단시켜 서버 점검과 서버 업데이트를 진행합니다.

 

게임에 쓰이는 서버는?

 

리슨 서버 :

 

 

별도의 서버 없이, 플레이를 할 경우 다른 플레이어를 초대하거나

호스팅하는 서버에 같이 접속하면 게임을 할 수 있습니다.

하지만, 게임을 끌 때 서버도 같이 꺼지게 되어서 해당 플레이어가 종료하면

다른 플레이어로 변경해야 한다는 단점이 있습니다.

 

전용서버 :

 

별도의 고성능 네트워크상에 있는 전용 컴퓨터에서 실행됩니다.

보통 특정 회사가 운영하는 대용량 게임 서버입니다.

해당 게임을 개발한 업체나 개발사의 허락을 받은 업체에 의해서만

서버를 실행하고 유지할 수 있습니다.

이런 전용 서버는 불특정한 다수의 플레이어들이 함께 게임을 즐길 수 있도록 합니다.

 

 

 

게임 서버 프로그래머에게 필요한 것

 

프로그래밍 언어를 비롯하여 네트워크, 데이터베이스, 프레임워크 등 필요한 지식이 많습니다.

C언어, C++의 기초부터 프로토타입 게임 서버 제작 

실무에서 일어나는 에러 사례에 대해 대처 방안을 마련하는 연습

물리서버 네트워크 구축 경험 등 실무와 직접적으로 연관된 작업을 경험 하는 것이 중요합니다.

 

`20.01.03
1
A.

우선 게임 서버 프로그래밍이 무엇인지 알아봐야겠죠?

검색사이트에서 이 서버 프로그래밍에 대해 찾아보면 다음과 같습니다.

게임 서버 프로그래밍이란, 온라인 게임의 클라이언트 – 서버 구조에서 서버의 기능을 설계하고 구현하는 기술을 말합니다. 서버는 클라이언트의 버전 별 업데이트, 클라이언트가 서버에 접속해서 게임을 진행하는 절차에 대한 정의, 클라이언트 간의 메시지 중계, 게임 룰 및 비즈니스 로직 구현, 게임기록의 저장 등을 담당합니다. 이를 구현하기 위해 온라인 네트워크 프로그래밍, 안정적인 게임 데이터 처리를 위한 Database 프로그래밍, 대용량 게임을 위한 서버 아키텍쳐, 성능향상을 위한 멀티쓰레드 프로그래밍, 보안 기술 등이 핵심 기술입니다.

 

이런 게임 서버 프로그래밍은 어떤 가치를 가질까요?

초기의 온라인 게임은 한 게임 내에서 소수의 사용자가 참여하는 보드형 게임이나 액션게임이었습니다. 최근에는 점차 다수의 사용자가 동시에 같은 공간에서 게임을 하는 MMORPG나 소셜 게임이 주를 이루고 있습니다.(예를들면 예전에 인터넷이 지금처럼 보급되기전 나왔던 울티마나 둠같은 게임은 혼자서 플레이를 하는것이였죠) 이를 위해서는 클라이언트간의 데이터를 중계하고 제어하는 게임서버의 성능이 매우 중요합니다. 사용자간에 경쟁하거나 협동하여 게임 내 미션을 빠르게 달성하는 것을 즐기는 과정이므로, 사용자들은 그 어떤 서비스보다 빠른 성능과 안정성을 요구하고 있습니다. 그 만큼 게임서버의 아키텍처와 세부기술이 게임의 만족도와 성패를 좌우하는 중요요소입니다.

 

다시말해 서버프로그래머는 게임의 중심으로 수만명의 유저들이 안정적으로 게임을 즐길 수 있도록 도와주는 일을 하게 됩니다. 위에 이야기를 좀 더 쉽게 풀어보면 게임에서 친구정보와 스코어 관리를 통해 랭킹 시스템을 구현할 수도 있고, MMORPG 게임내의 캐릭터 이동과 전투, 퀘스트, 아이템 등을 처리하여 게임의 컨텐츠 로직처리와 가상세계를 구현하는 것이라고 생각하시면 됩니다. 더 쉽게는 이것 덕분에 친구들하고 같이 게임하실 수 있는 것이라 생각하시면 됩니다.

 

 

게임 서버 프로그래머가 알아야 할 지식

서버 구현을 위한 기본적인 언어를 비롯한 네트워크 프로그래밍, 메모리 관리, 멀티쓰레드 개발 및 병렬처리에 대한 지식 등   이를 기반으로 서버 아키텍쳐 설계 및 고급 Database 설계, 보안기술, 시장에 출시된 게임의 서버구조에 대한 사례연구를 할 수 있는 지식. 게임 기획서에 대한 이해

 

기타 관련 지식

**서버플랫폼 : 게임의 클라이언트 - 게임서버 구조에서 게임서버에 필요한 공통컴포넌트를 묶은것

**모바일게임서버플렛폼

- 로그인 서버

- BI지표를 위한 서버

- 프레젠스 서버(유저가 온라인/오프라인의 상태를 관리하는 것)

- 매시업 서버(여러게임의 비즈니스로직을 조합하여 주는 서버)

**TCP : 전송제어 프로토콜

**네트워크프로그래밍

**패킷구조 : 패킷은 데이터의 묶음 단위로 한번에 전송할 데이터의 크기를 나타냄

**언리얼엔진 : 미국의 에픽게임스에서 개발한 3D 게임 엔진. 강력한 그래픽 성능과 편리한 인터페이스등을 장점으로 20여년 전부터 지속적으로 버전업되며 게임엔진 산업을 주도(현재 언리얼 엔진 4) 범용성이 뛰어나며 사용하기 쉬운 툴 제공, 지속적인 업데이트. C, C++ 프로그래밍 이해가 필요

 

`19.12.04

답변달기

답변달기