Come Metal consentirà di avere prestazioni migliori per i giochi con Unity Engine

Come Metal consentirà di avere prestazioni migliori per i giochi con Unity Engine

Le nuove API per iOS metteranno a disposizione degli sviluppatori più risorse provenienti da CPU, GPU e memoria.

di Rosario Grasso pubblicata il , alle 09:01 nel canale Videogames
iOSApple
 

Apple ha introdotto Metal alla sua World Wide Developers Conference del mese di giugno. In quell'occasione ha detto che le nuove API avrebbero messo a disposizione degli sviluppatori nuovi modi per sfruttare CPU, GPU e memoria di iPad e iPhone.

Metal

Adesso, il team che sta alle spalle di Unity, la tecnologia riconosciuta come punto di riferimento dalla community indie, ha dettagliato quali altri benefici Metal può offrire. Il team di Unity innanzitutto promette l'integrazione di Metal all'interno della sua prossima suite di sviluppo, specificando che le nuove API di Apple "consentiranno di avere un maggiore realismo, più dettagli e interazioni più profonde con il mondo di gioco". Questi miglioramenti sono dovuti a una serie di nuove caratteristiche di sistema volte a liberare alcune risorse di elaborazione dei dispositivi iOS.

Uno dei maggiori benefici concessi da Metal riguarda l'introduzione di strumenti che consentono di sfruttare la memoria condivisa tra CPU e GPU, il che offrirà agli sviluppatori maggiore libertà e controllo sulle risorse a disposizione, e la capacità di gestire le elaborazioni con maggiore parallelizzazione. Un netto passo in avanti, insomma, rispetto alle precedenti API per iOS come le OpenGL, visto che Metal richiederà meno risorse di elaborazione, liberandole agli scopi degli sviluppatori.

Secondo le misure realizzate dal team di Unity, Metal riduce drasticamente le risorse necessarie per eseguire applicazioni e videogiochi. "Sulla base dei test che abbiamo realizzato, l'overhead API+driver occupa una minima percentuale del tempo di elaborazione della CPU. Si tratta di un miglioramento enorme rispetto al 15-40% di CPU time occupato prima".

"Tutto questo permetterà agli sviluppatori di introdurre fisica migliore, IA avanzata e logiche di gioco più complesse, ma anche di mettere più oggetti nelle location di gioco e di ridurre il consumo della batteria", spiegano ancora i tecnici di Unity.

Metal sarà disponibile nella seconda parte dell'anno, insieme al nuovo iOS 8. Funzionerà con tutti i terminali dotati almeno di processore A7, ovvero iPhone 5S, iPad Air, Retina iPad Mini. Nel prossimo settembre, poi, Apple lancerà il suo prossimo smartphone costruito alla base su iOS 8.

Intanto vi lasciamo con la demo tecnologica mostrata da Epic al Wwdc, che evidenzia appunto i benefici sul piano grafico resi possibili da Metal.

8 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Unrealizer08 Luglio 2014, 10:12 #1
praticamente si sono fatti le proprie API grafiche?

potrei sbagliarmi, ma ho come l'impressione che a parte gli autori di engine (come Unity o Epic insomma) saranno pochi ad usarlo... perché uno sviluppatore dovrebbe sbattersi ad imparare una nuova API grafica perdendo anche la possibilità di riutilizzare il codice su Android?
joethefox08 Luglio 2014, 10:16 #2
@Unrealizer, provo a risponderti: perché i soldi girano su iOS?
Unrealizer08 Luglio 2014, 10:50 #3
Originariamente inviato da: joethefox
@Unrealizer, provo a risponderti: perché i soldi girano su iOS?


non nego che su iOS sia facile fare soldi (conosco personalmente uno sviluppatore che ha fatto 1 milione di download con un'app per calcolare lo sconto, e qualcuno ha persino comprato il premium pack da 1€ per fare le somme...), ma resta non conveniente: per imparare a sfruttare bene una API grafica ci vuole tempo, e il tempo costa... e tutto il know-how su OpenGL? tutto il tempo e i soldi spesi? buttati via?

soprattutto, fare un gioco a livello così basso (chiamando direttamente le API grafiche senza usare un middleware come Unity) è difficile, impegnativo e consuma tempo (e di nuovo, soldi), uno sviluppatore si aspetta di guadagnare quanto più possibile da un investimento simile, quindi perché dovrebbe spendere risorse per imparare una API che funziona soltanto sul 20% dei dispositivi quando potrebbe riciclare TONNELLATE di informazioni, codice e know-how per raggiungere il 70+20% dei dispositivi? (nel 10% ci metto WP, BlackBerry e tutto il resto... magari non sono le cifre esatte, ma dovrebbero essere molto vicine)

quindi, a meno che non sviluppi un middleware da rivendere (Unity, Unreal Engine Mobile), e vuoi che questo middleware sia perfettamente ottimizzato su ogni piattaforma (in modo da competere meglio con la concorrenza), migrare su Metal semplicemente non è conveniente!

e appunto il discorso è diverso per la unity di turno, nel loro caso l'investimento avrebbe senso
calabar08 Luglio 2014, 11:39 #4
@Unrealizer
Come tu stesso fai notare, saranno soprattutto i motori grafici vendibili ad utilizzarlo. Del resto quasi tutti i giochi con grafica avanzata sfruttano questi motori, per giochini più semplici i benefici di queste API probabilmente non saranno una necessità.
A chi crea i motori conviene, perchè il motore diventa migliore, quindi più vendibile.
É lo stesso discorso fatto per AMD Mantle.

Oltretutto non è detto che l'approccio sia poi così diverso da quello delle OpenGL, il passaggio alle nuovi API potrebbe richiedere uno sforzo ben ripagato dai benefici.
Del resto anche l'ottimizzazione su librerie conosciute costa molte ore-uomo, se riesco ad ottenere risultati migliori con meno ottimizzazione (quindi meno ore di lavoro) lo sforzo di imparare le nuovi API è rapidamente ripagato.
Spero che il discorso sia comprensibile.
Mde7908 Luglio 2014, 11:43 #5
Uno sviluppatore che deve programmare tiny wings naturalmente se ne fregherà e continuerà ad usare i metodi di prima.
Chi vuole fare giochi ottimizzati ad un certo livello, quindi parliamo di grossi studi o appunto chi crea motori grafici, può sfruttare tutte le potenzialità delle nuove API.
Resta sempre una possibilità in più

Edit: sono stato anticipato
Unrealizer08 Luglio 2014, 14:52 #6
Originariamente inviato da: calabar
@Unrealizer
Come tu stesso fai notare, saranno soprattutto i motori grafici vendibili ad utilizzarlo. Del resto quasi tutti i giochi con grafica avanzata sfruttano questi motori, per giochini più semplici i benefici di queste API probabilmente non saranno una necessità.
A chi crea i motori conviene, perchè il motore diventa migliore, quindi più vendibile.
É lo stesso discorso fatto per AMD Mantle.

Oltretutto non è detto che l'approccio sia poi così diverso da quello delle OpenGL, il passaggio alle nuovi API potrebbe richiedere uno sforzo ben ripagato dai benefici.
Del resto anche l'ottimizzazione su librerie conosciute costa molte ore-uomo, se riesco ad ottenere risultati migliori con meno ottimizzazione (quindi meno ore di lavoro) lo sforzo di imparare le nuovi API è rapidamente ripagato.
Spero che il discorso sia comprensibile.


Originariamente inviato da: Mde79
Uno sviluppatore che deve programmare tiny wings naturalmente se ne fregherà e continuerà ad usare i metodi di prima.
Chi vuole fare giochi ottimizzati ad un certo livello, quindi parliamo di grossi studi o appunto chi crea motori grafici, può sfruttare tutte le potenzialità delle nuove API.
Resta sempre una possibilità in più

Edit: sono stato anticipato


pienamente d'accordo con entrambi, io parlavo del piccolo/medio sviluppatore che dopo aver acquisito know-how su OpenGL può scegliere solo tra:

1) fregarsene
2) passare a Metal e rinunciare ad Android
3) passare a Metal su iOS e continuare con OpenGL su Android, con aumento del costo di sviluppo, di test e di mantenimento del codice

oppure molla le API grafiche e passa ad un middleware come Unity e simili (che useranno OpenGL su Android, Metal su iOS e Direct3D su Windows), ma a quel punto si torna al punto iniziale, ovvero che i grossi produttori useranno Metal e i piccoli/medi sviluppatori non se lo cagheranno
AnonimoVeneziano08 Luglio 2014, 15:13 #7
Se siete programmatori dovreste veramente dare un occhiata alle specifiche di Metal.

E' proprio una API semplice, molto più semplice di OpenGL da imparare ad usare, proprio perché non si porta dietro anni di garbage che per motivi di legacy non e' possibile eliminare (neanche in Core profile) e perché e' stata sviluppata da una unica entità con potere assoluto sulle specifiche che ha potuto sviluppare il tutto in tranquillità (stesso vantaggio delle DirectX da questo punto di vista).

Imparare Metal o integrarlo nella propria applicazione risulta essere piuttosto semplice se si sono seguite le basi del software engineering nello sviluppo della propria App (separando le chiamate a OpenGL in una interfaccia anziché integrare il tutto nel mezzo della logica della applicazione), secondo me anche i piccoli sviluppatori potranno trarne beneficio mantenendo l'eventuale compatibilità con android dopo un piccolo investimento iniziale (mantenendo path OpenGL per android e Metal per iOS).

Uno dei vantaggi principali di Metal comunque e' anche la possibilità di usare la GPU anche come compute device, aprendo nuove possibilità di sviluppo da questo punto di vista e condividendo tutte le risorse tra Metal Compute e Metal Rendering in maniera indolore e semplice (al contrario di OpenCL e OpenGL per esempio o ogni altra soluzione del genere al momento).

Ciao
Unrealizer08 Luglio 2014, 15:26 #8
Originariamente inviato da: AnonimoVeneziano
Se siete programmatori dovreste veramente dare un occhiata alle specifiche di Metal.

E' proprio una API semplice, molto più semplice di OpenGL da imparare ad usare, proprio perché non si porta dietro anni di garbage che per motivi di legacy non e' possibile eliminare (neanche in Core profile) e perché e' stata sviluppata da una unica entità con potere assoluto sulle specifiche che ha potuto sviluppare il tutto in tranquillità (stesso vantaggio delle DirectX da questo punto di vista).

Imparare Metal o integrarlo nella propria applicazione risulta essere piuttosto semplice se si sono seguite le basi del software engineering nello sviluppo della propria App (separando le chiamate a OpenGL in una interfaccia anziché integrare il tutto nel mezzo della logica della applicazione), secondo me anche i piccoli sviluppatori potranno trarne beneficio mantenendo l'eventuale compatibilità con android dopo un piccolo investimento iniziale (mantenendo path OpenGL per android e Metal per iOS).

Uno dei vantaggi principali di Metal comunque e' anche la possibilità di usare la GPU anche come compute device, aprendo nuove possibilità di sviluppo da questo punto di vista e condividendo tutte le risorse tra Metal Compute e Metal Rendering in maniera indolore e semplice (al contrario di OpenCL e OpenGL per esempio o ogni altra soluzione del genere al momento).

Ciao


Contributo interessante (vedendo anche da chi viene )

non sapevo del supporto al GPGPU

in ogni caso, io mi occupo più di app "classiche", a meno di casi eccezionali non ho bisogno di scendere così in basso (e anche se devo cerco di utilizzare MonoGame, dato che lavoro su Xamarin), ma sicuramente quando e se ne avrò bisogno mi documenterò al riguardo

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^