venerdì 29 agosto 2008

Unreal Engine! quella cosa che ci fa sognare


Il motore grafico è il nucleo software di un videogioco o di qualsiasi altra applicazione con grafica in tempo reale. Esso fornisce le tecnologie di base, semplifica lo sviluppo, e spesso permette al gioco di funzionare su piattaforme differenti come le console o sistemi operativi per personal computer. La funzionalità di base fornita tipicamente da un motore grafico include un motore di rendering ("renderer") per grafica 2D e 3D, un motore fisico o rilevatore di collisioni, suono, scripting, animazioni, intelligenza artificiale, networking, e scene-graph.

Motori grafici avanzati come l'Unreal Engine 3, il Source Engine, il RenderWare e il Gamebryo forniscono una suite di strumenti di sviluppo visuali in aggiunta alla componente software riutilizzabile. Questi strumenti vengono forniti generalmente all'interno di un ambiente di sviluppo integrato (dall'inglese integrated development environment o più comunemente IDE) affinché permettano lo sviluppo semplificato e rapido (RAD) dei giochi secondo un metodo di progettazione data-driven. Questi motori grafici vengono chiamati spesso "game middleware" perché, in accordo con il significato commerciale del termine, forniscono una piattaforma flessibile e riutilizzabile che fornisce tutte le funzionalità chiave necessarie esternamente per sviluppare un applicazione ludica riducendo i costi, la complessità e il tempo impiegato; tutti fattori critici e altamente competitivi nell'industria di videogiochi e computer.
Come altre applicazioni di transizione, i motori grafici sono spesso indipendenti dalla piattaforma, permettendo allo stesso gioco di girare su più piattaforme incluse le
console quali PlayStation, Xbox, e Nintendo, e sistemi operativi come Microsoft Windows e Mac OS) con nessuno o qualche piccolo cambiamento al codice sorgente del gioco.
Spesso i middleware sono progettati con un'architettura modulare che permette di sostituire o estendere parti del motore con soluzioni più specializzate (e magari costose), come il software
Havok per la fisica, FMOD per il suono, o SpeedTree per il rendering. Alcuni motori grafici come il RenderWare sono addirittura concepiti come una serie di middleware indipendenti che possono essere combinati a piacere per creare un motore personalizzato, piuttosto che modificare un motore già esistente. In qualunque modo si ottenga la flessibilità, questa rimane comunque una forte priorità, a causa della grande varietà d'applicazioni cui i motori grafici devono rispondere. Nonostante l'idea di motore grafico rimandi immediatamente al concetto di videogioco, in verità essi sono usati in molti altri tipi d'applicazioni interattive che richiedono grafica in tempo reale, come dimostrazioni commerciali, progettazioni architetturali, simulazioni, e ambienti di modellazione.
Alcuni motori forniscono solo capacità grafiche, invece della vasta gamma di funzionalità richieste da un videogioco. Questi motori affidano agli sviluppatori il compito di inserirle, anche tramite altri middleware, magari da altri giochi. A motori come questi calza veramente la definizione di "motore grafico" in senso stretto. Non c'è comunque una convenzione condivisa sul termine: per il senso generale si può usare il termine "
motore 3D". Esempi di motore grafico in senso stretto sono: Axiom, OGRE, Power Render, Crystal Space e Genesis 3D. Molti motori moderni forniscono lo scene-graph, una rappresentazione del mondo 3D orientata agli oggetti che spesso semplifica lo sviluppo del gioco e che può essere usata per un rendering più efficiente di mondi virtuali molto vasti.

Nessun commento: