20/2/2020

BLOG DI SVILUPPO: ESPLOSIONI E SCHEGGE NELL'A5S1

Cosa succede quando si verifica un'esplosione in Rainbow Six Siege? Quali fattori confluiscono nel calcolo dei danni da esplosione? Come funziona il tutto?

Le esplosioni hanno un ruolo di primo piano nella dinamica di gioco di Rainbow Six Siege. Non fanno semplicemente il botto: aprono varchi nelle difese, creano percorsi, forniscono utilità e informazioni, e a volte aiutano anche a vincere. In questo Blog di sviluppo vi forniremo qualche dettaglio in più sul funzionamento delle esplosioni e su come desideriamo si evolvano.

Anatomia di un'esplosione

La distruzione in Rainbow Six Siege ha caratteristiche uniche e nessuna esplosione è mai uguale a un'altra.

I danni e la distruzione causati da un'esplosione vengono calcolati nell'arco di millisecondi. I giocatori ricevono un feedback audiovisivo e subiscono danni se vengono colpiti dalla deflagrazione. Per rendere possibile tutto ciò, il nostro motore delle esplosioni esegue diversi passaggi.

Forma e raggio dell'esplosione

Ogni tipo di esplosione viene definito da molteplici punti dati, e ciò determina la forma dell'esplosione stessa e il suo raggio di effetto. La forma delle esplosioni varia a seconda del tipo di esplosivo: una granata a frammentazione esplode in forma radiale, mentre una claymore ha forma oblunga.

Quando si verifica un'esplosione, il gioco prende la forma dell'esplosione e invia una richiesta al nostro motore fisico. Dopodiché, basandosi sull'origine della detonazione e la forma dell'esplosione, la richiesta produce un elenco di entità (operatori e oggetti) presenti nel raggio della deflagrazione. Tale elenco contiene le entità potenzialmente colpite dall'esplosione.

[R6S] Explosions: R6 AOE Animated

*La barricata e l'operatore all'interno della sfera sono selezionati come entità potenzialmente colpibili dall'esplosione.*

Il raycasting determina chi o cosa viene colpito

Ottenuto l'elenco di entità potenziali all'interno dell'area di effetto dell'esplosione, il motore fisico esegue dei raycast. I raycast sono linee esplorative che si diramano dall'epicentro verso qualsiasi entità e i suoi punti di richiesta all'interno del raggio dell'esplosione.

Ciascuna entità ha diversi punti di richiesta individuali utilizzati per stabilire se vengono o no subiti dei danni. Piuttosto che mirare alle ossa dello scheletro modello o stabilire un unico punto bersaglio arbitrario per un operatore, tali punti di richiesta ci consentono di decidere meglio se un operatore debba essere o meno vulnerabile ai danni da esplosione e, al tempo stesso, di ottimizzare le prestazioni riducendo al minimo la latenza.

I raycast si dirigono sui punti di richiesta in base a specifici parametri e creano dei punti dati che successivamente serviranno a calcolare i danni inflitti. Per esempio, alcuni raycast si dirigeranno verso i punti della capsula fisica di un operatore più vicini all'origine dell'esplosione e verso 4 punti del loro limite volumetrico (ovvero la forma che racchiude la rappresentazione grafica dell'operatore), mentre altri raycast si dirigeranno verso i punti di richiesta di un muro utilizzando un diverso insieme di regole.

[R6S] Explosions: R6 Raycast Animated

*I risultati del raycasting determinano se le entità possono essere colpite o meno dall'esplosione.*

Prima che vengano calcolati i danni, entra in gioco un'altra variabile. Gli oggetti presenti nell'ambiente modificano gli elementi della forma dell'esplosione e sono potenzialmente in grado di schermare dai danni.

Sono stati i metadati a salvarvi

Dopo che i raycast hanno completato il loro viaggio verso le entità potenzialmente colpite dall'esplosione, i dati risultanti determinano gli effetti dell'esplosione stessa.
In Siege esistono oggetti in grado di bloccare i danni da esplosione. Tutti gli oggetti contengono metadati che li definiscono e definiscono il modo in cui essi interagiscono con gli altri elementi presenti nel gioco. Alcuni oggetti contengono metadati che bloccano i danni da esplosione, come le barricate metalliche, i muri di Castle, gli scudi mobili e così via.

Se, prima di raggiungere i punti di richiesta di un operatore nel raggio dell'esplosione, la traiettoria del raycast entra in collisione con un oggetto i cui metadati indicano che è in grado di bloccare i danni da esplosione, l'operatore è salvo. Se il raycast non entra in collisione con nulla, o con oggetti i cui metadati non indicano che siano in grado di bloccare i danni, l'operatore viene danneggiato. Ciò vale anche per i gadget con effetti esplosivi ad area, come le granate EMP di Thatcher.

[R6S] Explosions: R6 Results Animated

*Oggetti con metadati in grado di bloccare i danni da esplosione vs. oggetti privi di metadati in grado di bloccare i danni da esplosione nel raggio del Realblast.*

Infine, in base a tutti i punti dati raccolti, i danni da esplosione vengono calcolati e attuati.

Determinare i danni subiti

Quando si calcolano i danni inflitti, bisogna tener conto del calo di danni: esso è tanto più elevato quanto più si è lontani dall'epicentro dell'esplosione. Diverse esplosioni hanno curve di danno differenti e la quantità maggiore di danni solitamente si verifica nel punto di origine. Utilizzando i risultati del raycasting, i danni finali inflitti vengono determinati interpolando la curva di danno rispetto alla propria distanza dall'esplosione.

Distruzione vs danni

Le esplosioni in Siege sono attuate da un motore dedicato, il Realblast. Si tratta di un sistema di distruzione generato in modo procedurale che gestisce gli elementi unici e dinamici del gameplay che conoscete e avete imparato ad amare in Siege. Potete guardare il video di una conferenza GDC di Julien L'Heureux dedicata al Realblast qui.

Comunemente, le esplosioni hanno due effetti: distruzione e danni. Per danni si intendono quelli causati ai giocatori, mentre per distruzione intendiamo la distruzione degli elementi presenti nell'ambiente. Entrambi hanno un raggio e forme variabili a seconda dell'esplosione.

[R6S] Explosions: R6 DamageVsDestruction Animated

*Raggio di distruzione (Realblast) vs raggio dei danni.*

Attualmente in Siege, dopo l'esplorazione iniziale dei raycast e le risposte alle richieste, stabiliamo il raggio dei danni e degli effetti di distruzione. Se il raycast incontra in un elemento bloccante, il raggio dei danni è limitato al raggio del Realblast.

Tuttavia, la soluzione attuale per gli effetti e il raggio delle esplosioni non rappresenta quella ideale in diversi casi, in quanto può tradursi in un esito non realistico dell'esplosione stessa. Per esempio, con il sistema attuale, all'aperto il C4 risulta assai più letale che all'interno di un edificio a causa della presenza dei muri che possono limitare il raggio dei danni.

Modifiche alle schegge per l'A5S1

Con l'A5S1 introdurremo alcuni impercettibili ma importanti miglioramenti alle esplosioni che ne renderanno i danni più realistici e chiari. Introdurremo un nuovo concetto di schegge nelle esplosioni di Rainbow Six Siege. Ciò si tradurrà nel fatto che gli oggetti distruttibili non limiteranno più il raggio dei danni da esplosione, risolvendo in questo modo il problema, descritto in precedenza, del raggio di distruzione vs raggio dei danni.

Le schegge renderanno i danni da esplosione più realistici, in quanto i danni inflitti al giocatore verranno ridotti in base al numero di oggetti distruttibili incontrati dal raycast lungo la sua traiettoria. Le esplosioni saranno in questo modo anche più chiare, poiché i fori causati dalle schegge forniranno un feedback visivo assai più evidente rispetto alla direzione da cui i danni da esplosione hanno avuto origine.

[R6S] Explosions: Shrapnel Animated

*Modifiche alle schegge*

SOMMARIO

L'arte della distruzione in Rainbow Six Siege è un'esperienza unica che promuove risultati e reazioni realistiche. L'aggiunta dei danni da schegge rappresenta un ulteriore miglioramento in direzione di effetti e danni causati dalle esplosioni sempre più realistici, oltre a renderne il feedback molto più visivo e leggibile.

Per saperne di più su esplosioni e schegge, seguite l'anteprima esclusiva e la discussione su Logic Bomb Podcast.

Visita gli altri canali social

facebook icontwitter iconyoutube icontwitch icon