13 febbraio 2015

Intervista a Croteam su Linux e il mondo dei videogiochi


Per la gioia dei video giocatori incalliti quest'oggi +Marco's Box ha il piacere di intervistare Croteam, la software house croata conosciuta ai più per la serie di videogames Serious Sam.
Buona lettura!




Prima di tutto un po' di storia; parliamo della versione per Linux di Serious Sam: per portare un gioco su Linux ci vuole molto lavoro? Siete soddisfatti delle prestazioni?

Quando abbiamo deciso di portare il gioco su Linux è stato certamente uno sforzo - per la maggior
parte nell'implementazione di componenti di basso livello specifici della piattaforma come ad esempio la gestione degli input, la generazione delle segnalazioni d'errore, lavorare con Xorg ed esser sicuri che tutto funzioni con i diversi window manager ed ambienti desktop.
D'altro canto, diversi componenti necessari erano già supportati dal motore - come OpenGL ed OpenAL, grazie al design modulare del motore per la gestione del suono e della grafica.
La maggior parte dei problemi grafici che abbiamo incontrato con Linux sulle schede Nvidia ed AMD potevano essere riprodotti su Windows usando OpenGL. Gli unici problemi legati a Linux riguardavano le GPU Intel visto che il driver è diverso da quello sviluppato per Windows.
Sulla performance, siamo contenti per quanto riguarda Linux ma non troppo per per quanto riguarda OpenGL. Il gioco usando OpenGL è generalmente più veloce su Linux rispetto a Windows, ma la performance dei driver per OpenGL è ancora peggiore rispetto a DirectX.
Ci siamo resi conto di prestazioni migliori su OpenGL in alcuni casi (ad esempio su alcuni carichi di lavoro leggeri con shader semplici) ma peggiorano in casi più complessi.


Per The Talos Principle avete usato una nuova release del vostro motore grafico, potete parlarcene spiegando in cosa è migliorato? E' costruito con un focus su una singola piattaforma e poi portato su altre o è costruito da zero per essere eseguito ovunque?


Le parti del motore che lavorano con funzioni specifiche di hardware o sistema operativo sono scritte in modo modulare per facilitare lo sviluppo parallelo del gioco per più piattaforme.
Il codice più recente è compilato continuamente per tutte le piattaforme supportate, il che ci permette di individuare problemi molto rapidamente - ed avere il codice compilato da diversi compilatori e testato su diverse piattaforme incrementa sicuramente la qualità del codice.
Sono state aggiunte o modificate molte cose in questa iterazione del motore grafico ma la maggior parte sono modifiche non visibili direttamente dagli utenti finali. Sono miglioramenti di performance e compatibilità come con DirectX11 e OpenGL ES, il rendering multithreaded, la copertura delle variazioni fra distribuzioni Linux.... Oppure cose che aiutano lo sviluppo come la navigazione automatica, la costruzione di mesh, bot di auto-test... Oppure specifiche che servivano per il flusso di gioco come un sistema di fisica per personaggi speciali, streaming di contenuti, eccetera.



Quali differenze o problematiche ha trovato il team di sviluppo, abituato a lavorare su Windows, durante il porting a Linux?


Una scena da The Talos Principle
Il problema più grande è di gran lunga il dover lavorare con diversi window manager - ognuno con le sue fissazioni e peculiarità. Uno degli esempi più recenti è il prevenire l'avvio dello screensaver mentre si sta giocando. Questo generalmente non è un problema quando si gioca con tastiera e mouse poiché il sistema li riconosce come input dell'utente e non viene mostrato lo screensaver. Ma non vale lo stesso per quando si gioca con un controller - pertanto il videogioco deve prevenire la comparsa dello screensaver dall'avvio fintantoché non viene chiuso. Ovviamente non c'è un modo unico di farlo su Linux che possa funzionare bene per tutti gli ambienti desktop, quindi alla fine usiamo diversi metodi sperando che almeno uno funzioni su ogni sistema dato. Questo non è l'unico problema che deve esser risolto in questo modo - alcune cose a volte vanno fatte in certi modi o con un certo ordine su alcuni ambienti grafici mentre in altri sono più semplici - quindi ci sono spesso un sacco di tentativi finché non si trova una soluzione che funzioni bene (quasi) dappertutto.


The Talos Principle può esser chiamato un "port" o è stato scritto da zero con una attenzione speciale per Linux?

Quando abbiamo iniziato lo sviluppo di The Talos Principle, il supporto a Linux era già stato aggiunto al motore grafico, pertanto la versione Linux è stata compilata insieme alle versioni per Windows e OSX. Il supporto specifico a Linux è aggiunto e migliorato con il tempo - quando sono scoperti bug o se vengono aggiunte nuove feature al motore, ma il discorso vale per tutte le piattaforme che supportiamo.


Ricevete feedback utile dai giocatori linari? Pianificate ulteriori port di vostri giochi su Linux?
Il feedback dai giocatori linari è importante - sembrano contenti che stiamo supportando la piattaforma e sono un enorme aiuto nello scovare bug. Spesso bug riportati inizialmente come specifici della versione Linux si scoprono essere problemi in tutte le versioni del videogioco, a volte succede che sono solamente più facili da riprodurre su alcune piattaforme. Quindi, si - continueremo sicuramente a supportare Linux nel futuro.

Qualcuno di voi usa Linux quotidianamente?

Molti di noi lo usano sui propri telefonini - ed alcuni lo hanno anche sui computer - server casalinghi, PC multimediali ed anche come desktop.

Karlo Jež del Croteam nella sua postazione di lavoro

Cosa vi pare il gaming su Linux? E' ancora presente l'hype per Steam o sta scomparendo?

Sono molto orgoglioso che sempre più giochi per Linux siano disponibili, anche da grandi publisher e sviluppatori. Per il futuro, esso è per la maggior parte nelle mani di Valve - vedremo quando le prime Steam Machine inizieranno ad arrivare.


Alcuni dicono "Direct X rovina l'industria dei videogiochi perchè ti costringe a sviluppare per una singola piattaforma (Windows), mentre con OpenGL puoi sviluppare una sola volta ed eseguire il gioco dappertutto". Siete d'accordo?


Sarebbe più facile avere una sola API per la grafica, ma non è la panacea - risolve in fondo solo il problema del rendering. Rimangono sempre da gestire per ogni piattaforma le finestre, i thread, le periferiche di input ed altri compiti specifici. Il più grande problema causato dalla prevalenza di DirectX è che i produttori di GPU non hanno abbastanza incentivi per mettere a punto la performance di OpenGL rispetto a quelli che avrebbero in caso contrario. Ma le cose stanno migliorando e miglioreranno più velocemente con l'arrivo delle Steam Machine.

3 commenti:

  1. Complimenti per l'intervista e per l'articolo, davvero interessante.

    RispondiElimina
  2. Grazie :)
    PS: ma il tuo post? :P

    RispondiElimina
  3. Ho avuto qualche piccolo problema e ho dovuto rinviare la cosa. Dovrei rivedere qualcosina e ci siamo!

    RispondiElimina

Licenza
Licenza Creative Commons

Quest' opera è distribuita con licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported. Questo blog non rappresenta una testata giornalistica, in quanto viene aggiornato senza alcuna periodicità. Non può, pertanto, considerarsi un prodotto editoriale, ai sensi della legge n. 62 del 7/03/2001

Disclaimer immagini

Le immagini utilizzate in questo blog appartengono ai loro rispettivi autori e sono utilizzati per scopi educativi, personali e senza scopo di lucro. Ogni eventuale violazione del copyright non è intenzionale, ma se si riconosce un'immagine protetta da copyright, fatemelo sapere qui, e sarò lieto di aggiungere i credits o modificarla o rimuoverla.

Disclaimer images

Images used on this blog belong to their respective authors and are used for educational, personal and no profit purposes. Any eventual copyright infringement is not intentional, but if you recognize a copyrighted image, please let me know here, and I'll happily provide to add the right credits or modify or remove it.