Development

Operation Flashpoint: Dragon Rising

Problematiche di rendering e trattamento dati in un gioco open world

[del 17/08/2009] [di Alessandro Monopoli]



Operation Flashpoint: Dragon Rising
(da qui in poi OF:DR) e’ un gioco di stampo militare la cui area di gioco si estende per oltre 220Km  quadrati.
Questa enorme estensione ci ha obbligato a pensare ogni singolo elemento del gioco in modo che funzioni correttamente in questo ambiente.
Come esempio estremizzato, prendiamo l’Universo. L’Universo e’ grande e pieno di cose interessanti.
E’ talmente grande che eventi con probabilita’ bassissima di accadere accadono molte volte al secondo.
Cosi’, seppur in scala ovviamente ridotta, succede nei gioco open-world: e’ necessario prevedere ogni accadimento e non lasciar perdere quelli piu’ rari “perche’ non succedono mai”, perche’ e’ molto probabile che accadranno.
In genere, aumentando il numero di tester, gli eventi rari accadono anche piu’ volte al giorno.

Le feature richieste da un sistema di gestione dei personaggi sono le seguenti:
- supporto di numerosi tipi di personaggi, per dare varieta’
- limite massimo di personaggi disegnabili contemporaneamente molto elevato
- distanza massima a cui il personaggio va disegnato molto elevata
- visualizzazione accurata dei danni, come il sangue o la perdita di un arto
- qualita’ di visualizzazione elevata per il maggior numero di personaggi possibile, soprattutto se si trovano vicino al giocatore
- qualita’ molto elevata per gli elementi visibili del giocatore stesso (mani, braccia)

Tutti questi requisiti richiedono un attento studio dell’uso della memoria (sia di sistema che video) e una serie di scelte in tutte le fasi dello sviluppo, dalla preparazione del dato al rendering.
Gli articoli che scrivero’ copriranno tutte queste fasi e mostreranno le scelte compiute per ottenere il risultato.

Tutte questi requisiti richiedono un attenta pianificazione nelle seguenti aree:
- Produzione e trattamento del dato
- Caricamento dei dati in streaming
- Selezione del miglior LOD
- Rendering

Produzione e trattamento del dato:
In questa parte parleremo delle strategie e dei tool che sono stati implementati per avere i dati nella maniera piu’ adatta ai nostri scopi. Parleremo di elaborazione sulle bones per il supporto della medesima animazione su N LOD e su vari tipi di personaggio, oltre che all’elaborazione che e’ stata richiesta per avere una gestione dei danni leggera e hardware-friendly.

Caricamento dei dati in streaming:
tutti i giochi open-world richiedono un massiccio utilizzo dello streaming e OF:DR non fa eccezione. Ogni singolo elemento di OF:DR e’ caricato in streaming ed i personaggi non fanno eccezione. In particolare i personaggi utilizzano un sistema di loading specializzato, che verra’ spiegato nel dettaglio.

Selezione del miglior LOD:
la strategia di scelta dei LOD e’ un argomento estremamente importante, poiche’ la qualita’ e le prestazioni ne dipendono. Il sistema dei personaggi di OF:DR utilizza un sistema specializzato, in modo da poter mostrare i personaggi nella maniera migliore in ogni momento.

Rendering:
Partendo dallo skinning fino ad arrivare all’illuminazione ed alla gestione dei danni, il rendering dei personaggi e’ stato affrontato avendo sempre in mente le prestazioni e la resa a video. In questa parte spieghero’ le scelte fatte per poter avere personaggi qualitativamente competitivi e correttamente integrati in un ambiente estremamente complesso come quello proposto da OF:DR.

Partiamo dalle specifiche richieste.
Ogni personaggio deve avere una divisa completa e un viso. Ogni personaggio deve, inoltre, avere un equipaggiamento visibile che ne identifichi il ruolo.

Ogni personaggio e’ stato quindi diviso in tre elementi.

Corpo:
















Testa e mani (parti con pelle visibile):







Equipaggiamento:














Ognuno di questi tre elementi sara’ skinnato con il medesimo scheletro, in modo che le pose assunte dai tre elementi sia coerente, ma possiamo facilmente intuire che molte bones non sono nemmeno pesate in tutte e tre le parti.
Basta guardare la parte con la testa e le mani per intuire che usare l’intero scheletro su tutte e tre le parti non e’ una scelta affrontabile.
In piu’ dobbiamo considerare anche l’esistenza di piu’ LOD (in questo caso tre): non sarebbe una scelta vincente quella di utilizzare il medesimo scheletro per tutti i LOD, cosi’ come non e’ una scelta vincente quella di avere la stessa animazione rifatta su diversi scheletri (con meno dettaglio per i lod inferiori), per i seguenti motivi:
- memoria: le animazioni occupano spazio
- Sincronizzazione: in ogni momento dovremmo essere certi di avere le animazioni sincronizzate a tutti i LOD.
Questo e’ un problema di correttezza del dato.  Le animazioni non sono un asset facilmente verificabile.

Parleremo di questo argomento nel prossimo articolo, dove trattero’ la problematica della preparazione del dato.


« torna all'elenco sviluppo  •  tutti gli articoli correlati »

 
 

[Eclipse[lev:1; v. p.:1; cash:57] postato il 22/08/2009 alle 1:19 [offline]

Complimenti per il lavoro svolto e per l'articolo, si possono conoscere alcuni dati tipo numero di poligoni di un personaggio tipo a lod 0, numero e ris delle textures, numero di lod nel caso di Dragon Rising?
Mi metto in attesa degli updates futuri ;)

[AlexMonopoli[lev:1; v. p.:1; cash:350] postato il 22/08/2009 alle 1:31 [offline]

Non credo ci saranno problemi, credo che quei dati verranno forniti nei prossimi articoli.
Puoi però già notare in questo articolo che dico che ci sono tre lod:
"In piu’ dobbiamo considerare anche l’esistenza di piu’ LOD (in questo caso tre)"

Ovviamente parlo dei personaggi: ogni singolo asset in OFR si comporta in maniera differente ed altamente ottimizzata per lui.
In questa serie di articoli parlerò dei personaggi, in quelli futuri vedrò. Così su due piedi, ad un articolo alla volta, solo per completare i personaggi servirà un bel po'

[Falconero[lev:1; v. p.:1; cash:155] postato il 22/08/2009 alle 2:41 [offline]

Gran bell'articolo Alex

[lefantome[lev:1; v. p.:1; cash:57] postato il 22/08/2009 alle 11:21 [offline]

Per ora ti sto dietro a livello di Comprensione, sono curioso di sapere come avete risolto questi problemi.


ps: Non ho capito per tutto l'articolo cosa significasse OFR poi ho letto in cime che era l'acronimo del gioco lol

[VincentVega[lev:1; v. p.:1; cash:1626] postato il 23/08/2009 alle 1:17 [offline]

Devo dire che la parte che mi incuriosisce di più è la strategia scheletri multipli e gestione delle animazioni.
Very very interesting.

 prosegui la discussione sul forum »

Operation Flashpoint: Dragon Rising gioco: Operation Flashpoint: Dragon Rising data di uscita:09/10/2009produzione:Codemasterssviluppo:Codemasters

galleria fotografica
Equipaggiamento
Testa e mani
Corpo
OF:DR5
OF:DR1

vai alla gallery »

Alessandro Monopoli persona: Alessandro Monopoli ruolo:Experienced Programmer

sito web

articoli correlati  

Preparazione dei dati (parte 1)

Preparazione dei dati (parte 2)

Strategie per il tuning degli asset (parte 1)

GS programming

GS programmingLe categorie di suoni in un videogioco[di Davide Pensato] [01/10/2010]

Come abbiamo visto in precedenza, nel processo di produzione audio sono coinvolte molte figure professionali e i contenuti creati hanno caratteristiche diverse a seconda della loro funzione nel contesto del gioco. Possiamo individuare quattro categor...

[0]
 
Epic Games

Epic GamesProject Sword su dispositivi iOS[di Nicola Congia] [02/09/2010]

Project Sword di Epic, la vera star della conferenza di Apple la scorsa notte, è il primo gioco basato sull'Unreal Engine 3 per la piattaforma iOS, e molti pensano che questo sia un salto qualitativo importante in termini di grafica 3D per i disposi...

[0]
 
GS programming

GS programmingDiventare Audio Programmer[di Davide Pensato] [28/05/2010]

L'Audio Programmer è una figura professionale molto importante ma altrettanto difficile da trovare. È infatti un programmatore con competenze nel campo dell'audio. Come descritto in un precedente articolo, fino a qualche anno fa un programmator...

[0]
 
Operation Flashpoint: Dragon Rising

Operation Flashpoint: Dragon RisingStrategie per il tuning degli asset (parte 1)[di Alessandro Monopoli] [10/03/2010]

Per questo articolo usciamo un pochino dal seminato e non parleremo di cose direttamente legate con OF:DR. Vorrei discutere con voi di alcune strategie per il tuning degli asset, in particolare le texture, per poter avere la massima qualità in og...

[0]
 

tutti gli articoli di sviluppo »

  
  |  REGISTRATI »