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

Por predefinição, as nossas APIs mais recentes retransmitem pacotes de dados através da rede da Valve, o que garante a proteção dos jogadores e de servidores de jogos. Estas APIs têm um desempenho melhor, usam uma camada de fiabilidade de maior qualidade e são compatíveis com conectividade UDP normal. Uma versão open-source está disponível no GitHub.
  • ISteamNetworkingMessages é uma interface de alto nível concebida para enviar mensagens a qualquer peer. Funciona como UDP, já que handles de ligação não são usados. Você especifica o destinatário sempre que enviar uma mensagem, tal como na função de socket sendto(). Não é necessário selecionar um peer para ser o "cliente" e iniciar a ligação, e o servidor não precisa de ficar à "escuta" de ligações de clientes nem de as "aceitar". Cada peer pode enviar mensagens de imediato. Como é muito semelhante a UDP, esta pode ser a API mais fácil de usar se quiser reutilizar código UDP existente. Porém, ao contrário de UDP básico, esta API permite não só o envio de mensagens maiores do que um único pacote de dados como também a entrega fiável de mensagens. O tráfego é retransmitido pelo back‑end da Valve ou uma ligação direta pode ser estabelecida, quando apropriado.
  • ISteamNetworkingSockets é uma interface de nível mais baixo, orientada por handles de ligação, concebida para envio e receção de mensagens.
  • ISteamNetworkingUtils tem diversos utilitários, incluindo ferramentas para estimar a latência entre anfitriões na internet.
  • steamnetworkingtypes é um cabeçalho com diversos utilitários e tipos comuns.
  • O Steam Datagram Relay (SDR) é um serviço que retransmite o tráfego do jogo pelo back‑end da Valve. Isto impede endereços IP de serem revelados e, em muitos casos, reduz a latência e aumenta a qualidade da ligação. Todas as ligações P2P são retransmitidas automaticamente pelo back‑end da Valve quando apropriado. Este documento descreve o que é necessário fazer caso pretenda usar o SDR em jogos com servidores dedicados para reduzir a latência e proteger os servidores contra ataques DoS.

ISteamNetworking é uma API mais antiga que é considerada obsoleta. Se ainda a estiver a usar, considere migrar para uma API mais recente em breve, já que a poderemos remover do SDK numa versão futura.

Esta API funciona melhor quando usada com Matchmaking e lobbies do Steam. Dependendo dos tipos de pacotes, pode encaminhar tudo através do servidor ou do jogador anfitrião (normalmente o líder do lobby) ou enviar tudo diretamente para cada jogador.

Por último, existem vários artigos úteis sobre diversos temas de rede na internet. Seguem-se algumas recomendações nossas:

No artigo Steamworks API Example Application (SpaceWar) está disponível um exemplo de utilização da API ISteamNetworkingSockets para comunicação cliente-servidor.