Documentación de Steamworks
Conectividad de red de Steam
Tenemos unas pocas API de red diferentes que se pueden utilizar para enviar mensajes entre jugadores.

Nuestras API más recientes transmiten paquetes a través de la red de Valve de forma predeterminada, lo que garantiza que los jugadores y los servidores de juegos estén protegidos. Es de mayor rendimiento y utiliza una capa de fiabilidad de mayor calidad. También es compatible con la conectividad UDP (User Datagram Protocol) normal. Una versión de código abierto está disponible en GitHub.
  • ISteamNetworkingMessages es una interfaz de alto nivel para enviar mensajes a pares arbitrarios. Es como UDP, en el sentido de que no se usan identificadores de conexión. Especificas el destinatario del mensaje cada vez que envías un mensaje, de manera similar a la función de socket sendto(). No hace falta seleccionar un par como "cliente" e iniciar la conexión, y el servidor no tiene que "escuchar" las conexiones del cliente ni "aceptarlas". Cualquiera de las partes puede enviar mensajes inmediatamente. Debido a que es muy similar a UDP, puede que sea la API más sencilla para transferir código UDP existente. Sin embargo, a diferencia de UDP puro, la API admite mensajes más grandes (y no un solo paquete) y los entrega de manera fiable. El tráfico se transmite a través de la red troncal de Valve, o se puede establecer una conexión directa cuando corresponda.
  • ISteamNetworkingSockets es una interfaz de bajo nivel, basada en identificadores de conexión, para enviar y recibir mensajes.
  • ISteamNetworkingUtils tiene diversas utilidades, incluidas herramientas para estimar los tiempos de latencia entre hosts de internet arbitrarios.
  • steamnetworkingtypes es un encabezado que tiene muchas categorías comunes y utilidades.
  • Steam Datagram Relay es un servicio para transmitir el tráfico de tu juego a través de la red troncal de Valve. Esto evita que se revelen las direcciones IP y, en muchos casos, mejora los tiempos de latencia y la calidad de la conexión. Todas las conexiones P2P son transmitidas automáticamente a través de la red troncal de Valve cuando corresponda. Este documento describe lo que debes hacer si deseas usar SDR para servidores de juegos dedicados, optimizar los tiempos de latencia y proteger los servidores de ataques DoS.

ISteamNetworking es una API más antigua y obsoleta. Si la estás usando, considera migrar pronto a una API más reciente, ya que podríamos eliminarla del SDK en una futura versión.

Esta API funciona mejor cuando se usa con Emparejamiento y salas de Steam. Dependiendo de los tipos de paquetes, podría enrutarse todo a través del jugador que actúa como anfitrión (normalmente, el propietario de la sala de espera) o como servidor de juego, o enviar todo directamente a cada jugador.

En relación con esto, hay muchos buenos artículos sobre temas de networking en internet. He aquí algunas recomendaciones:

Consulta Ejemplo de aplicación de la API de Steamworks (Spacewar!) donde encontrarás un ejemplo de cómo usar los ISteamNetworkingSockets para la comunicación entre cliente y servidor.