Unite 2018 e lo splendido futuro che attende Unity - articolo
Siamo tornati dalla manifestazione con un grande ottimismo nei confronti del motore di gioco.
Durante la GDC 2018, alcuni di voi saranno rimasti impressionati dalla resa fotorealistica della nuova tech demo presentata dal team di Unity: Book of the Death (ora disponibile come progetto da poter scaricare e studiare in Unity). Di recente Unity è tornato sotto i riflettori nel corso dello Unite di Berlino: tre giorni di convention all'interno delle quali sono state presentate molteplici novità, più o meno interessanti. In questo articolo cercheremo di presentare le realtà più significative che questo game engine introdurrà nel prossimo futuro.
Augmented Reality
Unity è tra i motori di gioco di riferimento per quanto concerne lo sviluppo e la sperimentazione in ambito VR e AR. Molti visori e dispositivi di interazione scelgono di supportare come primo game engine Unity, per assicurarsi un bacino di sviluppatori in grado di produrre contenuti. Verosimilmente, i settori augmented-reality e mixed-reality rivestiranno un ruolo sempre più ampio e predominante in futuro e il team di Unity Labs (il settore di Unity dedicato alle sperimentazioni) è deciso a cavalcarne l'onda, presentando quello che è stato denominato Project MARS (Mixed & Augmented Reality Studio).
Grazie a questo tool gli sviluppatori potranno concentrarsi maggiormente sul contenuto dell'esperienza AR da voler trasmettere all'utente finale, piuttosto che risolverne i problemi tipici di questo tipo di applicazioni. Facciamo un esempio: abbiamo appena avviato un gioco in realtà aumentata sul nostro smartphone e ci troviamo nella nostra camera. La nostra esperienza AR prevede un viaggio all'interno di una navicella spaziale che parte da una base e atterra su un'altra base: MARS sarà in grado di capire automaticamente, dentro la nostra area inquadrata dallo smartphone, quali siano le superfici più adatte per rappresentare le due basi e modificare la traiettoria della navicella in rapporto alla loro disposizione nella scena reale. Se, ad esempio, in fase di sviluppo abbiamo deciso che la base di arrivo verta solo su superfici che, nella scena reale, siano più grandi di 50 cm ed abbiano una certa altezza, basterà fornire queste informazioni per far sì che MARS faccia il resto e scelga la superficie adatta all'interno della nostra camera sulla quale far atterrare la navicella.
Facial expression tracking
Nonostante la capacità di sbloccare il telefono mediante l'uso del face recognition, l'iPhone X non passerà alla storia per questo, bensì per l'estrema qualità del face-tracking che la sua telecamera frontale (la truedepth cam) è in grado di fornire. Apple ha dato prova di questa capacità introducendo le Animoji, emoticons di avatar 3D in grado di assumere la stessa espressione del nostro viso in tempo reale. Cosa succederebbe se avessimo un tool per estrarre informazioni di face-tracking dal nostro iPhone X e utilizzarle in Unity? Facial AR Remote Component permetterà di fare proprio questo: catturare lo streaming dei dati provenienti dalle informazioni di face-tracking dell'iPhone X, muovere in tempo reale un avatar all'interno della nostra scena Unity, animare e registrare le sue espressioni facciali su una timeline, in grado di essere riprodotte in seguito. Ed ecco che, in pochissimi passaggi, saremo in grado di trasformare quello che fino a pochi mesi fa era un lungo e complesso workflow, appannaggio di software house con budget cospicui, in un processo veloce e relativamente economico; nonostante l'acquisto di un iPhone X sia tutto fuorché economico, la qualità del Facial Expression tracking raggiungibile con questo workflow abbasserà notevolmente i costi complessivi. L'utilizzo di questa tecnica, inoltre, renderà più semplice lo sviluppo di applicazioni che si basano sul face tracking per l'applicazione di filtri 3D, come Snapchat.
Kinematica
L'evoluzione dei sistemi di animazione è sotto gli occhi di tutti: nuovi titoli alzano sempre più l'asticella del realismo delle animazioni che rendono vivi i personaggi con cui interagiamo. Nonostante la tecnica del motion capture non abbia subito grandi modifiche, a svilupparsi sono stati i sistemi di animazione dei game engine, in grado di leggere i dati registrati durante le sessioni di motion capture, interpretarli e mixarli al fine di produrre l'animazione più realistica possibile.
Il prossimo step nel sistema di animazione di Unity si chiama Kinematica, ed introduce tecniche di intelligenza artificiale e Machine Learning per migliorare la qualità finale dell'animazione: geometria dell'ambiente, velocità e orientamento del movimento dell'avatar sono alcuni degli input che daremo in pasto al nuovo sistema di animazione; Kinematica deciderà autonomamente le transizioni tra le varie animazioni disponibili, rendendo quasi automatico quello che prima era un processo lungo e dispendioso. Per i tecnici del settore basterà fornire a Kinematica un insieme di animazioni a cui attingere, catalogate per obiettivo (questo set di animazioni è per schivare un colpo, questo è per saltare un ostacolo, etc), e il nostro avatar si muoverà come se fosse in grado di decidere autonomamente quale animazione utilizzare per raggiungere lo scopo che vogliamo.
Partnership con Google Cloud
Il supporto nativo di Unity per il networking non è mai stato una punta di diamante di questo game engine. Annunciando la sua partnership con Google, Unity dimostra di voler fare sul serio, impegnandosi seriamente a migliorare l'infrastruttura di supporto per tutti i "connected games", ovvero per tutti i giochi che fanno uso di cloud services: MMO, FPS, MOBA, ecc. Unity metterà a disposizione dei tool in grado di rendere lo sviluppo della parte networking più efficiente e scalabile. Ad annunciare questa partnership durante la presentazione è stata Diane Greene, CEO di Google Cloud, che ha enfatizzato la difficoltà di poter gestire la scalabilità in un gioco che fa uso del networking.
Possiamo semplificare il suo discorso in questo modo: un'infrastruttura cloud che funge da supporto a un videogioco deve poter garantire una disponibilità di macchine virtuali (server) che varia in maniera dinamica, adattandosi più velocemente possibile alla quantità di utenti connessi in quel momento. Google Cloud può vantare una velocità di avvio dei suoi server che è di 5 volte superiore rispetto alla concorrenza, garantendo una velocità di risposta altissima.
L'esempio reale mostrato durante la presentazione è stato abbastanza impressionante: simulando una richiesta improvvisa di 1 milione di utenti contemporaneamente connessi, in circa un minuto la piattaforma Google Cloud è stata in grado di fornire 60.000 server, riuscendo a gestire fino a 1,5 milioni di utenti contemporaneamente. Davvero impressionante! Tra i tool che miglioreranno lo sviluppo della parte networking troviamo anche strumenti di debug (client e server-side) molto più dettagliati e semplici da utilizzare, che daranno informazioni più tecniche su latency, round trip time, data payload, così come numero di giocatori presenti, utilizzo di CPU e memoria dei server.
Unity for small things
Anche nel caso sviluppaste un gioco semplicissimo, la build finale di Unity arriverà molto probabilmente a superare una decina di MB. Spremendo al massimo la compressione del codice e riscrivendo da zero un core ottimizzato per eseguire giochi di complessità molto bassa, il team di Unity è stato in grado di offrire una dimensione di base della build finale inferiore ai 100KB. Questo vuol dire che potrete inviare il vostro prossimo platform 2D ai vostri amici utilizzando una qualsiasi messaging app, che permetterà di aprire il link del gioco e giocare al vostro platform all'interno del loro smartphone con tempi di caricamento quasi istantanei!
Virtual cinematography
Non solo videogiochi, serious games, o installazioni interattive. Unity sta cominciando ad essere utilizzato anche nell'industria cinematografica: parimenti alla realizzazione e creazione di un "prototipo" per un videogioco, lo stesso concetto può essere traslato nella "prototipizzazione" di una scena di uno storyboard, nel quale il regista decide la giusta inquadratura, quale animazione in CG eseguire e la preview degli effetti speciali applicati in post produzione. Mowgly, Blade-Runner e Ready Player One sono gli ultimi esempi di film che hanno utilizzato Unity nel loro workflow.
Nested Prefabs
Una feature richiesta da tanto, troppo tempo da parte degli sviluppatori Unity, è finalmente arrivata e l'ha fatto in gran stile. Per i meno addetti ai lavori: un "prefab" è un oggetto nella nostra scena che permette di salvare tutte le proprietà dei suoi componenti, in modo che possa essere stanziato più volte, e agire come fosse un template da personalizzare, per variare il risultato finale. È una tecnica abbastanza comune nello sviluppo di un videogioco, che permette allo sviluppatore e al level designer di riutilizzare l'oggetto più volte ma allo stesso tempo differenziarlo, in modo da non creare ridondanza (una foresta di alberi leggermente diversificati tra loro o un esercito di soldati che si muovono con velocità parzialmente variegate o con un'intelligenza artificiale tarata diversamente).
Con l'introduzione dei "nested prefabs", Unity ha introdotto una piccola rivoluzione rispetto al workflow standard che veniva utilizzato: è ora possibile creare gerarchie di prefabs. Questo si traduce in una maggiore flessibilità all'interno del team, dove gli artisti più disparati potranno dedicarsi a personalizzare contemporaneamente porzioni diverse di un prefab, senza problemi di sincronizzazione del lavoro tipici di questi casi. Anche l'editing dei prefab è ora più semplice, avendo a disposizione un apposito mini-editor che rende più chiara e pulita l'interfaccia di Unity.
Ma queste sono solo le novità più importanti e complesse che ci dovremo aspettare nel prossimo futuro di Unity e nel complesso torniamo da questo Unite 2018 con la convinzione che questo game engine stia diventando un pacchetto di strumenti sempre più maturo, in grado di supportare quanto prima feature uniche nel suo genere e responsabile del far parlare di sé, ancora e a lungo, un numero vastissimo di professionisti e non.
Luca Palmili - Unity 3D teacher @ AIV - Accademia Italiana dei Videogiochi