[게임 서버] 웹 서버와 게임 서버의 차이

Arthur·2023년 8월 23일
1
post-custom-banner

공부하게된 계기


웹 서버와 게임 서버를 둘 다 접해본 상태이고,
현재는 게임 서버 위주로 공부를 하고 있습니다.

공부를 하면서 웹 서버와 게임 서버가 다른 점이 점점 보이게 되었습니다.

웹 서버는 간단하게 보면 HTTP 서버이면 Stateless(무상태) 프로토콜입니다.
그래서 클라이언트가 요청을 보낼 때에만 해당 요청에 맞게 응답을 보냅니다.

반대로 게임 서버는 클라이언트가 요청을 보내지 않아도
서버측에서 클라이언트로 데이터를 전송할 상황이 있습니다.

예를 들면 다른 유저가 채팅을 쳤거나 케릭터를 움직일 때
같은 공간에 있는 다른 유저들애게도 동기화를 해줘야 하기 때문입니다.

이런 차이를 이번의 계기로 공부하게 되면 웹 서버와 게임 서버를 조금 더 알아갈 수 있을 것 같아서
이렇게 글로 작성하게 되었습니다.



웹 서버란?


HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말한다.
<위키피디아 - 웹 서버>

웹 서버는 통상적으로 우리가 자주 접하는 웹 사이트 서비스를 위한 서버입니다.


특징

  • 요청(Request)과 응답(Response) 형태로 데이터를 주고 받습니다.
    • 대부분 클라이언트에서 요청을 보내고 서버에서 요청에 맞는 응답을 전송합니다.
  • Stateless(무상태) 프로토콜을 사용해서 요청과 응답을 주고 받으면 연락이 끊깁니다.
  • HTTP 프로토콜을 사용해서 HTTP Server라고도 부릅니다.
  • HTTP는 양방향 통신이 아닌 단방향 통신 모델입니다.

위와 같은 특징들이 있습니다.

이런 웹 어플리케이션을 개발하기 위해 프레임워크라는 강력한 도구를 사용해서 생산성을 올립니다.
그 중에서 많이 알려진 프레임워크는 스프링 부트(Spring Boot), Django(쟝고), ASP.NET(C#)
등이 있습니다.



게임 서버란?


멀티플레이 비디오 게임을 즐기기 위해 게임 클라이언트에 쓰이는 서버로, 자신의 컴퓨터나 다른 사람의 컴퓨터에서 실행된다.
<위키피디아 - 게임 서버>

  • TCP Server, Binary Server, Stateful Server 라고도 불립니다.
  • 클라이언트가 패킷을 서버에 전송해도 서버에서 응답을 꼭 보내주지 않아도 됩니다.
  • 서버에서 클라이언트로 패킷을 전송할 수 있습니다.
  • 실시간 통신이 중요합니다.

(출처 - NC소프트 리니지 리마스터)

여기서 실시간 통신이 중요한 게임 서버의 예로 멀티플레이 MMORPG를 들 수 있습니다.

다수의 사용자가 특정 구역에 모여서 채팅을 하거나 사냥을 합니다.
한 명의 유저가 케릭터를 움직이면 다른 유저에게도 동일하게 움직이듯이 보이게 해야 합니다.


그래서 한 명의 유저가 움직이거나 행동한 것을 다수의 유저에게 전송해줘야 합니다.

이런 차이점 때문에 게임 서버는 실시간 통신의 중요성이 더 높습니다.



비동기 온라인 게임서버


웹 서버로만 구축된 게임은 해당 회사의 아키텍처를 확인하지 않는 이상 모를 것 같습니다.
하지만 웹 서버의 비율이 꽤나 높을 것 같은 게임들이 있습니다.

그리고 이런 웹 서버 시스템의 비중이 높은 게임들의 장르를 SNG 게임이라고 합니다.

SNG 게임

소셜 네트워크 게임(Social Network Game) 장르는 페이스북과 같은 소셜 네트워크 서비스 플랫폼 기반으로, 사용자의 온라인 인맥과 유대관계를 증진하기 위해 사용자 참여 및 관계 맺기를 극대화한 새로운 형태의 사회적 인맥 기반의 게임입니다.

SNG 장르의 게임의 예로는
타이니팜, 롤더스카이, 레알팜, 클래시 오브 클랜이 있습니다.

이런 게임들은 수집형 게임의 형태를 띄우는 경우가 많습니다.
아이템을 수집해서 해당 아이템을 조합해서 전투를 합니다.

대부분 전투는 자동으로 진행되거나 실시간으로 게임 스킬을 주고 받지 않습니다.



참고 자료


  • 인프런 강의 - [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버 => 링크
  • 실시간 웹 통신 방식 정리 => 링크
  • 크래프톤(FRAFTON) - SNG 장르 게임, 대체 왜 하는 거야? => 링크
profile
기술에 대한 고민과 배운 것을 회고하는 게임 서버 개발자의 블로그입니다.
post-custom-banner

0개의 댓글