"Noi incoraggiamo gli individui, consapevolmente curiosi, a passare dalla complessità alla semplicità, dall'interno all'esterno e, a metà strada fra la ricerca e la negazione del significato, vogliamo che i curiosi facciano una dannata scelta". Wachowski

martedì 31 dicembre 2013

NET CODE: (pt.9) DUBBI SULLA DISTRUZIONE IN BF4

Non si fa che parlare di netcode al momento nel quale scrivo questo articolo. Questa serie di articoli (link) era nata con l'intento di svelare agli interessati le speficità e le problematiche nel pensare un sistema multiplayer tra più client, ognuno con la propria connessione.
Riprendiamo il discorso perchè a volte le scoperte si fanno così per caso e vorrei condividere con voi la mia scoperta ovvero una differente scelta progettuale che è stata fatta in Battlefield 4 rispetto al netcode di Battlefield 3.
Ripartiamo dal questo articolo (link) nel quale parlavo della distruzione in Battlefield 3.
Nel video di quel articolo si vedeva chiaramente che
il colpo verso un oggetto ne provocava la sua distruzione in base al lag che c'era tra il client che aveva fatto partire un colpo e il server che confermava la distruzione di un oggetto.
Nel video facevo vedere due differenti latenze: una bassa in europa e una alta artificiosamente ricreata con un server australiano.
Veniamo ora in Battlefield 4.
Il video che trovate di sotto l'ho registrato con la mia PS4. Non so come, ma mi sono imbattutto in un server europeo che aveva grandi problemi per sincronizzare i client, me compreso.
Nella prima parte del video (pochi secondi) si vede che ogni volta che vado avanti, il server (oppure la mancanza di comunicazione con il server) mi riporta indietro.
Avevamo visto questo meccanismo in questo articolo (link).

Proseguendo nel video, perciò, vedrete questa sequenza:

sparo ad un vetro
il vetro si rompe immediatamente (occhio all'avverbio)
passa un pò di tempo
il vetro si riforma

il vetro si riforma?

incredulo ripeto la sequenza su un altro vetro e buuuum, stessa scena. E' tutto nel video.




In Battlefield 3 gli oggetti si distruggevano sullo schermo dopo un pò (ovvero dopo la risposta del server e non immediatamente).

In Battlefield 4, forse, gli oggetti si distruggono subito nell'attesa di una successiva conferma da parte del server, un pò come avviene con la gestione della nostra posizione.

Può essere così? Beh, è molto probabile. Se questo è giusto, vuol dire che la distruzione viene percepita sicuramente per prima da colui che l'ha generata.
Chissà se è cosi.

Se tiriamo un razzo addosso ad un muro, la distruzione viene vista nello stesso istante da tutti i client? Oppure i vetri si comportano in maniera diversa? Bisogna continuare ad indagare

1 commento:

  1. Stavo notando anche io questa cosa visto che per provare quanto risponde in ritardo un server di solito rompevo oggetti.
    Su bf4 in qualsiasi server gli oggetti si rompono prima e quindi come hai detto te non è più il server che gestisce gli oggetti della mappa ma il client. Facendo degli esperimenti, purtroppo mentre giocavo e quindi non sono riuscito a registrarli, molte volte io cado a terra morto ancora prima che il vetro davanti a me che si rompa oppure sparo attraverso il vetro, quello si rompe ma i colpi comunque tolgono meno danno rispetto a quello che dovrebbero togliere come se il vetro continuasse ad esistere e quindi diminuisce il danno del proiettile.

    RispondiElimina