Steamworks 문서
Steam 네트워킹
플레이어 간에 메시지를 전송하는 데 사용할 수 있는 몇 가지 네트워킹 API가 있습니다.

저희의 새로운 API는 기본적으로 Valve 네트워크를 통해 패킷을 릴레이하므로 플레이어와 게임 서버가 보호됩니다. 이 고성능 API는 고품질의 안정적인 레이어를 사용합니다. 또한 일반 UDP 연결도 지원합니다. 오픈 소스 버전은 github에서 사용 가능합니다.
  • ISteamNetworkingMessages는 임의의 피어로 메시지를 전송하기 위한 하이레벨 인터페이스입니다. 이 인터페이스는 연결 핸들이 사용되지 않는다는 점에서 UDP와 유사합니다. sendto() 소켓 함수와 유사하게, 메시지를 보낼 때마다 메시지 수신자를 지정해야 합니다. 하나의 피어를 '클라이언트'로 선택하여 연결을 시작할 필요가 없으며, 서버는 클라이언트의 연결을 '대기'하거나 '수락'할 필요가 없습니다. 두 피어 모두 메시지를 바로 보낼 수 있습니다. UDP와 매우 유사하기 때문에, API에서 UDP 코드가 존재하는 포트에 전달하는 게 가장 간편할 것입니다. 하지만 원시 UDP와는 다르게 API는 하나의 패킷보다 더 많은 메시지를 지원하고 또한 안정적으로 메시지를 전달합니다. 트래픽은 Valve의 백본을 통해 릴레이되거나 적절한 경우 직접 연결할 수 있습니다.
  • ISteamNetworkingSockets는 메시지 송수신을 위한 하위 레벨의 연결 핸들 중심의 인터페이스입니다.
  • ISteamNetworkingUtils에는 임의의 인터넷 호스트 간의 핑을 추정할 수 있는 도구를 포함한 기타 유틸리티가 있습니다.
  • steamnetworkingtypes는 여러 공통 유형 및 유틸리티가 있는 헤더입니다.
  • Steam 데이터그램 릴레이는 Valve 백본에 게임 트래픽을 릴레이하는 서비스입니다. 이를 통해 IP 주소 노출을 방지하고, 여러 경우 핑 시간과 연결 품질을 개선할 수 있습니다. 모든 P2P 연결은 적절할 경우 Valve 백본에 자동으로 릴레이됩니다. 본 문서는 전용 서버 게임에 SDR을 사용하여 핑 시간을 최적화하고 DoS 공격으로부터 서버를 보호하기 위해 어떤 작업을 수행해야 하는지 설명합니다.

ISteamNetworking는 오래된, 사용이 중단된 API입니다. 향후 출시될 SDK에서 이 API를 제거할 수도 있으므로, 이 API를 사용 중이라면 새로운 API로 옮기시기를 권장해 드립니다.

이 API는 Steam 매치메이킹 및 로비와 함께 사용할 때 가장 효과적입니다. 패킷 유형에 따라 호스트(보통 로비 주인) 또는 게임 서버 역할을 하는 플레이어를 통해 모든 요소의 경로를 지정하거나, 각 플레이어에게 직접 모두 전송할 수 있습니다.

인터넷에는 네트워크에 관한 다양한 주제의 좋은 글이 많습니다. 다음은 그중 저희가 추천해 드리는 글입니다.

클라이언트 서버와의 통신에 대한 ISteamNetworkingSockets 사용 예시는 Steamworks API Example Application (SpaceWar) 문서를 참고해 주세요.