Mamma gli zombi!


Shorebound Studios è una software house americana, fondata nel 2012 ad Atlanta, ha già all’attivo due titoli: Spectraball e Dead Sky. Forse questi programmatori devono aver pensato che la moda degli zombi potesse fargli fare un bel salto di qualità, da un platform 3D con protagonista… una biglia! a un gioco co-op survival-horror. Dead Sky è un disastro, almeno a giudicare dalle critiche dei giocatori. Questo gioco è arrivato fresco fresco su Steam, ma chi l’ha votato in Greenlight? Si domandano in molti. Ho sentore che si siano lasciati ingannare dal video youtube che d’acchito lascia infatti sbigottiti: grafica cell-shading, effetti suggestivi e s’intravvede  un’auto in stile GTA che asfalta alcuni zombi. C’è dentro di tutto: difesa torri, invasione di non-morti, rpg, racing, combattimento aereo, manca solo la fase di strategia a turni!

Sembra che qualcuno gli abbia messo fretta e furia, ma questo gioco è stato fatto da indie game developer, non c’è nessun publisher con il forcone dietro la loro sedia. Per me non vale il prezzo attuale; a meno di sconti eclatanti, eviterò di acquistarlo e pertanto è assai improbabile che recensirò Dead Sky in futuro. Inoltre, gli zombi cominciano a stancare, ormai sono stati conditi in tutte le salse. Questo in particolare è stato un clamoroso fiasco. Finisce qui il mio commento, ora passo la parola agli utenti Steam che hanno provato D.S.: “Gioco orribile, voglio i miei soldi indietro!”, “Buono a sapersi, decisi di controlare questo forum prima di buttare i soldi in questa spazzatura”, “Appena rimosso dalla mia wishlist”…

Fonte:

Annunci

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

Leadwerks per Linux: lo sviluppo continua


Leadwerks Linux va visto come una serie di componenti che lavorano insieme per animare un oggetto altrimenti statico, e un gioco statico è poco divertente oggidì. C’è l’engine che fornisce al programmatore le funzioni per controllare i dispositivi audio, quelli d’input/output, la scheda video, la IA e la fisica; queste funzioni sono inserite nelle librerie di sviluppo. Leadwerks Linux ha un editor di codice sorgente (Code::Blocks) e uno per gli script, c’è il modeller e l’editor per le mappe. Tutti questi strumenti, collegati fra loro, formano un’applicazione RAD che accellera lo sviluppo dei video game multi-piattaforma.

Lo sviluppo di Leadwerks 3 per Linux continua e sulla pagina di Kickstarter vengono di volta in volta pubblicati alcuni rapporti che descrivono i punti di forza e di debolezza dell’intero processo di adattamento dell’engine al sistema operativo Linux. È venuto a galla per esempio questo problema della libreria fisica di Leadwerks che blocca il programma editor quando viene usato un comando SSE. Le Streaming SIMD Extensions, cioè SSE, sono istruzioni della CPU specializzate per fare i calcoli in virgola mobile più velocemente e quindi sono perfette per implementare la fisica nel gioco. Disabilitando questo comando – con l’editor di Leadwerks è possibile passare da una modalità SSE a una non-SSE – il blocco sparisce.

Leadwerks editor

Leadwerks editor

Un ambiente di sviluppo così complesso deve integrarsi bene nel sistema operativo. L’obiettivo attuale è la predisposizione dell’interfaccia dell’utente con un set di icone più consono per Linux (quelle di Windows sono state sostituite per il momento con il set monocromatico di Ubuntu); il simbolo di Code::Blocks ha rimpiazzato quello di Visual Studio. Inoltre, l’uso del toolkit GTK dà complessivamente un look & feel molto più familiare. Ma l’imprevisto è da mettere sempre in conto, specialmente quando si portano centinaia di righe di codice da una piattaforma a un’altra: vedere alla fine del lavoro una barra laterale senza icone, deprime un po’ (vd. immagine sopra)!

Altre situazioni problematiche riguardano il riquadro del rendering (si ferma al primo riuso), il pannello delle opzioni (non compare) e l’editor dei modelli (si blocca completamente), i menu della finestra (non sono contestuali). Malgrado tutto ciò, funziona l’editor degli script ed è possibile produrre alcuni giochi dimostrativi. Leadwerks Linux sarà consegnato a dicembre alle persone che fecero una donazione di cinquanta e cento dollari. Visto a che punto è lo sviluppo, il rilascio su Steam, penso, non avverrà prima del 2014.

Fonte

Dungeon Defenders 2


Un luogo virtuale d’incontro fra sviluppatori e giocatori: è il Defense Council che Trendy Entertainment ha messo in piedi per ricevere il feedback dai fans di Dungeon Defenders. In principio volevano che il sequel fosse un PVP di tipo MOBA, ma poi sono ritornati a sviluppare il classico co-op di difesa delle torri. Si accedeva al consiglio con sottoscrizioni a favore dei bambini in cura negli ospedali di tutto il mondo; l’iniziativa ha riportato un insperato successo. Oggi, questo consiglio è l’occassione sia per provare il gioco prima della pubblicazione, prevista per la primavera del 2014, sia per esprimere un parere su cose che possono essere migliorate o aggiunte. I membri di Defense Council hanno un accesso bisettimanale a Dungeon Defenders 2 e sono autorizzati a dare un giudizio sulla struttura del gioco, sugli eroi e le mappe, la interfaccia dell’utente, la visuale.

Dungeon Defenders è tra i giochi più vivaci e colorati realizzati con l’engine Unreal 3, e il seguito dovrà mantenere lo stesso look. Non solo, DD2 sarà un gioco “facile da imparare, difficile da padroneggiare”; avrà novità che renderanno la partita più interessante, per esempio i giocatori riceveranno dei premi mentre avanzeranno nei livelli del dungeon. Dungeon Defenders 2 uscirà su Steam l’anno prossimo per tutte le piattaforme, compreso Linux, e sarà free-to-play.

Fonte: