Archive for the ‘Generale’ Category

Debunking di giochi per Windows

Saturday, June 26th, 2010

Vorrei sfatare la credenza, assai diffusa, della inferiorità di Linux rispetto a Windows nell’attività ludica col computer. Dopo molti anni passati a smanettare con i sistemi operativi open source, ho deciso di scrivere un debunking del falso mito “Windows è migliore di Linux” perché ritengo che le vecchie idee siano ormai superate: ha più videogiochi; possiede API specifiche per programmare il suono e la grafica; il software di controllo (driver) della scheda video ha prestazioni eccezionali, e via discorrendo. Ultimamente vengono fatti sempre più spesso tentativi di ridimensionare la cattiva fama di Linux in questo particolare ambito dell’informatica e la letteratura sull’argomento si sta arricchendo (vd. anche il tag debunking), segno che i tempi cominciano davvero a cambiare.

L'incontro fra Linux e Microsoft

L'incontro fra Linux e Microsoft

Molte persone si lamentano per la scarsità di giochi, la realtà è però diversa, loro vorrebbero poter eseguire i giochi preferiti su Linux. Ci sono quattro semplici soluzioni a questo problema: cercare un titolo equivalente, ma di tipo open source; individuare quelli multi-piattaforma (i cosiddetti cross-platform); provare con Wine; predisporre il computer con il dual boot (il doppio sistema di avvio).
Ogni sistema operativo ha una rispondenza di mezzi ai fini e delle aree d’impiego dove dimostra di essere superiore rispetto alle piattaforme software alternative. Nel progetto originario di Linux non c’era l’obiettivo di avvicinare la gente ai videogiochi perché chiaramente esistevano già le console dedicate. Linux è stato prima un software di nicchia dei geek, poi una scelta obbligata per gli esperti e i professionisti con un’ampia conoscenza di UNIX, Internet e reti di computer; tuttavia oggi i suoi utilizzi sono ben più ampi e gode di crescente popolarità in nuovi campi. Linux viene infatti apprezzato nella computer grafica, nella ricerca scientifica, nel mobile computing, e nello svago – come cercherò di dimostrare.
Quando c’era Loki Software (dal 1998 al 2001), i migliori giochi di Windows venivano “portati” su Linux, erano Quake III Arena, Civilization: Call to Power, Myth II, Soldier of Fortune, Railroad Tycoon II, Descent II e tanti altri. Finalmente una software house faceva investimenti nel settore, al pari di Microsoft o Apple. Distribuiva anche diversi strumenti (poi diventati free software) che semplificavano la procedura di installazione, configurazione o rimozione del gioco stesso: il programma Loki Installer, le librerie SDL e OpenAL (ancora ampiamente utilizzate). Seppur coraggiosa ed originale, l’impresa terminò purtroppo dopo appena tre anni per bancarotta. I PC Games dominavano il mercato e la maggior parte dei giocatori, potendo avviare sia Windows che Linux, era contraria ad acquistare due versioni dello stesso gioco. Inoltre la vendita avveniva per corrispondenza, ad esempio tramite il negozio Tux Games, dato che era difficile trovare i Loki Games sugli scaffali dei supermercati. Comunque un’altra software house, la compagnia Linux Game Publishing, continuò l’impresa riproponendo un discreto numero di videogiochi.
L’ultimo decennio ha visto l’avvento della banda larga e di nuove forme di pagamento per via telematica. Sono quasi scomparsi gli intermediari fra sviluppatori e giocatori, se quest’ultimi non trovano un titolo nei grandi magazzini, provano a comprarlo online e a scaricarlo dal Web. È l’era della content delivery di Steam, Green House, GOG e Direct2Drive.
Qualora Valve rilasciasse Steam per Linux – è più che una congettura, abbiamo visto il primo esemplare del programma dopo lo scoop di Phoronix – si giocherebbe una partita alla pari con Windows. Molti altri giocatori passerebbero da Windows a Linux sapendo che i popolari Half Life, Counter-Strike, Team Fortress sono diventati cross-platform.
Per il momento però, se escludiamo l’idea di scegliere i giochi open source equiparabili ai titoli che ho appena citato, dobbiamo usare Wine. In poche parole, e senza entrare nel merito del funzionamento del programma, eseguiamo le applicazioni Windows su Linux, FreeBSD e Mac OSX. Questo sistema presenta ulteriori vantaggi: Wine è economico, infatti il suo costo è nullo (free) rispetto ai cento euro che occorrono per acquistare una licenza di Microsoft Windows; si scarica dalla Rete sotto forma di codice sorgente o di pacchetto con il codice binario pronto all’uso; ha una elevata compatibilità con Windows, dalla versione 3.1 alla recente Windows 7; è ottimo in termini di prestazioni.
Tanto il neofita quanto l’hardcore gamer apprezzano anche CrossOver Games e Cedega. Questi due software sono basati su Wine e forniscono una GUI (Graphic User Interface) che facilita sia l’installazione che la configurazione di numerosi giochi; l’utente può anche usufruire dell’assistenza di personale qualificato in caso di difficoltà con le operazioni. Da un confronto con Wine e Windows stesso, Crossover e Cedega hanno mostrato un livello di efficienza pari o superiore in molti test. Ma la qualità di questi software ha un prezzo che è meglio pagare quando Wine fa le bizze e non abbiamo tempo per aspettare una soluzione oppure una patch. In realtà con i videogiochi più gettonati fila tutto liscio. Di recente ho registrato un account di World of Warcraft e ho potuto constatare quanto sia semplice e veloce predisporre il necessario per l’avvio della partita online; riporto ulteriori esempi dagli esiti soddisfacenti: Guild Wars, GTA, Fallaout, Runes of Magic, Medal of Honor, Call of Duty, Battlefield 1942. Wine amplia le opportunità di gioco in Linux, ma non fa i miracoli. Prima di acquistare qualche cosa è bene informarsi se dà problemi, per esempio nella lista AppDB il software funzionante viene contrassegnato con “medaglie” di platino, oro o argento.
Un elenco di giochi è presente anche in Playonlinux. Gli utenti di questo programma usano i menu e le icone di una interfaccia grafica per scorrere la lista di videogiochi (o applicazioni) che desiderano provare. Alla base c’è un insieme di istruzioni, scritte nei linguaggi Python e Bash, che passate a Wine ne automatizzano i processi di installazione, configurazione o rimozione. Quando eventuali bug vengono scoperti, oppure una nuova applicazione supera i test, gli sviluppatori rilasciano un aggiornamento. Con Playonlinux sono finiti i tempi cupi passati a cercare nella Rete le soluzioni ai bug, le patch o i parametri di Wine.

Schermata di PlayOnLinux

Schermata di PlayOnLinux

L’hardware di un PC deve fornire una potenza adeguata al gioco, che il sistema sia Windows o Linux è indifferente. Un computer costruito con la componentistica di dieci anni fa a malapena riesce ad eseguire Enemy Territory: Quake Wars; la CPU Athlon XP 1500+ e la scheda video Radeon 9700 sono tipici esempi di pezzi troppo vecchi per essere montati oggigiorno nei cabinet, a meno che si voglia usare solo giochi e applicazioni altrettanto vecchie, mi riferisco a Counter-Strike, Quake 3, ecc. Oltre al requisito hardware/software, c’è un altro aspetto da considerare: l’assemblaggio di una “macchina da gioco” Linux deve cominciare con la ricerca delle componenti compatibili perché i prodotti sono garantiti in genere per Windows. Prendiamo la scheda video, è un elemento decisivo nella composizione dell’immagine sullo schermo che deve funzionare sempre ai massimi livelli, pertanto prima di acquistarla bisogna svolgere una opportuna verifica su Internet, magari chiedendo l’opinione di altri utenti nei forum: la scheda deve servire perfettamente il sistema operativo. Intel, ATI e nVidia sono le principali aziende che progettano GPU (Graphic Processing Unit, l’unità centrale di elaborazione della grafica) per le schede video; il programma che controlla le funzioni disponibili a livello hardware (il driver) è unico, in genere, per l’intera gamma di modelli: abbiamo quindi il Catalyst per le Radeon di ATI e l’UDA per le GeForce di nVidia; tralascio quelli open source perché il livello di prestazioni che possono raggiungere con i giochi è purtroppo inferiore.

È il momento di fare alcuni esempi concreti, cominciando da un gioco gratuito, d’azione e cross-platform che attualmente spopola su Internet.

Quake Live

Quake Live è un First Person Shooter (letteralmente tiratore in prima persona, spesso abbreviato con FPS) che ridà vita al classico e arcinoto Quake 3 Arena di dieci anni fa, sia modificando il motore grafico del gioco sia introducendo una serie di nuove funzioni: l’integrazione col web browser, le statistiche persistenti, il medagliere e un sistema per confrontare i livelli di esperienza dei giocatori, detti gladiatori, che si scontrano in un’arena attrezzata di armi, munizioni, scudi, potenziatori ed energizzanti.

Quake Live dentro il web browser

Quake Live dentro il web browser

Runes of Magic

Ci sono anche i “giochi di ruolo”, conosciuti come RPG (Role Player Game). Runes of Magic è un clone, in parte gratuito, di World of Warcraft; con questo non voglio dire che sia fatto male, tutt’altro! Su Linux “gira” abbastanza bene, ma l’installazione richiede molta pazienza perché viene distribuito con due archivi di notevoli dimensioni (4GB ciascuno). Senza un computer potente è meglio lasciar perdere questo gioco. Io l’ho provato su Ubuntu con l’ultima versione di Wine (1.2 RC2) e in Rete il sistema mostrava dei limiti evidenti nel gestire i luoghi affollati.

Heroes of Newerth

Preferisco catalogare Heroes of Newerth (HON) tra i giochi di strategia, tuttavia possiede alcune caratteristiche tipiche del gioco di ruolo: l’eroe ottiene attacchi speciali e vari attributi superando venticinque livelli di esperienza; inoltre può rafforzarsi acquistando gadget, armi e armature nei negozi. La classe del personaggio è basata sulla forza, l’intelligenza o l’agilità. La scelta deve essere fatta con giudizio, in modo che ci sia compensazione fra i cinque eroi della squadra. L’equilibrio rischia di spezzarsi facilmente quando i giocatori portano avanti azioni suicide e senza tatticismo –– nel gergo del gioco si dice “alimentare il nemico”. Per tutti è fondamentale guadagnare i soldi uccidendo i PNG o distruggendo le torri dell’avversario che difendono l’obiettivo del gioco: l’altare al centro della base.

HON: assalto alla torre

HON: assalto alla torre


Le grandi software house (Microsoft e Apple) dominano il mercato dei videogiochi perché fanno grandi investimenti per i sistemi operativi Windows e OS X, ma in Linux non mancano le opportunità di giocare e il programma Wine permette di arrivare ai titoli che oggi non sono cross-platform. Il sistema dual-boot potrebbe essere l’alternativa: quando Windows (oppure OS X) e Linux sono installati sulla stessa macchina, abbiamo praticamente tutto il “parco giochi” per PC a nostra disposizione e dato che spesso ci consegnano XP, Vista o Seven all’acquisto di un computer, sarebbe ingenuo non sfruttarli per giocare ai titoli che non si possono ancora eseguire su Linux.

Sui prossimi giochi commerciali. I fatti parlano chiaro

Sunday, July 20th, 2008

I giochi commerciali presenti nella ‘scaletta’ sottostante, forse saranno un giorno prodotti anche per Linux. Baso le mie ottimistiche supposizioni su annunci e dichiarazioni rilasciate di recente dai programmatori stessi alla stampa estera.


Unreal Tournament 3


UT3_07.jpg
Unreal Tournament 3 lo ritengo un fiasco commerciale per diversi motivi. Un insieme di difetti ha minato la stabilità delle partite online, e i giocatori continuano a preferirgli, a un anno dalla pubblicazione, il vecchio UT del 2004 o del ’99. Avevano annunciato ai primordi dello sviluppo del gioco che sarebbe stato disponibile anche per Linux, ma ha senso a questo punto inquietarsi per una promessa non mantenuta? Comunque do due validi motivi per acquistarlo: per prima cosa, è capace di stressare la macchina. UT3 potrebbe rivelarsi utile per fare una analisi delle prestazione del computer. Mettiamo di avere un sistema SLI con CPU quad core, non vi consiglio di certo glxgears! Beh, la seconda ragione è abbastanza ovvia: cambiate genere, giocate con una sua modifica, ce ne sono tante ben fatte, magari questa.

(+) WarTourist conferma il port per Linux su Phoronix

Rage – 99%

Sono pronto a scommettere che Rage verrà rilasciato per Linux. E’ una realizzazione di id Software. Basato sull’engine id Tech 5, Rage costituisce pure una novità per la software house texana o, per usare le stesse parole di Todd Hollenshead, “una nuova direzione” che mette insieme due filoni abbastanza differenti: le gare motoristiche con lo stile di MotorStorm e i combattimenti in modalità First Person Shooter in un teatro di guerra post apocalittico. Sembra la trasposizione al computer di Interceptor, con Mel Gibson nei panni di Mad Max.
Il client per Linux è in sviluppo. Non sarà certo presente nella confezione, ma verrà caricato sul sito di id Software per consentire il download agli interessati. L’editore Electronics Art non fornirà supporto per la versione Linux.
Nel prossimo QuakeCon di agosto riveleranno ulteriori dettagli, daranno screenshots, video e demo.

Quake Live

Si capisce anche dall’ultimo video dell’E3 che si tratta di un rifacimento di Quake 3. Tuttavia Quake Live ha ancora qualcosa di originale da mostrare. Una interfaccia web per gestire le statistiche personali e i contatti con altri giocatori, guardare i replay delle partite giocate e, naturalmente, lanciare il gioco stesso o seguire in diretta le sfide presenti sui server. La grafica senz’ombra di dubbio appare migliorata. I punti forza di questo gioco saranno la gratuità, le specifiche hardware/software richieste per eseguirlo sui computer più datati, l’editor di livelli Zero Radiant. Potrebbe causare una diaspora fra i membri della comunità di giochi simili (sto pensando a Nexuiz, Warsow, Open Arena).

Wolfenstein, Doom 4, Postal 3

Per il momento, ritengo scarse le probabilità di giocare questi FPS fra un anno, per mancanza oggi di informazioni o accenni al porting. Però la speranza è l’ultima a morire, come si suol dire. Di nuovo durante il QuakeCon saranno chiariti forse molti aspetti.
Intanto su Wolfestein circola in rete un video dell’E3 di 22 secondi realizzato da Raven sulla versione per Xbox 360. Doom 4 userà come Rage il motore grafico id Tech 5, e lo stesso codice potrà essere portato con estrema facilità fra i diversi sistemi PC, console e Mac. Sarà inoltre bloccato a 30 FPS. Gli sviluppatori di id Software dopo anni di esperienza hanno incontrato grandi difficoltà e perso del tempo prezioso nell’adattare i loro giochi alle diverse piattaforme software. Di conseguenza hanno concepito l’intero engine il più possibile cross-platform. Invece, per quanto riguarda Postal 3, mi risulta la seguente dichiarazione di Vince Densi rilasciata a OMG PC Games:

OMG! PC Games: What systems will Postal III be released on?

Vince Desi: Xbox 360, PS3, PC, Mac and Linux.

che non è poco!

Quake Wars, Megatexture, Linux. Alcune considerazioni post-beta

Friday, October 5th, 2007

TTimo dice: “I thread… E’ una di quelle cose per cui la programmazione è assai differente fra Windows e Linux, e anche piccole variazioni di stile possono avere cattive conseguenze

Quake Wars: Enemy Territory è il primo gioco basato sul motore grafico id Tech 4 a usare Megatexture. Questa tecnologia richiede due thread per essere applicata alla scena 3D: il primo si occupa della lettura dei dati dal disco rigido; il secondo traduce i dati a un formato interpretabile dalla GPU.

Megatexture Tecnology è una tecnica che semplifica il procedimento (texture mapping) di applicazione delle texture alle mesh che compongono il terreno di un mondo virtuale 3D. L’idea di fondo è la seguente: invece di usare piccole texture da ripetere su tutta la superficie del terreno, Megatexture ne usa una sola ma estremamente larga (il Mega si riferisce proprio al fatto che ha dimensioni di 32000×32000 pixel); un algoritmo chiamato in questo caso fragment program, si occupa di ricreare la scena (rendering) limitando al minimo l’uso della memoria di sistema e della scheda video, che altrimenti non saprebbero contenerla date le enormi dimensioni.

Su un sistema a singolo core è importante avere i due thread di Megatexture in esecuzione a un livello di priorità più basso rispetto al thread principale del gioco (che si occupa per esempio di collision detection, antilag, ecc..), perché in caso contrario quest’ultimo si intopperebbe. Partendo da tale presupposto e considerando il fatto che Microsoft Windows usa i Pthread anziché NPTL, come è logico che sia, Timothy Besset doveva elaborare un modo per poter sincronizzare i suddetti compiti anche sotto Linux con NPTL. Ma le chiamate di sistema di Pthread non potevano essere usate nel presente caso specifico; durante lo sviluppo (porting) del client del gioco per Linux sono state adoperate dunque le funzioni getpriority/setpriority. Viene definita da TTimo una soluzione meno pulita rispetto allo schema proposto da Pthread, comunque esse fanno il lavoro richiesto.

NPTL è una libreria per gestire i Posix thread introdotta in Linux a partire dal kernel 2.6. Per scoprirne la presenza e la versione è sufficiente dare il seguente comando dal terminale
getconf GNU_LIBPTHREAD_VERSION