Deploy Value, Learn

Unity e la sua evoluzione: non solo giochi!

23 Giugno 2021 - 5 minuti di lettura

Bentrovati cari lettori, in questo articolo riporto un resoconto dell’intervento di Alessandro Lopopolo, ospite del meetup organizzato il 25 Maggio da eXtreme Programming User Group Bergamo, il quale ci ha parlato di Unity, il celebre motore grafico che dal 2005 ad oggi ha avuto molte evoluzioni.
Usato e conosciuto principalmente per creare videogiochi in 2D e 3D, negli ultimi anni aziende in diversi settori si sono avvalse dell’utilizzo di questo prodotto per agevolare, velocizzare e raggiungere nuovi traguardi.

Che cos’è e quali sono gli aspetti principali? Perché adottarlo in un progetto software? Quali sono le sue evoluzioni in diversi settori oltre quello videoludico?

Scopriamolo insieme.

Buona lettura.

Che cos’è Unity?

E’ un motore grafico multi-piattaforma per la creazione di videogiochi e altri contenuti interattivi, quali visualizzazioni architettoniche o animazioni 3D, in tempo reale. La moltitudine di plugin e script sviluppati dalla community fa sì che chiunque, anche alle prime armi, possa sviluppare qualcosa in un tempo relativamente breve.
Il linguaggio di programmazione usato principalmente è C#, e tra gli IDE maggiormente utilizzati abbiamo Visual Studio, Rider e MonoDevelop.

Che cosa vede uno sviluppatore quando avvia Unity? Alessandro ci dà una piccola dimostrazione con Rider, uno dei tanti editor di sviluppo di codice della famiglia JetBrains. E’ suddiviso in tre macro-parti (tutto configurabile a proprio piacimento): la gerarchia dei file del progetto sulla sinistra, la sezione centrale per lavorare sulla scena e un “inspector” per gestire le proprietà di ogni componente nella scena.
Per capire cosa siano le scene, le possiamo paragonare ai livelli di un videogioco.

Parlando di una prima evoluzione di Unity, si sfrutta questo concetto di scena e più viste, o view, per simulare la navigazione dell’utente di una app (web view).

Aspetti principali

Nel recente passato sono stati diversi i videogiochi di successo sviluppati con Unity, tra tutti ricordiamo Angry Birds e Pokèmon GO. Rimanendo su questo tema, e ricollegandomi a quanto già accennato relativamente alla facilità di realizzazione prodotti, Alessandro fa una menzione speciale per The First Tree un videogioco sviluppato, pensate un po’, da una singola persona! Una bella storia, frutto sicuramente del lavoro e passione dello sviluppatore, ma non solo.

Vediamo ora gli aspetti principali di Unity:

  • Unity Hub, un’applicazione stand-alone che semplifica la ricerca, il download e la gestione dei progetti ed installazioni del motore.
  • Project Templates, che velocizzano il lavoro fornendo impostazioni preselezionate basate su best practice comuni per diversi tipi di progetti.
  • E’ multi-piattaforma, ovvero è possibile creare build diverse per ad esempio Android e iOS.
  • Integrazione con le librerie native, ad esempio esportare la scena e importarla in una app Android.
  • Gestione delle prestazioni dei dispositivi: in ambito di debug del prodotto per uno specifico device o piattaforma, è utile per controllare la memoria utilizzata dai vari script e in caso intervenire in maniera puntuale.
  • Supporto della community: sempre più persone in tutto il mondo stanno adottando questo motore, e ciò porta ad avere sempre più template e plugin messi a disposizione di tutta la comunità
  • Unity Asset Store, un marketplace per sviluppatori, all’interno della piattaforma Unity, per condividere e scambiare risorse. Fungerà da hub per acquistare risorse di terze parti da utilizzare in un’ampia varietà di giochi e altri progetti 3D interattivi.

Perché adottare Unity per un progetto?

Nel paragrafo precedente possiamo già trovare le risposte a questa domanda, Alessandro ha dato la sua opinione raccontandoci di un progetto che avevano realizzato nell’azienda per il quale lavora.

L’obiettivo del progetta riguardava lo sviluppo di un’applicazione che simulasse delle condizioni di gara per piloti professionisti. Serviva quindi qualcosa che fosse:

  • facilmente compilabile per più piattaforme;
  • con una grafica accattivante;
  • integrabile con dispositivi esterni come sensori per la rilevazione di parametri fisici.

Unity era Ok!

Le evoluzioni di Unity

Questo motore grafico rappresenta un’ottima soluzione per diverse tipologie prodotti (2D/3D, web view, applicazioni in realtà aumentata/realtà virtuale) in settori non solo legati al mercato videoludico.
Al giorno d’oggi molte aziende in campo medico, dell’arredamento, della cultura, svago, intrattenimento hanno investito e stanno investendo per realizzare prodotti usando questo motore grafico.

Alessandro ci porta qualche esempio.

Automotive, Transportation & Manufacturing

Diverse case automobilistiche stanno adottando applicazioni per la creazione dei modelli delle proprie auto e che, sfruttando la realtà aumentata, potrebbero mostrare a grandezza naturale al cliente e all’occorrenza cambiare il colore o visualizzare gli interni o gli accessori disponibili.

Film, Animation & Cinematics

Unity offre workflow in tempo reale ai creatori di contenuti di animazione, accelerando le pipeline tradizionali e offrendo ad artisti, produttori e registi maggiori opportunità di libertà creativa, feedback rapido e iterazione artistica su una piattaforma flessibile.

Architecture, Engineering & Construction

Grazie alla suite di prodotti Unity Reflect è possibile connettere i dati BIM (Building Information Modeling), stakeholder e ogni fase del ciclo di vita dell’architettura, dell’ingegneria e dello sviluppo in un’unica piattaforma coinvolgente e collaborativa in tempo reale.

Altre soluzioni interessanti sono:

  • Unity MARS: portando i dati dai sensori e dall’ambiente nel workflow è possibile creare applicazioni di AR (realtà aumentata) intelligenti “context-aware” e reattive allo spazio fisico, lavorando in qualsiasi luogo e con qualsiasi tipo di dati. Un esempio è dato dai planner di IKEA per progettare interni dell’appartamento.
  • Unity ArtEngine: fornisce aiuto nella creazione di materiali ultra realistici sfruttando l’intelligenza artificiale e la potenza di un workflow basato su esempi. Requisito necessario il sistema operativo Windows.
  • Furioos: rende semplice la condivisione di qualsiasi applicazione 3D e incorporarla in qualsiasi sito web. Permette lo streaming di esperienze 3D da Unity e altre piattaforme 3D in tempo reale, applicazioni Windows e altre creazioni da qualsiasi browser web.
  • VisualLive: un software, leader del mercato, di facile utilizzo e pronto all’uso su dispositivi Microsoft HoloLens, Android e iOS per società di progettazione, ingegneria e costruzioni.

EdTech

Unity è la piattaforma per la creazione di giochi, simulazioni e strumenti VR / AR. Di seguito alcune soluzioni e servizi nel campo dell’educazione e medico:

  • Kognito: una applicazione che permette la conversazione con “umani virtuali”, utile ad esempio per facilitare il rapporto tra paziente e dottore.
  • CAE Vimedix AR HoloLens: un simulatore ad alta fedeltà che facilita il processo di apprendimento per gli ultrasuoni cardiaci, polmonari, addominali e OB-GYN – tutto su un’unica piattaforma comune. CAE Vimedix accelera lo sviluppo di abilità psicomotorie e cognitive essenziali per la manipolazione delle sonde ecografiche, l’interpretazione delle immagini, le diagnosi e il processo decisionale clinico.

Conclusioni

Come per il precedente, anche questo meetup è stato davvero interessante. Alessandro ha condotto una presentazione molto chiara e soprattutto ricca di spunti, chi pensava che Unity avesse tutti questi sbocchi?

Qualora foste interessati a rivedervi l’intervento di Alessandro, è disponibile la registrazione sul canale YouTube dell’XPUG Bergamo.

Alla prossima!

Articolo scritto da