Un mondo fatto di API a basso livello: come sarà?

Johan Andersson ci parla di Battlefield 4, Frostbite 3, funzioni da integrare nell'hardware next-gen, sviluppo su Xbox One e PS4 e l'API AMD Mantle.

Avatar di Tom's Hardware

a cura di Tom's Hardware

TH: avviciniamoci all'argomento Mantle e facciamo una veloce ipotesi. Nvidia vede che gli sviluppatori iniziano ad adottare Mantle e annuncia un'API simile. E Intel, per non essere da meno, fa lo stesso. Che cosa succede e chi vince in una situazione come questa?

Johan: è una domanda interessante. Certamente penso che una delle cose più importanti sia che Mantle, anche se fosse un lavoro di AMD per la loro specifica architettura, è un lavoro fatto con noi basato sulle cose che sappiamo dalle console next-gen e in generale dall'architettura del nostro engine. Ma non è una API progettata per le loro specifiche GPU. Si tratta di un'abstraction sottile a basso livello sull'hardware e funziona bene con tutto ciò su cui avete installato Windows. Mi piacerebbe vedere altre aziende pronte a supportare Mantle. È ancora tutto in via di defizione e per ora è tutto legato ad AMD.

Penso che sia importante dire che non ci sono ragioni tecniche per avere più API grafiche a basso livello, una per produttore. Se dovesse avvenire qualcosa di simile sarebbe per ragioni politiche. Non funzionerebbero bene. Questo sarebbe un peccato. Tuttavia, come ho detto, almeno nel settore desktop, ci sono solo tre attori sul mercato e già li supportiamo…non so nemmeno quanti rendering back-end abbiamo. Cinque, sei, sette o qualcosa del genere?

Per noi supportare altre API grafiche di basso livello non è difficile, ma non è il modo in cui mi piacerebbero andassero le cose in futuro. Prima di tutto mi piacerebbe che provassimo che Mantle funziona davvero e che siamo in grado di offrire grandi miglioramenti. Questo è il piano che avrei per i giochi attuali e futuri insieme ad AMD, per poi esportarlo. Poi allargherei il supporto e avvierei discussioni potenzialmente difficili con altre aziende hardware per vedere se è possibile procedere verso una standardizzazione, che sia interamente basata su Mantle, su sue parti, o se ci sono altre API nel futuro che offrano gli stessi benefici e miglioramenti. Non lo so ancora. Mantle però è davvero un buon progetto ma ci saranno alcune discussioni difficili in futuro che ci coinvolgeranno tutti.

TH: gli stessi obiettivi di Mantle possono essere raggiunti con una API stabilita a livello industriale e le DirectX potrebbero mutare per arrivare a offrire le stesse cose?

Johan: penso che possano andare verso quella direzione, ma non ne sono totalmente sicuro; c'è anche il tempo di cui tenere conto nel mettere tutti d'accordo. Questa è una parte molto importante. Diciamo che se le DirectX si avvicinassero a Mantle sarebbe una buona cosa. Il resto dell'ecosistema però è basato sulle OpenGL, quindi l'ideale sarebbe vedere anche OpenGL muoversi in tale direzione.

Penso che sia davvero importante perché il futuro non giace solo nelle DirectX. Sicuramente sono dominanti sui desktop, e usiamo una variante delle DX su Xbox One, ma non le usiamo su PS4 e PS3, né su iOS, Android, Mac o Linux. Queste piattaforme sono molto importanti e idealmente sarebbe bello avere API cross-platform, quindi non legate alle DX, anche se oggi le API di Microsoft sono le più importanti disponibili e una di quelle che i nostri utenti usano da più tempo.

Idealmente mi piacerebbe vedere una soluzione che può funzionare su Mac e Linux, e in futuro anche sulle piattaforme mobile che sono ancora più vincolate dalle prestazioni della CPU, da un rendering efficiente, dall'efficienza energetica e tutto il resto.

TH: per tutte queste altre piattaforme punti su OpenGL e OpenGL ES?

Johan: Esattamente. Microsoft ha le DirectX che lavorano su tablet Windows 8 e Windows Phone, ma hanno una quota di mercato molto piccola. Microsoft non ha una storia di condivisione delle API con l'industria, persino meno delle aziende del settore hardware (IHV).

Gli IHV hanno la chance di lavorare insieme con noi sviluppatori e vedere se siamo in grado di avere una soluzione cross-platform generale. Una sfida difficile e complessa, ma bisogna lottare per avere ciò che si desidera.