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:

A gennaio la prima di Steam dev days


Sono un appassionato di giochi per Linux e ho sempre avuto nella vita l’ambizione di diventare un indie developer con questo sistema operativo, però è sempre stato un problema applicarmi e dare forma alle idee che avevo in mente, per esempio me ne era balenata una felice di un RAD open source per sviluppare videogame, un’applicazione che potesse importare modelli da Blender, creare scene ed esportare mappe per i motori grafici più usati in Linux, da Ogre a Panda, Id Tech e Crystal Space, modificare il codice e gli script, compilare e distribuire il gioco su Internet. Ancora oggi continuo a studiare un modo per realizzare un’applicazione simile ma non so da dove cominciare, è probabilmente un’idea superba. Ho una discreta conoscenza della matematica, della geometria e delle basi del C, evidentemente non serve a molto. Forse una bibliografia sbagliata, persino modesta, mi ha portato fuori strada. Terrò per sempre questo sogno nel cassetto. Ben vengano oggi i software a pagamento che fanno le medesime cose, ma senza condividere una riga di codice, esulterà qualcuno!

Indie game developer

Indie game developer

A un anno dall’uscita di Steam per Linux, Valve organizza un congresso a Seattle intitolato “Steam Dev Days”: ha un carattere didattico e divulgativo che potrà interessare sia i programmatori di Windows che desiderano approfondire gli aspetti tecnici del processo di sviluppo di un gioco multi-piattaforma, sia i giocatori più curiosi che vogliono conoscere i dettagli della Steam machine, del sistema operativo SteamOS e dei dispositivi di input e output (il controller, Oculus VR ecc.). Si parlerà del mercato delle console, specialmente della Steam machine di Valve. I contenuti di carattere generale saranno discussi per la maggior parte del tempo previsto che, meglio puntualizzare, è di due giorni da trascorrere a gennaio in un hotel nel centro di Seattle non molto lontano dalla sede di Valve, a Bellevue. In programma ci sono anche due seminari più tecnici, entrambi dedicati allo sviluppo dei giochi per la piattaforma Linux: “Getting started with Linux game development” di Ryan Gordon, si rivolge agli sviluppatori di Windows che sono interessati a portare i propri giochi su Linux, l’argomento è fondamentale per chi vuole trarre vantaggi dall’assetto di una Steam machine. Ryan discuterà di strumenti di sviluppo e ripeterà probabilmente parte del suo ultimo talk pubblico “Open source tools for game development” tenuto nel 2012. Ryan Gordon è un esperto di questo genere di cose, se ho potuto in passato giocare a Unreal Tournament, Medal of Honor, Tactical Ops, Devastation, lo devo a lui e ai suoi collaboratori. L’altro seminario è presentato da Bruce Dawson e si intitola “Getting started debugging on Linux”. Bruce è uno sviluppatore di Valve, farà una panoramica dei problemi che si possono verificare in Linux. È rivolto ai programmatori che si avvicinano per la prima volta al sistema operativo open source. Il discorso affronterà le tecniche per la messa a punto, la verifica e l’ottimizzzazione dei programmi in Linux e farà certamente riferimento all’esperienza che si è acquisita in Valve negli ultimi anni, e al lavoro che stanno facendo oggi per migliorare LLVM e LLDB.

Spero che questo convegno dia lo spunto agli esperti per ampliare la letteratura di riferimento con libri che trattano lo sviluppo dei giochi con Linux, letteratura ferma da dieci anni. Controllando la mia bibliografia, ho scoperto di avere pochissimi titoli pertinenti, dei quali il più tosto è “Programming Linux Games” di J.R. Hall, un libro scritto ai tempi di Loki Software, ancora valido per iniziare ma che non tratta le ultime migliorie in ambito grafico e sonoro. Steam è una grande opportunità per portare il gaming su Linux, tuttavia è un software DRM. Resto fedele all’ideale open source e continuo a sperare che un giorno si possano fare giochi belli, divertenti e di successo senza necessariamente dover comprare assets, modelli, engine e debugger, cosiddetti closed-source, da un negozio online.

Fonte:

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

7 Days to Die


7 Days to Die

7 Days to Die

Dopo la terza guerra mondiale il pianeta Terra ha subìto mutamenti spaventosi, per lo più sono rimaste delle rovine, mentre la maggior parte degli esseri umani è vittima di una trasformazione genetica terribile che l’ha ridotta in stato di zombi; pochi individui sono sani, ma non sanno spiegare ciò che è realmente accaduto: forse la radiazione, un virus sconosciuto o le armi biologiche hanno decimato la popolazione mondiale e causato una mutazione sui superstiti, i quali hanno sette giorni di vita prima di affrontare la stessa sorte del resto dell’umanità. C’è del macabro in tutto questo.

7 Days to Die, ovvero sette giorni prima di morire, è un FPS che si può collocare nella categoria dei video game cosiddetti post-apocalittici. È un survival-horror in quanto il protagonista deve cercare, nel lasso di tempo di una settimana, una cura per sfuggire al destino fatale mentre ciò che lo circonda gli è costantemente ostile. Un’ambientazione aperta, ricreata con elementi voxel, caratterizza la scena del gioco. Il giocatore è un sopravvissuto intrappolato in questo mondo selvaggio infestato da zombi, in Arizona nella regione denominata Navezgane County che in lingua Apache significa “assassino di mostri”. Egli può salvarsi se trova la spiegazione su ciò che è realmente accaduto dopo la terza guerra mondiale, cominciando una lunga esplorazione del mondo di 7 Days to Die, dal bioma realistico e variegato: deserti, foreste, montagne innevate, pinete e aree radioattive; ci sono centinaia di luoghi da perlustrare, ogni edificio può essere visitato all’interno. Per mantenersi sano, deve ispezionare i dintorni che potrebbero celare cibo e acqua: il giocatore può coltivare e raccogliere una varietà di colture, persino cacciare o addomesticare una variegata fauna selvatica. Se necessario, trascorre la giornata saccheggiando oppure lavorando con le risorse minerali per assemblare una moltitudine di oggetti utili: armi da mischia, trappole, generatori di corrente elettrica, rilevatori di movimento, mine antiuomo, pozioni, ecc. La fisica nel gioco permette di costruire edifici a patto che abbiano una solida ossatura portante, altrimenti collassano. Questa caratteristica, se sfruttata adeguatamente, risulta efficace per innalzare vere e proprie fortezze difese con la luce, dato che gli zombi temono il sole e tutto ciò che è luminoso, restano impacciati e lenti. Al contrario, la luna li rafforza e li rende più agili. Il gioco è così affrontato seguendo il ciclo giorno-notte.

7 Days to Die è una creazione di The Fun Pimps Entertainment LCC, software house fondata da un piccolo gruppo di artisti e programmatori con una esperienza pregressa nello sviluppo di videogiochi molto famosi (Doom 3, Duke Nunkem, Rage, Gore). La loro idea, punto forza di 7 Day to die, è semplice: realizzare un gioco che si mantenga nel tempo divertente e ricco di novità e che non è possibile trovare altrove. Al momento 7DTD attraversa la fase “alpha” del ciclo di sviluppo, dopo una notevole campagna di raccolta fondi, il gioco ha superato il test di Greenlights e si prepara a comparire su Steam per Linux.

Fonti (in inglese): | http://www.kickstarter.com/projects/7daystodie/7-days-to-die-zombie-survival-game

Claire


Ci sono cose che nessuno vorrebbe mai vedere perché di natura spaventose, se capitano nell’oscurità è ancora più terribile, quando coinvolgono esseri indifesi viene il cardiopalmo, purtroppo è proprio tutto ciò a rendere questo videogioco ben congegnato: è la storia di una bambina che gira sola con il suo cane nei sobborghi della città. Claire si è smarrita, Claire è per giunta terrorizzata perché non riesce a realizzare come è giunta lì, con una torcia fra le mani a zonzo per le vie buie di un luogo di cui non sa nulla. È forse la realtà deformata che gli riflette i suoi incubi peggiori?

Sola e braccata da una forza sconosciuta, Claire non ha altra via di scampo che soccorrere le persone abbandonate a sé stesse che incontra durante il tragitto; aiutare per essere a sua volta aiutata! E così, cercando una via d’uscita in questo modo, la protagonista del gioco, comincia a capire la relazione fra il suo destino, le persone che sta aiutando e l’entità che continua a tormentarla nell’ombra.

Si gioca nei panni di questa bambina, scorrendo gli anni della sua vita, da quando era fanciulla fino all’età attuale. L’atmosfera horror è accentuata dalla musica tematica e dall’ambiente circostante, inoltre Claire si lascia facilmente prendere dal panico: più ella ha paura, più il gioco si fa spaventoso. Il suo cane è un Pastore Tedesco che l’assiste avvisandola dei pericoli e trovandole gli oggetti più utili tra le fenditure, è davvero l’unica compagnia concessa.

Alcune caratteristiche salienti, sulle quali non conviene sorvolare, sono in sintesi: le multiple difficoltà di gioco, in “Nightmare Mode” Claire muore quando è troppo stanca; il finale cambia in base alle scelte fatte dal giocatore; non è un “point and click”, ovvero si controlla la torcia elettrica e si decidono le direzioni con i tasti o il controller; le persone bisognose dialogano con Claire e capiscono diverse domande e risposte; l’orrore si fa puro quando la bambina è a corto di risorse e deve trovare le medicine per curarsi o mantenersi calma.
Quest’avventura viene proposta oggi alla comunità di Steam Greenlights. Il video game è per tutte le piattaforme, da Windows a Linux e Mac.