Documentação do Steamworks
Comunicação de rede no Steam
Temos algumas APIs de rede diferentes que podem ser usadas para enviar mensagens entre jogadores.

As nossas APIs mais novas retransmitem pacotes através da rede da Valve por padrão, garantindo a proteção de jogadores e servidores de jogos. Estas APIs têm melhor desempenho, usam uma camada de confiabilidade com melhor qualidade e também são compatíveis com conectividade UDP tradicional. Uma versão de código aberto está disponível no GitHub.
  • ISteamNetworkingMessages é uma interface de alto nível para enviar mensagens a pares quaisquer. Ela funciona como UDP, já que handles de conexão não são usados. Você especifica o destinatário sempre que enviar uma nova mensagem, assim como na função de soquetes sendto(). Você não precisa escolher um par para ser o "cliente" e iniciar a conexão, e o servidor não precisa ficar "na escuta" de conexões de clientes ou mesmo "aceitar" tais conexões. Qualquer lado pode enviar mensagens imediatamente. Devido às semelhanças com UDP, esta API talvez seja a mais fácil de usar se já tiver código UDP para substituir. Contudo, diferentemente de UDP, esta API permite o envio de mensagens maiores que um único pacote e a entrega confiável de mensagens. O tráfego é retransmitido pelo backbone da Valve ou uma conexão direta pode ser estabelecida, quando apropriado;
  • ISteamNetworkingSocketsé uma interface de baixo nível orientada por handles de conexão para envio e recebimento de mensagens;
  • ISteamNetworkingUtils contém utilitários diversos, incluindo ferramentas para estimar a latência entre dois pontos na internet;
  • steamnetworkingtypes é um cabeçalho com tipos e utilitários diversos;
  • A rede de retransmissão de datagramas do Steam (SDR) é um serviço para retransmitir o tráfego do jogo pelo backbone da Valve. Isso impede que endereços IP sejam revelados e, em muitos casos, reduz a latência e aumenta a qualidade da conexão. Todas as conexões ponto a ponto (P2P) são retransmitidas automaticamente pelo backbone da Valve quando apropriado. Este documento descreve o que você precisa fazer para usar a SDR em jogos que usam servidores dedicados para reduzir a latência e proteger os servidores de ataques de negação de serviço (DoS).

ISteamNetworking é uma API mais antiga e em desuso. Caso a esteja usando, considere migrar para uma nova API em breve, já que podemos removê-la do SDK em uma versão futura.

A API funciona melhor quando usada com Criação de partidas e salas no Steam; dependendo dos tipos de pacote, é possível rotear tudo pelo jogador anfitrião (tipicamente o dono da sala) ou servidor, ou então enviar tudo diretamente para cada jogador.

Há vários artigos sobre vários tópicos de rede internet afora. Algumas recomendações nossas (em inglês):

Consulte o Aplicativo de exemplo da API do Steamworks (SpaceWar) para ver como usar a API ISteamNetworkingSockets para comunicação cliente-servidor.