Networking in giochi di strategia in tempo reale


10

Qual è l'attuale stato dell'arte per collegare in rete giochi di strategia in tempo reale?

Mi sembra di ricordare che alcuni anni fa, alcuni titoli AAA trasmettevano solo gli input del giocatore (Starcraft 1, Age of Empires). Dal momento che ciò richiede di mantenere tutto il resto totalmente deterministico, è ancora un'opzione praticabile? La sincronizzazione di generatori di numeri casuali sembra fattibile, ma per quanto riguarda le sottili differenze nelle implementazioni FPU ecc.?

Oppure i giochi di strategia utilizzano qualcosa di più simile al networking di giochi d'azione, in cui invece vengono trasmesse singole entità (con una qualche forma di predizione e (delta) compressione)?

In tal caso, come vengono trattati gli oggetti volatili come i proiettili?

Che dire di client / server rispetto a peer-to-peer? Immagino che tutto ciò sia fortemente correlato.

Grazie per il tuo tempo!


Duplicato di RTS Game Protocol - sì, è ancora così. Per quanto riguarda le diverse implementazioni FPU, vedere qui e qui .
BlueRaja - Danny Pflughoeft

Risposte:


5

http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php Questo è ancora il modo in cui viene effettuata la rete nei giochi RTS. Il P2P è anche il modo normale di gestire le connessioni. L'uso di un modello di timestep di blocco comporta tuttavia il caso irritante di desincronizzazione e manipolazione imbroglione. C'è un buon modo di recuperare quando si verifica una desincronizzazione e tutti i giochi RTS dicono semplicemente "Esci dalla partita". Anche la tracciabilità degli errori di desincronizzazione è un incubo.


1
Un altro buon articolo sui giochi di rete con timestep bloccati: altdevblogaday.com/2011/07/09/…
tenpn


1

Questa è un'ottima lettura e risponderà a molte delle tue domande:

http://udn.epicgames.com/Three/NetworkingOverview.html

Nel mio gioco di strategia / difesa della torre, sto usando un modello client / server e sono in grado di mantenere tutto deterministico finora. Il client invia soltanto le richieste del server per fare cose (ma non sempre in realtà fare nulla), e il server invia gli aggiornamenti, creazioni, e le eliminazioni fino ai clienti quando le cose cambiano. Anche se il mio gioco è attualmente deterministico, non mi fido mai che i miei clienti facciano qualcosa di giusto, il server è il capo e ha il pieno controllo del gioco. Il client è solo un terminale stupido.

Per rendere tutto molto semplice, sto usando una combinazione di Reflection ed Eventing per tenere le mie entità completamente al buio sul lato della rete delle cose. Uso anche il concetto di attore e "forza" (al contrario di un attore e un pedone in un FPS come Unreal). Ciò consente l'incapsulamento davvero piacevole e un posto dove riporre i soldi e le cose della Forza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.