Archive for the ‘Tecnica’ Category

Il Beta SDK di Quake Wars, solo per Windows. Il Wiki online

Friday, November 23rd, 2007

Il Software Development Kit di Quake Wars è stato distribuito due giorni fa con un archivio in formato EXE e, a meno di avere Windows oppure Wine per decomprimerlo, non è possibile farci nulla con Linux. A dire il vero, qualcuno ha tentato di compilarlo, ma senza successo. Comunque, nel Wiki messo online dagli sviluppatori di Splash Damage si può trovare già ora il riferimento alla pagina che dovrà contenere appunto le istruzioni per la compilazione delle modifiche con Linux, chiamata Linux Code Notes. Almeno questo è un buon segno!
I contenuti (programmi, texture, suoni e codice sorgente) li avevo elencati in un precedente articolo.

Quake Wars Wiki!

Update: ci sono novità, una bella e una brutta. Prima la bella notizia: Duck di Splash Damage ha scritto un messaggio ai lettori del forum di Quake Wars dicendo che il codice sorgente si può compilare con Linux; ora la brutta… l’editor di livelli e gli altri strumenti non saranno portati a Linux.

Sistemi Linux a confronto con Quake Wars 1.2

Sunday, November 4th, 2007

Dopo aver installato Quake Wars dal DVD usando la patch 1.2, ho messo a confronto i tre sistemi Linux a 32bit installati sul mio Asus A6Tc; era giunto il momento di verificare effettivamente quali livelli di prestazioni poteva raggiungere il portatile, anche se avrei voluto compiere questo test molto tempo fa, poiché lo comprai nell’estate del 2006 (magari con Doom 3 o Quake 4). Sul banco di prova ho messo così la distribuzione OpenSUSE 10.3, Linux From Scratch 6.2 e Linux From Scratch 6.3. Soltanto questi ultimi due sistemi avevano l’opzione CONFIG_HZ_1000 e il modello preemption LOW LATENCY, dato che ne suggeriva l’attivazione Timothee Besset sia per il server che il client di Quake Wars. OpenSUSE usava invece il parametro CONFIG_HZ_250 e un modello preemption VOLUNTARY ma, come ho potuto già osservare in precedenza (rif. OpenSUSE 10.3, distro tuttofare), sono caratteristiche che non hanno spinto piu’ di altre il gioco. Le versioni del kernel erano 2.6.16.26, 2.6.23.1, 2.6.22.5-31 rispettivamente per LFS 6.2, LFS 6.3 e OpenSUSE. Eccetto LFS 6.3 che usava la versione 100.14.19, sugli altri due sistemi era installato durante il benchmark il vecchio driver 1.0-9755, dimostratosi “affidabile” per tutto il 2006 e 2007.

Il driver 1.0-9755 non si installava su Linux From Scratch 6.3, a causa di incompatibilità con la versione del kernel. Mi è dispiaciuto questo perché la serie 100.XX.XX faceva i capricci mentre girava il timedemo. Avvenivano congelamenti dello schermo improvvisi e fatali che mi lasciavano di fronte a una sola alternativa per riavere il controllo sul sistema… riavviare (si legga anche Zander in “100.14.19 nvidia geforce go 7200 flashing and freezing“).
L’opzione irqpoll per il kernel pare risolvere parzialmente il problema, per lo meno ora avvengono solo brevi interruzioni, della durata di 2 o 3 secondi mediamente, dei programmi in esecuzione. Per questo motivo dai diagrammi LOW QUALITY il LFS 6.3 esce con un rendimento peggiore rispetto agli altri due sistemi analizzati; esso ha un deficit anche di 4 FPS.

Dunque la patch 1.2 installa Quake Wars automaticamente dal DVD; quando si carica il gioco per la prima volta, occorre creare un account online, ovvero scegliere un nome e una password che identificheranno il giocatore nelle gare sui server con le statistiche (RANKED).
La demo usata nelle prove era stata registrata per circa tre minuti con il comando toggleNetDemo (F12) durante la terza fase di una partita in corso sulla mappa Salvage. In essa l’azione si svolgeva sia all’interno degli edifici che all’esterno e quindi secondo me era perfetta per valutare il comportamento dell’engine con diversi livelli di dettaglio, illuminazione e ambientazione. Per un minuto ho sorvolato come spettatore la zona dove la guardia GDF faceva il suo ingresso nel gioco, nei pressi della struttura di salvataggio delle informazioni top-secret (Salvage). Dopo di che sono passato a osservare l’azione dal punto di vista del giocatore, in First Person Shooter come si suol dire, cambiandola spesso repentinamente.
Il comando timeNetdemo carica una partita precedentemente registrata e al termine calcola il frame rate medio. L’ho eseguito con configurazioni diverse, ma stessa risoluzione schermo di 800×600 pixels: la prima per ottenere una qualità grafica il piu’ povera di effetti e dettagli, la seconda con valori impostati a “normal” nella maggior parte delle opzioni disponibili, per avere una grafica di buona qualità. Ho ripetuto due volte il timedemo per ciascuna configurazione e i tempi di caricamento della mappa variavano, a seconda delle distribuzioni esaminate, da 58 a 64 secondi (senza cache).

Quake Wars: Bassa qualità

Con OpenSUSE ho preferito scaricare dalla memoria XDM e lanciare Quake Wars direttamente da una console con

(startx :0 -- /usr/games/etqw/etqw)

Tuttavia un ulteriore test l’ho condotto in una finestra dell’ambiente GNOME e Compiz-Fusion, con un risultato che non dico sia considerevole, ma neppure oso scartare: 29.3 Frame per Secondo.
Quando registro una partita, il file viene salvato con estensione ndm in $HOME/.etqwcl/base/demos, per caricarlo con timeNetDemo è sufficiente però passare il nome del file, per esempio

timeNetDemo Salvage

Di solito i nomi dei file sono demo_00000.dnm, demo_00001.dnm, e così via. Nell’esempio ho usato Salvage, perché avevo precedentemente rinominato demo_00000.dnm.
I sistemi hanno restituito valori simili con entrambe le configurazioni, anche se mi sarei aspettato qualcosa di piu’ da LFS, perché aveva nel kernel i parametri suggeriti da TTimo per migliorare le prestazioni generali. LFS 6.2, LFS 6.3 e OpenSUSE occupavano tre partizioni root sul disco rigido da 80GB del portatile, mentre il gioco e i dati dell’utente stavano su due partizioni separate del disco rigido esterno; si tratta di un disco da 200GB alloggiato in un LAN Drive di Extreme Technology collegato alla porta USB 2.0. Nel diagramma 40 FPS sono segnalati con il colore arancione, perché non lo ritengo, in base alla mia esperienza, un valore accettabile per giocare online (nota: quando offline l’engine è bloccato a 30 FPS). La mia scala di misura dà invece il via libera (segnalato con il colore verde) attorno a 64 FPS, per salire verso l’ebrezza totale (colore blu) degli 80 FPS e oltre.

Qualità media

C’era da aspettarselo, a qualità media i valori calcolati da timedemo si sono quasi dimezzati per tutti i sistemi. In questo caso LFS 6.2 ha primeggiato con 22.2 ma le differenze erano, ancora una volta, minime.

Primi frag con la demo di Quake Wars per Linux.

Friday, October 19th, 2007

Siete stanchi dei soliti frag con Nexuiz, Alien Arena, Tremulous? Provate a scaricare la demo di Quake Wars allora… ma devo avvisarvi: non è un gioco adatto a tutti. Se siete pinguini con più di sedici anni e avete un computer alla moda, allora potete unirvi alla battaglia finale fra strogg ed esseri umani per la conquista o la salvezza del pianeta Terra °-°
La prima impressione che la demo di Quake Wars per Linux mi ha lasciato, non è stata molto buona. Appena mi sono collegato al server remoto, ho scoperto a malincuore che c’era un frame rate bassissimo (dell’ordine di 10 FPS) e praticamente non potevo muovermi dalla mia posizione di partenza nella mappa senza patire scatti e rallentamenti nei movimenti. L’ho lasciata perdere per un attimo, cioè l’ho chiusa immediatamente e, armato di pazienza, sono andato a guardare il file di configurazione con lo scopo di eliminare gli effetti grafici più “pesanti” per il sistema, modificando i valori delle variabili che controllano l’engine. D’acchito direi che la beta provata a giugno con Wine sembrava eseguire più velocemente, ma in quel caso non c’era il suono a complicarmi le cose; forse esiste un’altra spiegazione… si parla comunque di differenze minime, dell’ordine di 3 o 4 FPS tra QW eseguito in Wine o con il client specifico per Linux.

Asus A6TC e Ubuntu

Asus A6TC e Ubuntu

Ho provato la demo di Quake Wars con il portatile Asus A6TC comprato nel 2006. Esso appartiene alla serie “Entertainment” di computer Asus, quindi non è veramente il massimo per giocare. E infatti senza un minimo di tweaking elementare ha una prestazione molto scarsa con questo gioco. La configurazione consiste di una CPU Amd Turion X2 (quindi dual-core), 1GB di memoria di sistema DDR2, scheda video GeForce 7300 Go con 128MB di memoria dedicata (512MB in TC), hard disk da 80GB. Il sistema operativo usato durante la partita online era Linux From Scratch 6.2 con Xorg 7.2 e driver nvidia-1.0-9755 senza overclocking. Alcuni dati rilevati

  • Tempo di caricamento del gioco: 12 secondi (senza DM)
  • Tempo di caricamento della mappa: max 37 secondi (no cache) / min. 5 secondi (in cache)
  • Frame rate medio: 30 (facendo tweaking)
  • Risoluzione schermo: 800×600 pixel

La procedura d’installazione non si segue con il noto programma Loki Tool, bensì con Mojo Setup realizzato per il terminale e basato su ncurses. Il file ha dimensione pari a 644MB ed è distribuito principalmente con Bittorent, ma esistono pure diversi mirror che forniscono un collegamento ftp per il download diretto. E’ sempre meglio controllare l’originalità del file con md5sum!

Iron sight

Iron sight

Se non fosse per le scarse prestazioni che ottengo col portatile, giocherei ripetutamente con la demo di Enemy Territory: Quake Wars. Eppure ancora non posso dire se essa rispetti fedelmente le caratteristiche che rendevano l’altro Wolfenstein: Enemy Territory un videogame molto frenetico, o persino di Quake. Ad esempio, lo strafe jumping l’ho trovato complicato da fare questa volta. Per sparare con l’arma sulla lunga distanza, la precisione del mouse non mi è sembrata determinante. Mi spiego meglio: le iron-sight, quando usate, diminuiscono parecchio il raggio del cono di fuoco, lo strafe jumping al contrario penalizza il tiro per colpire; in WolfET si potevano invece fare allo stesso tempo movimenti rapidi ed headshot da un capo all’altro della mappa mirando con facilità (sulle armi non erano montate le iron sight).
Rispetto alla beta ci sono miglioramenti notevoli, è un paragone da fare obbligatoriamente, visto che non avevo parlato molto bene di quella versione in passato. Infatti riscopro il piacere di fare i frag… beh, un po’ meno divertente è ricevere un instant gib da un cecchino appostato chissà dove. In Quake Wars risulta difficile individuare da dove giunge il fuoco nemico date le dimensioni che hanno le mappe; ma anche questo fa parte delle regole del gioco! Il dovere principale per un soldato è aiutare il team a completare la missione, sia in difesa che in attacco, costi quel che costi. La mappa Valley, in particolare, si completa con una serie di obiettivi non dissimili da quelli previsti dalla piu’ vecchia Fuel Dump. Per tale motivo la demo può costituire persino un ottimo addestramento preliminare per i giocatori provenienti dalla “scuola” di ET, in vista del grande salto nella battaglia finale fra strogg e esseri umani non appena rilasceranno il client per Linux.

La console del gioco è bloccata per default. Pertanto per ripristinarla occorre intervenire sulla cvar che la controlla, ovvero modificando con un editor il file $HOME/.etqw/base/etqwconfig.cfg e cambiando il suo valore in questo modo

seta com_allowConsole "1"

Per aprirla mentre è in corso la partita, i tasti abbinati da pigiare sono CTRL+ALT+~. Se non dovessero funzionare con la vostra tastiera “QWERTY”, consiglio di aggiungere il seguente comando allo script che esegue il gioco:

xmodmap -e "keycode 49 = quoteleft asciitilde";

Ora dovrebbe funzionare con CTRL+ALT+\; dopodiché secondo me è meglio scrivere tutte le variabili che si intende modificare in un file separato, per esempio il mio l’ho chiamato etqwtweaking.cfg che richiamo dalla console con

exec etqwtweaking.cfg

Disabilitando le variabili r_shadow e image_anisotroy ho potuto recuperare almeno 10FPS! com_UnlockFPS e com_Unlock_maxFPS funzionano solo per le partite multiplayer in Rete.