Come funzionano i server di gioco online

Un

server

di

gioco (a volte indicato anche come host ) è un server che è la fonte autorevole degli eventi in un videogioco multiplayer. Il server trasmette dati sufficienti sul suo stato interno per consentire ai client connessi di mantenere la propria versione accurata del mondo di gioco per la visualizzazione ai giocatori. Inoltre, ricevono ed elaborano l'input di ciascun giocatore.

Tipi

Server dedicato

I server dedicati simulano mondi di gioco senza supportare l'input o l'output diretto, ad eccezione di quello necessario per la loro amministrazione. I giocatori devono connettersi al server con programmi client separati per poter vedere e interagire con il gioco. [1] [2]

Il vantaggio principale dei server dedicati è la loro idoneità per l'hosting in data center professionali, con tutti i vantaggi in termini di affidabilità e prestazioni che ciò comporta. L'hosting remoto elimina anche il vantaggio della bassa latenza che altrimenti sarebbe detenuto da qualsiasi giocatore che ospita e si connette a un server dalla stessa macchina o rete locale. [1]

Il costo per gestire i server dedicati è a volte sostenuto dagli sviluppatori di un gioco (in particolare su console) e talvolta dai gruppi di clan, ma in entrambi i casi, il pubblico dipende da terze parti che forniscono server a cui connettersi. Per questo motivo, la maggior parte dei giochi che utilizzano server dedicati fornisce anche il supporto del server di ascolto. [1] I giocatori di questi giochi spesso ospitano server per il pubblico e i loro clan, ospitando un'istanza del server dal proprio hardware o noleggiando da un provider di hosting di server di gioco.

Componenti di un server di gioco dedicato

Un server di gioco dedicato è essenzialmente simile a qualsiasi altro server di gioco moderno computer nei suoi componenti fisici. In genere utilizzano parti tipiche orientate ai server per la maggior parte dei loro componenti, ad eccezione della CPU: schede madri, memoria, archiviazione e così via. Poiché le prestazioni dei server di gioco sono in genere limitate da una manciata di processi chiave che si parallelizzano male, i server dedicati per i giochi moderni utilizzano comunemente CPU consumer di fascia alta per le loro prestazioni a thread singolo molto elevate, con ogni macchina che esegue poche o anche solo un'istanza.

I

server di gioco dedicati sono spesso affittati da un provider di hosting; per i giochi meno impegnativi o quelli con un numero inferiore di giocatori, quando i requisiti di prestazioni a thread singolo non sono più ai limiti estremi della tecnologia attuale, un singolo server fisico può ospitare dozzine o centinaia di istanze. Questi vengono eseguiti su hardware tipico del server di calcolo, tra cui una CPU manycore e una capacità di memoria molto elevata. Nella maggior parte dei casi in ogni caso, vengono noleggiati per istanza, con le tariffe che dipendono dal numero di core della CPU e dalla quantità di memoria e spazio di archiviazione necessari per ogni istanza. Ciò consente tariffe molto convenienti per i clan o i privati che hanno bisogno solo di una manciata di istanze e consente agli editori di scalare il numero di server con il numero di giocatori attualmente attivi, pagando solo per le risorse di cui hanno effettivamente bisogno in un dato momento.

Server di ascolto

I server di ascolto vengono eseguiti con lo stesso processo di un client di gioco. Per il resto, funzionano come server dedicati, ma in genere hanno lo svantaggio di dover comunicare con i giocatori remoti tramite la connessione Internet residenziale del lettore ospitante. Le prestazioni sono ridotte anche dal semplice fatto che la macchina che esegue il server sta generando anche un'immagine di output. Inoltre, i server di ascolto garantiscono a chiunque giochi direttamente su di essi un grande vantaggio di latenza rispetto agli altri giocatori e cessano di quando quel giocatore lascia il gioco. [1] [3]

Tuttavia, i server di ascolto hanno il vantaggio di essere essenzialmente gratuiti e di non richiedere alcuna infrastruttura speciale o pianificazione futura per la configurazione, il che li rende comuni nelle parti LAN dove i problemi di latenza e larghezza di banda non sono un problema. Sono anche comuni nei giochi per console.

Migrazione dell'host

In una disposizione del server di ascolto, la "migrazione dell'host" è una funzione utile. Senza la migrazione dell'host, se il giocatore che sta attualmente ospitando si disconnette per qualsiasi motivo (chiusura, arresto anomalo, perdita della connessione di rete, ecc.), il server corrente smette di funzionare e il gioco termina. Una funzione di migrazione dell'host consente a uno degli altri giocatori di essere designato come nuovo host, in modo che il gioco possa continuare.

Peer-to-Peer

Nel modello client/server descritto altrove in questo articolo, i client ricevono i dati elaborati dal server e visualizzarlo senza pensarci troppo. Nel modello alternativo "peer-to-peer" non esiste un server: ogni "peer" riceve invece i flussi di input grezzi di ogni altro giocatore e determina i risultati da solo. [4]

Il peer-to-peer è generalmente considerato obsoleto per i giochi d'azione, ma è ancora comune nel genere della strategia in tempo reale a causa della sua idoneità per giochi con un gran numero di gettoni e un piccolo numero di giocatori. Invece di trasmettere costantemente le posizioni di 1000 truppe, il gioco può effettuare una trasmissione una tantum del fatto che sono state selezionate 1000 truppe e che il giocatore al comando di esse ha appena emesso un ordine di mossa. [4]

Tuttavia, il peer-to-peer presenta molti svantaggi: [4]

  • È molto difficile mantenere sincronizzati tutti i peer. Piccole differenze tra pari possono intensificarsi nel tempo fino a paradossi rivoluzionari.
  • Lo è Molto difficile supportare nuovi pari che si uniscono a metà di un gioco.
  • Ogni peer deve comunicare con tutti gli altri peer, limitando il numero di giocatori connessi.
  • Ogni peer deve attendere il messaggio di ogni altro peer prima di simulare il "frame di rete" successivo, con il risultato che tutti i giocatori sperimentano la stessa latenza del giocatore con la connessione peggiore.

Listen-peer

Più server di ascolto eseguono collettivamente il peer tra loro per l'impostazione listen-peer. Questo tipo di impostazione evita gli svantaggi delle comunicazioni peer-to-peer tra tutti i client ed è un'alternativa migliore ai server dedicati per un numero maggiore di client. [ citazione necessaria ]

Tickrate

La velocità con cui un server di gioco esegue le fasi di simulazione è comunemente indicata come "tickrate". Un "tick" è un numero associato a ogni fase della simulazione che viene trasmesso a client per aiutarli a sincronizzarsi con il server. {9}

Ci sono tre motivi per limitare la frequenza dei passaggi di simulazione del server a un tickrate predefinito: per conservare la larghezza di banda del server e del client, per risparmiare il tempo della CPU del server e per consentire ai client di essere certi di quanto tempo è trascorso tra un tick e l'altro. L'ultimo punto è importante per i giochi su Internet, poiché gli aggiornamenti di rete dal server possono arrivare a intervalli diversi o addirittura in un ordine errato. [5]

I server di

personalizzazione

, in particolare quelli dei giochi per PC, possono generalmente essere personalizzati in modo da consentire comunque ai client inalterati di connettersi ad essi. Queste personalizzazioni possono includere modifiche alle impostazioni di gioco integrate, contenuti che vengono scaricati dai client quando si uniscono al gioco, [6] e nuovo codice che cambia il modo in cui il server si comporta. [7]

Mentre la personalizzazione del server è popolare con amministratori del server e giocatori, può essere in contrasto con il desiderio degli sviluppatori e degli altri giocatori che il gioco venga vissuto come previsto. [8] [9] Può anche irritare i giocatori consentendo agli amministratori abusivi di mentire su ciò che offre il loro server. [10]

Vedi anche

Riferimenti