Bene, c'è questo libro - che ora è un po 'vecchio, e non l'ho mai letto davvero, ma è di un editore rispettabile. Ho anche trovato questo , che è più recente, ma non ne ho mai sentito parlare prima. Entrambi affermano di coprire i problemi di sviluppo di giochi MMO (o almeno online); detto ciò, la previsione sul lato client è più o meno la stessa indipendentemente dalla scala della base di giocatori simultanea e Google ha molte informazioni al riguardo .
È importante rendersi conto che da un punto di vista pratico è piuttosto difficile per uno sviluppatore indipendente / hobby mettere insieme un gioco che sarà abbastanza popolare da raccogliere anche abbastanza giocatori da raggiungere un picco di concorrenza teorica abbastanza alto da essere considerato "massiccio". Ma le tecniche possono ancora essere educative per la ricerca.
Esistono due principali classificazioni delle cose che puoi fare:
- Sii aggressivo nell'inviare solo la minima quantità di dati al minimo set di clienti che ne hanno bisogno.
- Progetta un gioco che non dia ai giocatori l'incentivo di ingombrare troppo, aiutandoti a mantenere "l'insieme di clienti che hanno bisogno di" piccole cose in generale.
Il secondo è davvero un problema di progettazione del gioco e di manipolazione sociale - è particolarmente complicato perché i giochi multiplayer sono naturalmente sociali, fa parte del loro fascino, quindi non vuoi scoraggiare troppo i gruppi di giocatori. D'altra parte, un gioco in cui tutti nel mondo stanno generando il campeggio, l'unico ragazzo che rilascia il bottino migliore nel gioco sarà difficile da scalare.
Per la prima opzione che potresti prendere in considerazione per fare messaggi a più livelli - ci sono alcune cose su altri giocatori che sono sempre importanti da sapere, come le posizioni. Ma altre cose, come la salute, potrebbero non essere così importanti per gli oggetti che il giocatore attuale non può ancora vedere, quindi cancelli ciò che invii a quel giocatore in base alla distanza relativa di tutte le altre entità nelle sue vicinanze - questo è essenzialmente un throttling i dati che invii, come indicato nell'ultima parte della tua domanda, oltre a filtrarli.
Le architetture multiplayer su larga scala bufferizzeranno anche i report che non necessitano di azioni immediate su di essi. I messaggi di salvataggio dei caratteri inviati al server possono essere eseguiti in delta, con aggiornamenti completi solo in punti critici e questi aggiornamenti possono essere bufferizzati su un server di limitazione in modo che vengano inviati al server che detiene effettivamente i dati dei personaggi in modo costante, moda periodica - man mano che la base del tuo giocatore si ridimensiona, devi preoccuparti di ottimizzare l'IO del disco e il traffico di rete. Non vuoi provocare il crash del database dei personaggi.
La velocità e la dimensione dei pacchetti differiscono ampiamente da gioco a gioco, proprio come farebbe per i giochi non MMO. È davvero una cosa molto specifica e non ci sono standard generalizzati.