게임 서버

1 개요

파일:SzcN4ZN.png
항상 이렇게 되는 것 습관적으로 X를 눌러버렸다 배틀필드 한두번합니까

게임 서버(Game server)란 인터넷 상에서 여러 플레이어가 같이 게임을 할 수 있게 하기 위한 프로그램이나 해당 프로그램을 기동중인 컴퓨터를 말한다. 호스트가 누가 되느냐를 기준으로 분류하면 데디케이티드 서버리슨 서버, Peer to peer로 나눌 수 있다.

2 로컬 플레이의 연장

고전적 멀티 플레이의 의미로, 오락실의 2인용 같은 개념을 PC에서는 원거리 접속으로 대신하곤 했다. 플레이어 어느 한 쪽이 호스트를 맡아, 다른 플레이어의 접속을 받아들여 끼리끼리 플레이하는 방식으로, 스타크래프트워크래프트 등의 게임에 존재한 '모뎀 플레이' 같은 것들이 그러했다. 이러한 방식은 당연히 모뎀의 경우 1:1 연결, 네트워크의 경우 국지적인 네트워크로 한정되어 진정한 의미의 온라인 게임 플레이라 보기는 어렵다.

만일 호스트 컴퓨터에 문제가 생긴다면 그 게임 전체가 끝날 수 있고, 클라이언트만 다운된다면 그 사람만 튕겨 나갈 수도 있다. 후자는 프로그램 구현도에 따라 다르다. 주로 게임 결과가 영속적이지 못하다.

스타크래프트 2, 디아블로 3부터는 이런 방식의 멀티플레이를 허가하지 않는 방침을 세웠다.

3 원격 플레이어의 중계

배틀넷 같은 경우가 이런 케이스가 된다. 한 곳에서 커다란 '로비'를 열어, 통일된 프로토콜로 접속하기만 하면 각자의 네트워크 계층이 달라도 한 곳에 모여 게임을 즐길 수 있게 해 준 것이다. 물론 이 경우에도 호스트는 존재하고 배틀넷 서버는 이들을 그저 중계만 해 주는 존재였다. 비슷한 경우로는 msn game zone 같은 것이 이런 것이다.

그러나 이런 서버들은 초기 중계만 해 주었던 역할에서, 보안에 취약하여 치트를 하는 사용자들이 늘어나자 - 대표적으로 맵핵 - 이를 막는 기능들을 추가하는 식으로 점점 고도화되었다.

4 온라인 게임에서의 게임 서버

진정한 의미의 온라인 게임 서버는 게임의 연산을 원격지의 호스트가 모두 관리하며 그 내용도 저장하게 된다. 그래서 게임을 실패해도 리셋하고 다시 하는 방법 등의 일체 통하지 않는다. 이런 온라인 게임은 돈을 내고 게임을 빌려서 한다는 개념이며 서버 또한 게임 프로그램의 일부, 아니 대부분을 차지한다.

초기의 게임 서버는 대충 어리숙하게 만들어서 게임의 내용을 로컬에 저장했다가 해커들에게 털려서 각종 핵에 몸서리 치는 일도 많았다. 요즘은 기술이 많이 발전했지만, 항상 해커들의 해킹 시도에 노출되어 있다.

게임 서버는 24시간 돌아가며, 수천명 (대략 1서버 pc에 4-5천명 정도) 이 동시에 붙어서 게임을 하게 되는데 이정도 사용자들이 동시에 게임을 하기 위해서는 엄청난 연산이 필요하다. 5천명의 유저가 한 발자국씩 걸을 때 마다 서버에 신호가 밀리세컨드 단위로 온다고 생각을 해보라. 이를 위해 서버는 항상 병렬분산처리를 하게 된다. 서버 이외에 흔히 볼 수 있는 '채널'이라는게 존재하는 이유가 바로 그것이다. 단순히 1개 서버라도 그것을 유지하기 위해서는 수 대의 보조 pc들이 필요하다. 병렬 분산 처리라는 이름에 맞게 GPGPU를 사용하는 게임서버도 있다. 대표적으로 GeForce GTX를 사용하는 넥슨 게임서버가 있다.

그리고 저렇게 유저가 신호를 보내며 발생시키는 트래픽은 전부 '비용' 으로 되돌아온다. 유저들이 접속하고, 걷기만 해도 그 신호는 전부 접속비로 누군가는 비용을 부담해야 한다. 월 정액 게임이라면 유저가 일정 부분을 낸다고 볼 수 있겠지만 부분유료화 게임이라면? 게임 회사는 정말 엄청난 도박을 하고 있는 것이다.

일반적인 온라인 게임은 게임 개발사 혹은 퍼블리셔만이 직접 서버를 띄워서 운영한다. 그리고 게임 플레이어는 직접 서버를 띄우는 것이 기술적으로도, 법적으로도 불가능하다.[1][2]

게임 서버는 호스트와 달리 다운될 경우 게임을 하던 사람들이 몽땅 털려나가 버린다. 심지어 전세계 혹은 일부 국가 내의 PC방에서 게임하던 사람들까지 모두 털려나간다. 이때 사람들은 게임 속 주인공처럼 폭력적으로 변해버린다.

따라서 게임 서버는 첫째도 안정, 둘째도 안정, 셋째도 안정이 중요하다. 소스가 복잡해지고 스파게티 코드가 되어도 일단 상용화가 시작하면 무서워서 소스 손 못댄다. 심지어 마법 나오는 게임에서 법사가 서버를 뻑내면 법사 직업을 막아야 할 지경. 이런 마당에 맵이랑 퀘스트까지 싹 엎어버리는 월드 오브 워크래프트 대격변은 완전 깜놀.

게임 서버 운영 비용도 만만찮다. 소문에 의하면 리니지 서버 유지비가 일년에 백억원에 육박한다고 하며, 월드 오브 워크래프트는 서버 유지비로 하루에 1억 6천만원이 사용된다. 접속자가 적은 비인기 게임도 서버 유지 비용만 한 달에 최소 5백에서 1천만원은 그냥 나간다. CBT니 OBT니 하는 기간동안은 수익도 없고... 하지만 클로저스그런 거 없다

온라인 게임 초창기에는 서버당 컴퓨터 한 대만 사용하는 일이 많았지만, 시간이 지나면서 컴퓨터 한 대 만으로는 용량을 감당하지 못하는 경우가 많아졌기 때문에 요즘은 컴퓨터 여러 대를 사용하여 서버 하나를 두는 경우가 많다. 아무리 작은 온라인 게임이라도 메인 서버와 DB 서버는 따로 구분하고, 여기서 더 세분화되면 채팅 서버, 존 서버 등등 기하급수적으로 늘어난다. 큰 규모의 온라인 게임이라면 한 개의 서버 당 열 개에 가까운 컴퓨터로 구성되는 경우도 있다. 게임사가 서버 하드웨어를 직접 관리하는 것도 어렵기 때문에 IDC를 이용하는데, 서버가 많을수록 여기에 서버를 두는 공간 임대비용(코로케이션)도 기하급수적으로 올라간다. 거기다가 패킷이 실시간으로 오가기 때문에 트래픽이 대단히 많아서, 다른 고객과 회선을 공유해서 사용할 수 없다. 별 수 없이 단독으로 회선을 써야 하는데, 이럴 경우 회선 이용료도 안드로메다로 간다. 서버 유지비가 저렇게 많이 들어가는 이유는 이것.

블리자드에선 오래된 월드 오브 워크래프트 서버를 경매에 부치기도 했다.#

5 게임 서버 프로그래머

게임 회사에서 일반 프로그래머도 프로그래머지만, 특히 게임 서버 프로그래머는 깡패다. 아무리 좋은 게임 시스템이라도 게임 서버 프로그래머가 못 만든다고 하면 진짜로 못 만드는거다. 그래서 기획자와 자주 싸운다 서버 다 죽겠다, 이놈들아!클로즈드 베타 테스트 및 오픈 베타 테스트를 시작하면 게임 사용자들은 "얘네들은 이따위로 서비스 열어놓고 집에서 쳐 잠이나 자냐?"라고 생각하기 십상인데, 사실은 그 반대. 서버 연 날부터 서버 프로그래머는 일주일간 집에는 다 갔다고 보면 된다. 회사입장에서도 서비스 장애가 생겨서 점검에 돌입하면 매출도 나오지 않고 점검시간에 비례해서 손해를 보기 때문에 빨리 문제를 찾아서 해결해야하는 책임을 서버 프로그래머가 지게된다. 사장님이 버그 잡는데 뒤에서 몽둥이들고 지켜본다 카더라 서버 열면 욕이란 욕은 다 듣는 고달픈 직종이다.

게임 서버 프로그래머는 클라이언트 프로그래머와 달리 사람들에게 보여주는게 없어야 한다. 쿠로코 서버 프로그래머의 존재감은 고작 랙 아니면 섭다 뿐이다.[3]

한국의 게임 서버 개발 기술과 경험은 세계 최고다.[4] 하지만 클라이언트를 괴랄하게 만들어서 그렇지만 넥슨 등 소수 대형 회사에만 종속된 기술일 뿐이다. 그렇다고 거기서 소스 빼갖고 와서 게임 만드는 것은 위험천만. 프라우드넷같은 게임 서버용 엔진을 구매해서 게임을 개발하는 안전책도 있다.

여담이지만, 멀티플레이를 싫어하는 서버 프로그래머도 많다(...). 게임 서버 프로그래머쯤 되면 대개 게임을 좋아하기는 하지만, 좋아한다는 게 꼭 잘한다는 뜻은 아니니까. 사실 이건 QA를 제외한 대부분의 게임개발 분야에 해당하는 이야기이기도 하다. 자기가 만든 게임에서 유저에게 일방적으로 학살당하고 있다 보면 직업에 대한 회의감이 몰려들 때도 있다(...).

6 게임 서버 운영자

게임 플레이어들은 운영자(GM)들이 게임 서비스와 관련된 모든 업무를 한다고 믿지만, 실상은 그렇지 않다. 버그 패치나 서비스 안정화, 밸런싱, 컨텐츠 업데이트 등은 운영자 뒤에서 활동하는 게임 개발자들의 몫이며 운영자는 그들의 창구다. 운영자 개인이 정책이나 밸런싱을 함부로 손 댈 권한은 없다. 아니 이건 회사에 따라 다른...
  1. 방을 만들어 플레이하는 일부 게임의 경우 서버 자체로는 기술적인 한계가 있어서 방을 만든 사람이 클라이언트 자체적으로 서버를 세우는 격이 되는데 이쪽은 또 다르다.
  2. 프리서버는 기술적 결함을 뚫고 만들어진 사설 서버이지만, 사실상 불법 행위이다. 망해서 닫은 게임의 서버를 돌리려면 껍데기인 클라이언트 만으로는 불가능하고, 서버 코드 자체를 어떻게든 가져오거나 유저들이 맨 바닥에서부터 직접 짜올리는 수 밖에 없다.
  3. 물론, 서버 관리 팀이 소스를 헤집어 간이 배 밖으로 나오는 짓을 하는데 서버 안정성이 강화돼서 유저들에게 찬사를 듣는 경우도 있다. 해당 게임이 2011년 중순에 온갖 욕을 먹을 당시, 서버 최적화 전담팀이 발표하는 소스 코드 최적화 뉴스가 유일한 낙이었던 시절도 있었다.
  4. 이제는 중국이 세계 최고라는 설도 있다.