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

Come impostazione predefinita, le nostre nuove API trasmettono i pacchetti attraverso la rete di Valve, assicurando la protezione dei giocatori e dei server di gioco. Inoltre, garantiscono prestazioni più elevate e un livello di affidabilità di qualità superiore oltre a supportare anche la connettività UDP. Su github è disponibile una versione open source di questa API.
  • ISteamNetworkingMessages è un'interfaccia di alto livello per l'invio di messaggi a peer arbitrari. Proprio come UDP, nel senso che gli handle di connessione non vengono usati. Bisogna specificare il destinatario del messaggio ogni volta che vuoi inviarne uno, proprio come la funzione socket sendto(). Non è necessario selezionare un peer per essere il "client" e avviare la connessione e il server non deve essere in "ascolto" di connessioni da parte dei client o "accettarle". Entrambi i peer possono inviare messaggi immediatamente. Essendo molto simile a UDP, potrebbe essere l'API più semplice per importare un codice UDP esistente. Tuttavia, a differenza del codice UDP non elaborato, l'API supporta messaggi più grandi di un singolo pacchetto e consegna i messaggi in maniera affidabile. Il traffico viene trasmesso attraverso il backbone di Valve oppure, quando appropriato, viene stabilita una connessione diretta.
  • ISteamNetworkingSockets è un'interfaccia di basso livello dedicata agli handle di connessione utilizzata per inviare e ricevere messaggi.
  • L'API ISteamNetworkingUtils ha varie utilità, inclusi strumenti per stimare il tempo di ping tra host internet arbitrari.
  • steamnetworkingtypes è un'intestazione che ha molti tipi e utilità comuni.
  • Steam Datagram Relay è un servizio per trasmettere il tuo traffico di gioco sul backbone di Valve. Impedisce il rilevamento degli indirizzi IP e in molti casi migliora i tempi di ping e la qualità di connessione. Tutte le connessioni P2P vengono automaticamente trasmesse sul backbone di Valve quando appropriato. Questo documento descrive i passaggi necessari per utilizzare l'SDR per i server di gioco dedicati, in modo da ottimizzare i tempi di ping 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 Sistema di ricerca delle partite e lobby di Steam. A seconda dei tipi di pacchetti, puoi instradare ogni informazione attraverso il giocatore che sta fungendo da ospite (tipicamente il proprietario della lobby) o attraverso il server di gioco, oppure inviare tutte le informazioni 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:

Consulta Esempio di applicazione dell'API di Steamworks (SpaceWar) per vedere degli esempi su come utilizzare ISteamNetworkingSockets per la comunicazione client-server.