Come emettere in modo efficiente e prevedibile le istantanee del mondo?

0

Sto provando a progettare un MMO (basato pesantemente su agar.io), ma ho colpito un muro mentre sviluppavo il protocollo. Ho letto molto, incluso un white paper di Valve ( qui ), e ho anche esaminato come altri hanno realizzato cose simili (come così ), ma Sono ancora confuso su come gestire correttamente gli aggiornamenti del mondo e tenere conto della latenza.

Devo inviare, con ogni tick del server, un'anteprima completa del mondo ad ogni cliente (ovviamente, con solo i dati che dovrebbero avere), o invio "diff" s e presumo che il client abbia lo stato del mondo e può applicarli?

Se invio istantanee complete, devo anche inviare pacchetti per eventi, come entità che vengono distrutte, o il cliente presume che l'omissione è distruzione? Cosa succede se uno di questi pacchetti arriva prima che uno stato mondiale lo escluda? Questo metodo sembra inviare molti dati ripetitivi quando il cibo è coinvolto.

Se invii diffs dello stato del mondo, devo anche inviare i pacchetti quando le cose accadono, o faccio semplicemente a occuparmi dei diffs?

Ancora, questo è basato su agar.io, quindi posso presumere che ci siano forse 200 entità, max, in un nodo quadtree che devono essere aggiornate. Sto anche cercando di rendere il rendering il più vicino possibile al server. La previsione sul lato client è un must per qualsiasi gioco come questo, quindi per favore, nessun suggerimento che possa escluderlo.

    
posta AniSkywalker 16.09.2016 - 00:31
fonte

0 risposte

Leggi altre domande sui tag