Come fattibile sarebbe un semi autonoma rete P2P completamente / per i giochi multiplayer essere?

StackOverflow https://stackoverflow.com/questions/597303

  •  11-09-2019
  •  | 
  •  

Domanda

Sono stato rimuginando come si potrebbe fare per la creazione di un sistema P2P (come BitTorrent è per i file) per i giochi multiplayer. L'idea è quella di rimuovere il server tradizionale dall'architettura multiplayer. Capisco che una sorta di server può essere necessario per l'avvio delle comunicazioni e l'invio di mondo gli aggiornamenti, ecc, ma mi interessa di come si dovrebbe ridurre le pressioni di carico e di larghezza di banda sul server.

A proposito, questo vale per qualsiasi gioco dimensioni, da un gioco due pedine giocatore fino ad un FPS con 30 + giocatori.

Sono pazzo?

È stato utile?

Soluzione

Ho pensato la stessa cosa. Ho un pregiudizio di lunga data che i sistemi distribuiti dovrebbe essere distribuito , senza la necessità di un controllore centrale. Il problema con un MMO o un gioco simile è che ogni giocatore dovrebbe essere in grado di vedere lo stesso "mondo". Si finisce con un problema simile a quello di Einstein-ian Relatività e "simultaneità" -. Il più distanti si sono, più la vostra visione del mondo è diversa

In generale, la soluzione è che devi essere in grado di propagare le informazioni ad altri clienti nel vostro immediate vicinanze - nello spazio in-gamer, non lo spazio necessariamente fisico - abbastanza veloce che gli aggiornamenti sembrano simultaneo a tutti i locali giocatori.

Ho il sospetto che la risposta è quella di avere un "server" o modello in tutto il mondo per ogni giocatore, piuttosto che rappresentare i giocatori come vettori in un server di mondo.

Altri suggerimenti

Il grosso problema non è bandiwdth o la latenza o di distribuzione delle modifiche allo stato di gioco. Il grosso problema è la fiducia.

Se ti dico che ho ucciso un mostro, come si fa a verificare che in realtà ho fatto? Come si fa a verificare che sono in realtà il livello 45? Come si fa a verificare non mi teletrasporto in tutto il mondo? Ricordatevi che non è possibile controllare il server per ogni piccolo dettaglio: questo è quello che stiamo cercando di evitare

È necessario giocatori guardando i giocatori e anche allora potrebbe lavorare insieme per imbrogliare. Ho davvero dubbi chiunque sarà progettare un affidabile in qualsiasi momento p2p MMO presto.

Ci sono molte cose da considerare nella vostra domanda:

1) distribuiti maestro - che inizia il gioco, allora? dove posso trovare il primo nodo? cosa succederebbe se tutti decidono di chiudere il proprio client P2P, allo stesso tempo? finisce il mondo?

2) regole Distrubuted - che può confermare che il giocatore 77 di 102.235 ucciso un mostro in x, y, z? Vedo problemi Big in hacking / barare con un "capo in comando" ...

3) Latenza - quando ha ricevuto un cliente tutti i dati? cosa succede se Internet si rompe? o in un gioco di rete LAN, che cosa se il dies hard disk -? sarà questo folle gioco per tutti gli altri

Credo che l'idea P2P è interessante, ma come in tutte le competizioni, credo che avremo bisogno di un "giudice" in grado di gestire le regole, perché quando si sono in competizione contro "persone anonime" poi il suo "bene barare" un sacco pensa.

Credo che una sorta di grid computing potrebbe essere il modo per farlo, ma ancora una volta, se un po 'nella griglia cade fuori o sono troppo lenti per il rendering mondo e l'invio di risultati indietro .. poi abbiamo tutta la partita "in ritardo di sviluppo " ... = terribile gioco per tutti ... questo è già visto in molti giochi FPS con un master-server. Se il protocollo di rete maniglia pretende molto lag troppo bene, la sua sempre più difficile da colpire una persona in esecuzione oppure apparire dal nulla si riprese in faccia.

Una soluzione costosa potrebbe essere quella di avere "subservers" (proxy-game-server) dove avete alcuni dei dati più vicino ai giocatori. Questo credo che richiederebbe di avere accesso a un sacco di serverfarms in tutto il mondo (come Blizzard fa con WOW) oppure si dovrà inventare una sorta di intelligente "host P2P" che aggiornerà stesso per "subserver" quando poi la larghezza di banda è abbastanza grande e abbastanza giocatori sono vicini a proxsamity di esso (controllare sempre il ritardo dal suo punto di vista ...) ... ora lascia dire che era possibile .. che cosa succede se la linea è interrotta tra questa ed il subserver gameloop principale a livello mondiale di nuovo?

LOL ... questo potrebbe andare avanti ... sembra sempre di più come il problema generale con l'Internet: -)

codifica Felice ...!

Sono certamente un esperto, ma suona un po 'pazzo di me. Nella mia esperienza, è necessario server di gioco dedicati a causa della larghezza di banda e le prestazioni. Con P2P si perderebbe entrambe le cose. A mio parere, il P2P è un bene per un paio di cose. file di distribuzione e di ricerca sono tra di loro. Tuttavia, queste 2 cose non hanno bisogno di dati in tempo reale. Se tu avessi una sorta di mondo di gioco multiplayer di massa, allora si potrebbe forse usare P2P per distribuire i file di gioco, e forse anche scaricare macinare numeri.

Direi che ci sono possibilità, ma il numero di loro sembra limitata, anche se potenzialmente potente.

Credo che questo sia probabilmente possibile in teoria, ma è ancora molto lontano.

Come già sottolineato in altri posti, la latenza potrebbe essere mantenuta bassa, garantendo solo gli aggiornamenti di altri giocatori che si trovano nelle vicinanze. Ciò è stato fatto per molti anni in giochi distribuiti.

La perdita di dati potrebbe essere mantenuto a livelli tollerabili, lasciando molti nodi responsabili di ciascuna porzione di dati.

Per quanto riguarda il problema di fiducia, sarebbe possibile avere un protocollo in cui un giocatore potrebbe "sfida" un altro giocatore per scoprire barare. Cioè lo sfidante sarebbe duplicare una parte degli altri giocatori calcolo e chiedere di confrontare i risultati. Ci sono già protocolli crittografici che fanno questo genere di cose, ma non so i dettagli o se sono realizzabili nella pratica.

Il vero problema come la vedo io è che non c'è motivo di sviluppare come il sistema. Il costo sarebbe elevato e di aggiungere complessità, ma l'esperienza di gioco (il prodotto) non sarebbe significativamente migliorata. Un'attività denaro-risparmio deve risparmiare più soldi di quanto costa al fine di essere valida.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top