게임 서버

Game server

게임 서버(호스트라고도 함)는 멀티플레이어 비디오 게임에서 이벤트의 권위 있는 소스인 서버입니다.서버는 내부 상태에 대한 충분한 데이터를 전송하여 연결된 클라이언트가 플레이어에 표시할 수 있도록 게임 월드의 정확한 버전을 유지할 수 있도록 합니다.또한 각 플레이어의 입력을 받아 처리합니다.

종류들

전용 서버

전용 서버는 관리에 필요한 경우를 제외하고 직접 입력 또는 출력을 지원하지 않고 게임 세계를 시뮬레이션합니다.플레이어는 게임을 [1][2]보고 상호 작용하기 위해 별도의 클라이언트 프로그램으로 서버에 연결해야 합니다.

전용 서버의 가장 큰 장점은 프로페셔널 데이터 센터에서의 호스팅에 적합하고 신뢰성과 퍼포먼스의 이점을 모두 얻을 수 있다는 것입니다.또, 리모트 호스팅에 의해서, 같은 머신 또는 로컬 [1]네트워크로부터 서버를 호스트 해 접속하는 모든 플레이어가 가지고 있던, 짧은 레이텐시의 메리트가 없어집니다.

그러나 전용 서버를 가동하려면 비용이 많이 듭니다.때로는 게임 개발자나 클랜 그룹비용을 부담하기도 하지만, 어느 경우든 대중은 접속할 서버를 제공하는 서드파티에 의존합니다.이 때문에 전용 서버를 사용하는 대부분의 게임에서는 리스닝 서버도 지원됩니다.[1]이러한 게임의 플레이어는 종종 자신의 하드웨어에서 서버 인스턴스를 호스팅하거나 게임 서버 호스팅 프로바이더에서 대여하여 일반인과 그 가족을 위해 서버를 호스팅합니다.

리슨 서버

Listen 서버는 게임 클라이언트와 동일한 프로세스로 실행됩니다.그 외에는 전용 서버와 같은 기능을 하지만 일반적으로 호스팅 플레이어의 가정용 인터넷 연결을 통해 원격 플레이어와 통신해야 하는 단점이 있습니다.서버를 실행하고 있는 머신에서도 출력 이미지가 생성되어 있기 때문에 퍼포먼스도 저하됩니다.게다가 리스닝 서버는, 직접 플레이하는 모든 유저에게, 다른 유저보다 큰 레이텐시 우위성을 부여해, 그 유저가 게임을 [1][3]종료하면, 존재하지 않게 됩니다.

단, 리스닝 서버는 기본적으로 무료이며 특별한 인프라스트럭처나 향후 셋업 계획이 필요하지 않다는 장점이 있기 때문에 지연이나 대역폭 문제가 우려되지 않는 LAN 파티에서는 일반적으로 사용됩니다.콘솔 게임에서도 흔히 볼 수 있습니다.

호스트 이행

수신 대기 서버 배열에서는 "호스트 마이그레이션"이 유용한 기능입니다.호스트의 이행이 없으면, 현재 호스트 하고 있는 플레이어가 어떠한 이유(종료, 크래시, 네트워크 접속 끊김 등)로 접속이 끊어지면, 현재의 서버의 기능이 정지해, 게임 플레이가 종료합니다.호스트 마이그레이션 기능을 사용하면 다른 플레이어 중 하나가 새 호스트로 지정되므로 게임을 계속할 수 있습니다.

피어 투 피어

이 문서의 다른 부분에서 설명한 클라이언트/서버 모델에서는 클라이언트는 서버로부터 처리된 데이터를 수신하여 아무 생각 없이 표시합니다.대체의 「피어 투 피어」모델에서는, 서버는 없습니다.각 「피어」는 대신에, 서로의 원시 입력 스트림을 수신해,[4] 결과 자체를 결정합니다.

일반적으로 P2P는 액션 게임에서는 사용되지 않는 것으로 여겨지지만, 토큰 수가 많고 플레이어 수가 적은 게임에는 적합하기 때문에 실시간 전략 장르에서는 여전히 일반적이다.1000명의 위치를 계속 전송하는 것이 아니라 1000명의 병력을 선발하고 이를 지휘하는 플레이어가 [4]이동 명령을 내렸다는 사실을 일회성으로 전송할 수 있다.

다만, 피어 투 피어에는 많은 [4]단점이 있습니다.

  • 모든 피어(peer)를 동기 상태로 유지하는 것은 매우 어렵습니다.동료들 간의 미세한 차이는 시간이 지남에 따라 더욱 심해져 게임을 깨는 역설로 이어질 수 있습니다.
  • 게임을 통해 중간에 새로운 동료가 합류하는 것을 지원하는 것은 매우 어렵습니다.
  • 각 피어는 다른 모든 피어와 통신해야 하며 연결된 플레이어의 수가 제한됩니다.
  • 각 피어는 다음 "네트워크 프레임"을 시뮬레이션하기 전에 다른 모든 피어의 메시지를 기다려야 합니다. 따라서 모든 플레이어는 연결이 가장 나쁜 플레이어와 동일한 지연을 경험합니다.

리스닝 피어

복수의 리스닝 서버가, 리스닝 피어 설정을 위해서, 집단으로 피어링 합니다.이 설정은, 모든 클라이언트간의 피어 투 피어 통신의 단점을 회피해,[citation needed] 클라이언트수의 증가를 위해서 전용 서버를 대체하는 것이 좋습니다.

틱레이트

게임 서버가 시뮬레이션 단계를 실행하는 속도를 일반적으로 "티크레이트"라고 합니다."tick"은 각 시뮬레이션 스텝과 관련된 수치로,[5] 클라이언트에게 브로드캐스트되어 서버와의 동기화를 지원합니다.

서버 시뮬레이션 스텝의 빈도를 미리 정의된 틱환율로 제한해야 하는 이유는 서버 및 클라이언트 대역폭 절약, 서버 CPU 시간 절약, 각 틱 사이에 경과된 시간 확인 등 3가지입니다.서버로부터의 네트워크 갱신이 다른 간격으로 도착하거나 순서가 [5]잘못될 수 있기 때문에 마지막 포인트는 인터넷 게임에 중요합니다.

커스터마이즈

서버, 특히 PC 게임의 서버는 일반적으로 변경되지 않은 클라이언트가 서버에 접속할 수 있도록 커스터마이즈할 수 있습니다.이러한 커스터마이즈에는, 빌트인 게임 설정의 변경, 게임에 [6]참가했을 때에 클라이언트에 의해서 다운로드 되는 컨텐츠, 및 서버의 [7]동작 방법을 변경하는 새로운 코드가 포함됩니다.

서버의 커스터마이즈는 서버 관리자나 플레이어에게 인기가 있습니다만,[8][9] 게임을 의도한 대로 체험하고 싶은 개발자나 다른 플레이어의 요구와 상충하는 경우가 있습니다.또한 악의적인 관리자가 서버가 제공하는 [10]정보에 대해 거짓말을 하도록 함으로써 플레이어를 화나게 할 수도 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c d Weilbacher, Michael (March 2012). "Dedicated Servers in Gears of War 3: Scaling to Millions of Players". GDC 2012. GDC Vault.
  2. ^ Bernier, Yahn (2001). "Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization". Valve. Retrieved 17 September 2011.
  3. ^ "Mammoth Dedicated Server Guide Installation (Computer Programs) Server (Computing)". Scribd. Retrieved 16 February 2020.
  4. ^ a b c Fiedler, Glenn (24 January 2010). "What every programmer needs to know about game networking".
  5. ^ a b "Source Multiplayer Networking". Valve Developer Community. Retrieved 13 February 2013.
  6. ^ "HTTP Fast Download". Steam Support. Valve. Retrieved 5 May 2012.
  7. ^ "Server Plugins". Valve Developer Community. Valve. Retrieved 5 May 2012.
  8. ^ Bowling, Robert (21 October 2009). "Modern Warfare 2 For PC". Archived from the original on 21 October 2009.
  9. ^ Denton, Jon (July 4, 2012). "Battlefield 3: How Fan-Run Servers Are Ruining DICE's Game". Eurogamer.
  10. ^ Walker, Robin (12 March 2009). "And that's what ye git fer toochin that!". Team Fortress 2 Blog. Valve.