Valve e Linux Foundation unite per il Linux gaming


Linux ha strumenti di sviluppo inadeguati agli scopi di un programmatore di giochi? È davvero terribile il compilatore GCC da riga di comando oppure GDB dentro Emacs? La notizia del giorno è l’ingresso di Valve nella Linux Foundation, l’organizzazione senza scopo di lucro che mira a diffondere il sistema operativo open source. Si capisce, questa collaborazione sarà un’opportunità di investimento sul progresso di Linux nel gaming: l’obiettivo comune è migliorarlo e aumentare il numero di installazioni.

Dato che Valve concentrerà gli sforzi sul debugger per LLVM, dovrà esserci una ragione per snobbare GDB, il programma di analisi del codice, fornito con GCC. Allo stato attuale LLDB non è neppure in grado di fare il debug di una printf. Si è scelto LLDB perché ha una interfaccia multithreaded del C++ che è progettata bene e, spiega Michael Sartain programmatore di Valve, si presta meglio a costruirci sopra una GUI. Non c’è bisogno però di essere programmatore per capire una cosa: se GDB ha sempre fatto bene fino ad oggi il debug di un intero sistema operativo, dovrebbe essere in regola per funzionare su un videogioco, magari meno complesso!

Nell’ultimo anno Valve ha portato Linux verso conquiste nel gaming che nemmeno ai tempi di Loki sognavo. Ha prima aggiunto il supporto per questo sistema operativo in Steam poi lo ha messo al centro di SteamOS e della Steam machine. Un’infrastruttura simile dovrà poggiare su programmi robusti, gli sviluppatori dovranno utilizzare un RAD e fare il debug dei propri giochi senza perdere tempo in configurazioni e installazioni da riga di comando. Ma la  “joint-venture”  con la Linux Foundation dovrà coinvolgere anche le aziende di componenti elettroniche perché su questo terreno si giocherà la partita più dura con le console già in commercio.

Fonte:

Annunci

Fare screencast di videogiochi in Linux


In Unix si combinano, nel caso di attività complesse, strumenti più piccoli allo scopo di raggiungere un risultato in modo efficiente. Se volessi creare un filmato (detto in gergo tecnico screencast) che mostrasse un gioco, dovrei utilizzare diversi programmi, ciascuno avente un compito specifico nel montaggio di una parte audio o video. Mi piacerebbe innanzitutto anteporre nel mio videoclip un testo introduttivo con una voce che spiegasse di cosa si tratta. Ho in mente due applicazioni che sono presenti su quasi tutte le distribuzioni del sistema operativo Linux: Gimp, programma di grafica e fotoritocco; espeak, sintetizzatore vocale. Con Gimp ho creato un’immagine PNG contenente un testo bianco su sfondo nero; ho usato espeak per far leggere quel testo da una voce maschile in lingua italiana. Per farvi un’idea di cosa è capace espeak, provate questo comando nel terminale di Linux:

bc | wc | espeak

Ci sono due “pipe” (è una parola inglese) che collegano tre progammi: bc è la calcolatrice UNIX, fate qualche operazione aritmetica poi terminate con il comando quit; l’output viene passato al programma wc che conta il numero di caratteri utilizzati; infine questo numero diventa l’input di espeak che lo legge con una voce sintetizzata (in questo caso inglese).

Guarda “Espeak: italian language” su Youtube

Ho salvato l’audio prodotto da espeak in un file WAV; il programma è molto potente, legge il file di testo (opzione -f), sceglie la voce (italiana, maschile -vit+m4) e crea l’audio (opzione -w). Queste operazioni vengono fatte contemporaneamente nell’ambiente dei comandi di Linux:

espeak -f input.txt -vit+m4 -w output.wav

Infine ho assemblato l’audio e l’immagine per mezzo di dvd-slideshow: è risultato un videoclip di circa trenta secondi con un effetto grafico molto carino e la voce “fuoricampo”.

A questo punto occorre mettere da parte gli strumenti visti finora. Il mio scopo è mostrare come si installa il programma glc che cattura sequenze video dai giochi. Potete paragonare glc a fraps di Windows: la differenza è che glc registra l’output delle applicazioni OpenGL. C’è un’ampia gamma di software che fa la stessa cosa, vado a memoria: recordMyDesktop, Gnome video recorder, Xvidcap, Vokoscreen, ma questi programmi creano anche lag durante la partita perché non accedono direttamente al frame buffer della scheda grafica; invece glc (o SimpleScreenRecorder) è l’ideale, registra sia l’audio che il video dei giochi e il lag generato è minimo.

Ho “ripreso” l’installazione di glc con la funzione di videoregistrazione interna di Gnome shell (si attiva premendo i tasti CTRL+ALT+SHIFT+F8 e si disattiva allo stesso modo): tutto ciò che compare sullo schermo è stato salvato in un file webm (il formato video sponsorizzato da Google). Poi ho aggiunto una musica free, tra quelle suggerite da Youtube, con il programma mkvmerge che gestisce anche il formato webm. Lo screencast prodotto è di qualità amatoriale, ma è sufficiente per mostrare ciò che volevo.

Guarda “Install glc video recorder” su Youtube

Con glc vovevo creare un video di ShadowRun Returns che mostrasse la console di debug (si attiva con F1) e il comando deathray. Siccome il gioco fa solo salvataggi della partita nei checkpoint (posti all’inizio del livello), il raggio della morte è, contrariamente al nome, un vero salvavita per il protagonista di quest’avventura: personalmente, mi ha fatto risparmiare ore di tempo. 

Ora che glc è installato, faccio una rapida esposizione dei comandi:

glc-capture APP_OPENGL

l’applicazione parte come sempre, ma occorre premere i tasti SHIFT+F8 quando si vuole “catturarne” l’output; aggiungendo l’opzione -s al comando precedente, la registrazione inizia automaticamente non appena è disponibile il contesto OpenGL. Se ci piace, c’è l’opzione -i che inserisce l’indicatore di registrazione in corso nell’angolo superiore sinistro dello schermo. Inoltre, è molto utile specificare un nome di file al nostro video con l’opzione -o che accetta anche le seguenti macro

  • %app%, il nome dell’applicazione
  • %pid%, la ID del processo del gioco
  • %capture%, contatore dei video
  • %year%, anno a quattro cifre
  • %month%, mese a 2 cifre
  • %day%, giorno a 2 cifre
  • %hour%, ora a 2 cifre
  • %min%, minuto a due cifre
  • %sec%, secondo a 2 cifre

Catturare l’output di una applicazione OpenGL è dunque semplice, ma quando veniamo a ShadowRun Returns dobbiamo fare i conti col fatto che si tratta di un gioco gestito da Steam la cui interfaccia non usa OpenGL. Provate il comando:

glc-capture -i -o "%app%-%pid%-%day%-%hour%-%min%.glc" -v 4 -b back -e bgr steam -console -applaunch 234650

avvierà il gioco ma senza registrazione. Per dribblare il problema, possiamo impostare la modalità Big Picture di Steam perché usa OpenGL: l’opzione che ci serve è -bigpicture .

Adesso abbiamo il nostro file glc, possiamo riprodurlo direttamente con glc-play e accontentarci, ma siccome è un file di notevoli dimensioni (un videoclip di pochi minuti può occupare centinaia di MByte), forse è più utile elaborarlo con un software di compressione video.

glc-play Shadowrun-6460-18-22-34.glc -a 1 -o srr_audio.wav

Con questo comando l’audio viene estratto dal dump di glc e salvato in formato wav nel file srr_audio.wav che dobbiamo usare nel passaggio successivo quando l’output di glc-play viene dato a mencoder per la compressione in MPEG-4

glc-play Shadowrun-6460-18-22-34.glc -y 1 -o - | mencoder -demuxer y4m - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=3000 -vf scale=1280:720 -audiofile srr_deathray.wav -oac mp3lame -o srr_deathray.avi

Ci sono programmi di editing video (cinerelle, kdenlive) molto sofisticati che vanno ben oltre gli scopi di questo articolo, ma con i quali è possibile realizzare video di ottima qualità. Inoltre, con i mezzi opportuni: computer di adeguata potenza, webcam, microcamera, microfono, una bella voce! si raggiungono risultati certamente migliori, lo screencast si fa più interessante e presenta i contenuti in maniera professionale.

Fonti:

  1. Glc homepage
  2. libelfhacks0
  3. libpacketstream0
  4. glc package
  5. glc tutorial
  6. github glc: Steam problem

SteamOS e Steam machine: le prime immagini sono online


È vintage! il termine è usato nella moda per riferirsi a capi di vestiario di gusto sorpassato, e sembra un videoregistratore anni Ottanta; è proprio una macchina a vapore! Lasciatemi dire che la Steam machine doveva avere questa forma classica, sottile, rettangolare e con un tocco stilistico retrò (steam-punk mi avrebbe fatto impazzire troppo) altrimenti nel soggiorno sarebbe stata antiestetica; va ricordato che è qui il suo posto, magari collocata sul mobile di un salotto impero. D’altronde, più è sottile e meglio si infila nel mobile TV di Ikea.

Steam machine, il prototipo

Steam machine, il prototipo

Nello stesso salotto c’è una misteriosa entità che gira fra divani, poltrone e tavolini… si dice abbia il potere di annichilire l’importanza di un oggetto alla moda o di fare la massima hype tutt’attorno a un manufatto. È la killer app! Si organizzano sedute di brainstorming per evocarla e si costruiscono altarini dove ci si inginocchia riverenti davanti alla sua immagine sacra. Qual è la killer app della Steam machine? Forse è Half-life 3, oppure Counter-Strike 3, Unreal Tournament 2014 o un improbabile Duken Nunkem ever? A mio modesto avviso, non è niente di tutto questo. Ce l’avevamo sempre sotto agli occhi fin dal 2004. Ma sì proprio quel programma che faceva imbestialire chi comprava i giochi in DVD nei negozi: Steam. Anzi meglio precisare, la sua metamorfosi futura, il sistema SteamOS.

SteamOS avrà 65000000 di utenti, 65000000 di buoni motivi per spezzare il duopolio di Microsoft e Sony.  È realistico supporre che non tutti compreranno una Steam machine e probabilmente qualcuno continuerà a usare Steam con il proprio PC Windows, ma c’è un bacino di potenziali acquirenti della Steam machine che è tenuto in considerazione da Valve prima di tutti, poi dai programmatori di videogiochi e infine dai produttori di hardware.

Steam controller, il prototipo

Steam controller, il prototipo

Al prossimo CES, Valve e i suoi partner presenteranno una serie di modelli della Steam machine adatti per diverse situazioni, costruiti con componenti per PC di prima scelta e renderanno noti vari prezzi di listino. Nel frattempo, trecento fortunati proveranno in esclusiva la Steam machine e forse trapelerà prima di Natale qualche dettaglio o ulteriori immagini.

Fonte

No room in hell: gli zombi cercano casa


Le anime dannate cambiano casa e cercano una nuova sistemazione qui in terra fra i cadaveri sepolti nei cimiteri. Ultimamente c’è un’invasione di zombi che fa impressione, dobbiamo provare questo nuovo “No more room in Hell”? Già il suo titolo lascia presagire che sarà dura ricacciare indietro l’orda proveniente dall’inferno di spriti sfrattati da Belzebù; ma è gratuito, tutti possono giocare e forse facendo quadrato… Si tratta di un co-op di genere survival-horror, pubblicato ieri su Steam dopo due anni di sviluppo. Questo gioco è una novità per chi ha sempre usato Linux, ma forse è noto a quelli che giocano con Windows, infatti NRH è stato fino al 2012 una modifica per Left 4 Dead 2 rispetto al quale ha aggiunto quattro slot e alcune altre interessanti caratteristiche, per esempio la chat vocale di prossimità che permette l’ascolto solo alle persone più vicine, purtroppo anche gli zombi hanno le orecchie!

Fonte:

  1. http://store.steampowered.com/app/224260/

Quale driver scegliere per Painkiller HD


Painkiller HD è tra i video game di prestigio per Linux che sono stati aggiunti alla libreria di Steam. Il port era stato annunciato a giugno di quest’anno, mentre la procedura di beta testing è cominciata la settimana scorsa, diretta dallo sviluppatore Leszek Godlewski, dipendente della software house Farm 51. Le comunicazioni fra i programmatori e gli utenti che partecipano alla beta avvengono nel forum del gioco ospitato sul sito della comunità di Steam. Mi è parso interessante il messaggio di Godlewski scritto ieri a proposito delle schede video: la sua opinione è che il driver open source è il più adatto per giocare ai giochi creati con Unreal Ungine 3, a meno di avere una scheda Nvidia, in questo caso suggerisce il driver del fabbricante.

Nvidia o AMD?

Nvidia o AMD?

Nel mondo di Linux ci sono  due attori coinvolti nel processo di sviluppo di un driver per le tre principali marche di schede video: il fabbricante e il FOSS. Il programma di controllo della scheda grafica è fornito in formato binario oppure a “sorgente aperto”. L’utente di Linux con una scheda video AMD può optare fra il fglrx, distribuito come parte del pacchetto Catalyst dal fabbricante, e il radeon che è mantenuto dalla comunità open source (FOSS). Michael Larabel ha dimostrato con delle prove comparative che le prestazioni nei giochi dei due driver sono quasi simili. Senza la documentazione tecnica che AMD mise a disposizione della comunità del free software, il radeon non avrebbe mai raggiunto i livelli di oggi; in certi contesti ha potuto dimostrarsi persino superiore al fglrx. Non mi sorprende l’opinione di Godlewski, egli ha visto “schiantarsi” il driver proprietario durante le prove di PKHD.

Per quanto riguarda le schede GeForce, duole osservare che Nvidia non partecipa più attivamente allo svilluppo del driver open source nv per i modelli di schede video Fermi e Kepler, né ha mai collaborato al potenziamento di nouveau, che è l’equivalente FOSS realizzato con il reverse engineering del driver nvidia a codice binario. Il gap fra questi due software si manifesta nel campo delle applicazioni 3D, qui il Nouveau ha prestazioni insoddisfacenti ed è pertanto da scartare, sia che si tratti di giocare a Painkiller sia a Guns of Icarus con una GeForce Kepler. L’ultimo attore è Intel: sebbene le schede video di questa marca abbiano scarso valore per il giocatore, il driver viene fornito con il codice sorgente e fa il proprio dovere.

Il mio consiglio non è molto diverso da quello di Godlewski, usate il driver fornito da Nvidia se avete naturalmente una Geforce, prendete la versione open source per controllare la vostra AMD Radeon. Se avete una Intel ma potete permettervi l’acquisto di una scheda video di ultima generazione, be’ puntate sul modello GeForce. Nvidia è sempre stato ritenuto il driver per eccellenza in Linux, tanto nelle applicazioni grafiche 2D quanto in quelle 3D. La superiorità del radeon sul fglrx presagisce la fine del Catalyst o piuttosto la convergenza fra i due progetti?

Fonti:

  1. Free and open-source graphics device driver
  2. PKHD Linux Beta Released