Documentazione di Steamworks
Rete di Steam
Abbiamo svariate API di rete che possono essere utilizzate per inviare messaggi tra i giocatori.

Le nostre API più recenti trasmettono i pacchetti attraverso la rete di Valve come impostazione predefinita, assicurando la protezione dei giocatori e dei server di gioco. Queste API garantiscono inoltre prestazioni più elevate e un livello di affidabilità superiore, oltre a supportare la connettività UDP. Su github è disponibile una versione open source.
  • ISteamNetworkingMessages è un'interfaccia di alto livello per l'invio di messaggi a peer arbitrari. Funziona come UDP, nel senso che gli handle di connessione non vengono usati. Basterà specificare un destinatario ogni volta che vuoi inviare un messaggio, proprio come per la funzione sendto() dei socket. Non è necessario eleggere un peer a "client" per avviare la connessione e il server non deve essere in "ascolto" o "accettare" connessioni da parte dei client. Entrambi i peer possono inviare messaggi immediatamente. Essendo molto simile a UDP, questa potrebbe essere l'API più facile da usare se vuoi riutilizzare codice UDP già esistente. Tuttavia, a differenza del protocollo UDP di base, l'API consente l'invio di messaggi più grandi di un singolo pacchetto e consegna i messaggi in modo affidabile. Il traffico viene trasmesso attraverso la backbone di Valve o viene stabilita una connessione diretta quando opportuno.
  • ISteamNetworkingSockets è un'interfaccia di basso livello che utilizza gli handle di connessione per l'invio e la ricezione di messaggi.
  • ISteamNetworkingUtils contiene diversi strumenti utili, ad esempio per stimare la latenza tra due host su internet.
  • steamnetworkingtypes è un header con diverse tipologie e strumenti utili.
  • Steam Datagram Relay è un servizio per trasmettere il tuo traffico di gioco sulla backbone di Valve. Ciò impedisce il rilevamento degli indirizzi IP e in molti casi migliora la latenza e la qualità di connessione. Tutte le connessioni P2P vengono automaticamente trasmesse sulla backbone di Valve quando opportuno. Questo documento descrive i passaggi necessari per utilizzare l'SDR per i server di gioco dedicati, così da ottimizzare la latenza e proteggere i server da attacchi DoS.

ISteamNetworking è una vecchia API non più in uso. Se la stai usando, ti conviene passare al più presto a un'API più recente, poiché potremmo rimuoverla dall'SDK in un prossimo aggiornamento.

Questa API funziona al meglio se utilizzata con il Matchmaking e lobby di Steam. A seconda del tipo dei pacchetti, è possibile instradare tutti i dati attraverso il server di gioco o il giocatore che funge da host (tipicamente il proprietario della lobby), oppure inviare tutto in modo diretto a ciascun giocatore.

Su internet sono presenti numerosi articoli interessanti sui vari argomenti relativi alla connessione di rete. Ecco alcuni di quelli da noi consigliati:

L'articolo Esempio di applicazione dell'API di Steamworks (SpaceWar) illustra un esempio di utilizzo dell'API ISteamNetworkingSockets per la comunicazione client-server.