게임 서버 프로그래머는 무엇을 할까?[직무탐방_#7]

  • 17,825
  • 0
  • 1


(게임을 하는것은 재밌는데.. 저걸 만든다고 생각하면? 어후!!!! 딱봐도 쉽지 않겠죠?)

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

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

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


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

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


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



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

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


기타 관련 지식

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

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

- 로그인 서버

- BI지표를 위한 서버

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

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

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

**네트워크프로그래밍

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

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


`17.03.07(updated. `17.03.08)