Limitazioni dei giochi multiplayer p2p contro client-server [chiuso]


12

Sto leggendo sull'architettura di gioco multiplayer.

Finora la maggior parte degli articoli che ho trovato riguardano il modello client-server.

Mi piacerebbe sapere quali sono i limiti per l'utilizzo di un'architettura p2p? quale "classe" di giochi è possibile (o più comune) implementare utilizzandolo? quali non lo sono? e in generale, quali sono le sue principali differenze e limitazioni rispetto al modello client-server.



Per un esempio di un vero gioco P2P, puoi guardare Gunz: The Duel, che ha enormi problemi in multiplayer e con l'hacking per questo.
fhyve,

Risposte:


11

Ecco i miei due centesimi:

P2P :

  • Professionisti:
    • Non c'è bisogno di un server centrale : questo lo rende molto più economico e più praticabile per i giochi indie a basso budget.
    • Scala molto bene (fino a un certo punto quando il client medio non è in grado di gestire la larghezza di banda).
    • Ottimo per la distribuzione dei dati : è adatto ai giochi in cui i contenuti creati dall'utente vengono sincronizzati dinamicamente (ad es. Torrent).
    • Più stabile: non può mai accadere che il server abbia problemi e che nessuno possa giocare (dipende dall'implementazione).
  • Contro:
    • Difficile da implementare : molto più difficile creare un'architettura P2P solida rispetto a un server-client.
    • È molto difficile prevenire gli imbrogli in un tale sistema, a meno che non si designi un peer autorevole (che ostacolerà qualsiasi vantaggio di ridimensionare bene dal P2P).
    • La sicurezza è difficile da raggiungere.
    • La connessione Internet di un cliente può influenzare il gioco anche per gli altri.
    • La latenza è di solito molto maggiore (anche se può essere migliore quando si partecipa a un gioco su Internet con più persone da una rete LAN, ad esempio).
    • Potrebbe richiedere il port forwarding : il P2P su Internet richiede il port forwarding e non tutti sono abbastanza tecnicamente propensi a farlo. Inoltre, l'ISP può impedire il port forwarding e aumenta la barriera all'ingresso.

Server-Client :

  • Professionisti:
    • Facile da implementare: è semplicissimo.
    • Se implementato correttamente, viene ridimensionato estremamente bene (se il lavoro può essere distribuito su più server).
    • La frode può essere evitata facilmente (rispetto al P2P).
    • Bassa latenza : se il server ha una connessione solida, la latenza può essere estremamente bassa.
    • La connessione Internet di un giocatore non influisce mai sul gioco di un altro.
  • Contro:
    • Ti costa denaro per far funzionare i server : sicuramente non adatto a un gioco gratuito (a meno che tu non consenta ai giocatori di configurare un server dedicato, ma ciò potrebbe costituire un problema di sicurezza).
    • Se il server ha problemi, lo fanno tutti.

Considererei P2P una buona scelta perché la connessione Internet media sta migliorando sempre meglio, in futuro la latenza P2P potrebbe non essere affatto un problema. Anche molto sul P2P dipende dall'implementazione specifica.

Esistono anche alcune architetture che combinano P2P con Server-client.


P2P Con: Matchmaking, a meno che non sia un gioco LAN, non sai come trovare il tuo pari. CS: La latenza più bassa non è quando un giocatore, per esempio, in Germania e l'altro è in Australia. È ancora un problema 6 anni dopo. CS: Non ti costa molto, davvero. I server diventano piuttosto economici. Inoltre, puoi iniziare ospitando il gioco sul tuo PC usando un proxy web per indicarlo.
badunius

2

Un grande rischio di giochi peer-to-peer è che senza un'autorità centrale sotto forma di un server neutrale, non c'è modo di prevenire i truffatori. Ogni cliente può interpretare il risultato del gioco come vuole. Alcuni giochi dichiarano l'host uno dei client e lo lasciano essere il giudice, ma quando quel client è un imbroglione, decidono il risultato dell'intero gioco.

Con giochi che richiedono bassa latenza e larghezza di banda elevata, come qualsiasi gioco che richiede una rapida reazione da parte dei giocatori, hai anche il problema che l'host sta semplicemente utilizzando una connessione Internet di livello consumer, non seduto in un datacenter con una struttura portante ad alte prestazioni connessione. Ciò significa che l'esperienza dell'utente ne risentirà. Questo non è un grosso problema in giochi più "lenti" orientati alla strategia.


Utilizzando un modello di consenso, imbrogliare non è più un problema di quanto sarebbe in un modello client-server.
Jeroen,

1

L'implementazione di giochi multiplayer peer to peer non è facile e al momento non applicabile.

Il problema che hai è che nessuno dei peer conosce tutti gli altri peer in modo da avere più hop per ogni messaggio che si traduce in una latenza più alta rispetto a un modello di server client. Vedi questo documento per ulteriori dettagli.

I giochi a base circolare potrebbero facilmente utilizzare un protocollo del genere poiché non dipendono molto dalla latenza. Inoltre hanno normalmente solo pochi host in una sessione in modo che uno possa trasmettere tutti i messaggi a tutti gli altri giocatori.

Altri giochi che usano il peer to peer scelgono semplicemente uno dei peer in modo dinamico per ospitare il gioco (ad esempio CoD MW2), il che si traduce in problemi come la migrazione dell'host se l'host si disconnette.


3
Cosa intendi con "non applicabile al momento"? Esistono molti giochi che utilizzano P2P per il networking. Inoltre, "nessuno dei peer conosce tutti gli altri peer" è formulato in modo errato. Mentre in pratica i relè devono essere supportati per migliorare la robustezza, è del tutto possibile avere una topologia di rete perfetta per tutti, specialmente con piccoli conteggi di pari o in LAN dove non ci sono router NAT che interferiscono.
Tapio,

@Tapio Naturalmente è possibile creare una rete p2p per i giochi, ma sarebbe limitata in termini di latenza, numero di utenti o ambiente in cui viene utilizzata. Per questo motivo la maggior parte dei giochi non utilizza un approccio p2p.
Horstinator,

@Horstinator Conosco un gioco che utilizza P2P per un gioco FPS, supporta solidamente 50-100 giocatori senza alcun problema di latenza (si chiama guerra stickman per chiunque si preoccupi)
Akaltar

@akaltar È open source? Mi piacerebbe vedere come lo fanno.
Horstinator,

@Horstinator Peccato, ma per quanto ne so non lo è. Potresti chiedere al creatore sul forum (è un progetto molto piccolo, quindi qualcuno dovrebbe rispondere).
Akaltar il
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.