PDA

View Full Version : Come Metal consentirà di avere prestazioni migliori per i giochi con Unity Engine


Redazione di Hardware Upg
08-07-2014, 08:01
Link alla notizia: http://www.gamemag.it/news/come-metal-consentira-di-avere-prestazioni-migliori-per-i-giochi-con-unity-engine_53088.html

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

Click sul link per visualizzare la notizia.

Unrealizer
08-07-2014, 09:12
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?

joethefox
08-07-2014, 09:16
@Unrealizer, provo a risponderti: perché i soldi girano su iOS?

Unrealizer
08-07-2014, 09:50
@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

calabar
08-07-2014, 10:39
@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.

Mde79
08-07-2014, 10:43
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

Unrealizer
08-07-2014, 13:52
@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.

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

AnonimoVeneziano
08-07-2014, 14:13
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

Unrealizer
08-07-2014, 14:26
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 :D

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